diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java index 308b3d50e2a..69043422d0f 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.android.settingslib.widget.TwoTargetPreference; 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 @@ public class FingerprintSettings extends SubSettings { @Override protected List 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 5e90e55fdd2..ff851eb10ee 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 @@ public class FingerprintSettingsFragmentTest { 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 props = new ArrayList<>(); props.add(new FingerprintSensorPropertiesInternal(