commit | a900c1dd1b9ea1d7c1a7d8939918a4a34e566f8b | [log] [tgz] |
---|---|---|
author | Joshua McCloskey <joshmccloskey@google.com> | Wed Dec 06 22:24:19 2023 +0000 |
committer | Joshua Mccloskey <joshmccloskey@google.com> | Thu Dec 07 22:12:44 2023 +0000 |
tree | e66d13a850aa58ca3e09f2fa43c36a21c16864a4 | |
parent | 212c2b4724131743da7b2a284948db0b8dcc8cd4 [diff] |
Fixed biometric setting crash. Test: Verified test crashed without fix, and passed with fix Test: atest FingerprintSettingsFragmentTest Fixes: 315164185 Change-Id: I1d8ab32eef8578a6d35831aef46275a9732e497c
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java index 308b3d5..6904342 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
@@ -93,6 +93,7 @@ import com.google.android.setupdesign.util.DeviceHelper; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -876,6 +877,8 @@ @Override protected List<AbstractPreferenceController> createPreferenceControllers(Context context) { if (!isFingerprintHardwareDetected(context)) { + Log.e(TAG, "Fingerprint hardware is not detected"); + mControllers = Collections.emptyList(); return null; }
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java index 5e90e55..ff851eb 100644 --- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java +++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java
@@ -262,6 +262,13 @@ mFragment.onResume(); } + @Test + public void testFragmentVisibleWhenNoHardwareDetected() { + doReturn(false).when(mFingerprintManager).isHardwareDetected(); + setUpFragment(false); + assertThat(mFragment.isVisible()).isTrue(); + } + private void setSensor(@FingerprintSensorProperties.SensorType int sensorType) { final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>(); props.add(new FingerprintSensorPropertiesInternal(