Fixed biometric setting crash.

Test: Verified test crashed without fix, and passed with fix
Test: atest FingerprintSettingsFragmentTest
Fixes: 315164185
Change-Id: I1d8ab32eef8578a6d35831aef46275a9732e497c
This commit is contained in:
Joshua McCloskey
2023-12-06 22:24:19 +00:00
committed by Joshua Mccloskey
parent 212c2b4724
commit a900c1dd1b
2 changed files with 10 additions and 0 deletions

View File

@@ -93,6 +93,7 @@ import com.android.settingslib.widget.TwoTargetPreference;
import com.google.android.setupdesign.util.DeviceHelper; import com.google.android.setupdesign.util.DeviceHelper;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@@ -876,6 +877,8 @@ public class FingerprintSettings extends SubSettings {
@Override @Override
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) { protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
if (!isFingerprintHardwareDetected(context)) { if (!isFingerprintHardwareDetected(context)) {
Log.e(TAG, "Fingerprint hardware is not detected");
mControllers = Collections.emptyList();
return null; return null;
} }

View File

@@ -262,6 +262,13 @@ public class FingerprintSettingsFragmentTest {
mFragment.onResume(); mFragment.onResume();
} }
@Test
public void testFragmentVisibleWhenNoHardwareDetected() {
doReturn(false).when(mFingerprintManager).isHardwareDetected();
setUpFragment(false);
assertThat(mFragment.isVisible()).isTrue();
}
private void setSensor(@FingerprintSensorProperties.SensorType int sensorType) { private void setSensor(@FingerprintSensorProperties.SensorType int sensorType) {
final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>(); final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>();
props.add(new FingerprintSensorPropertiesInternal( props.add(new FingerprintSensorPropertiesInternal(