diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java index f92cfbf6696..26965fae758 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java @@ -340,6 +340,9 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction { final List props = mFingerprintManager.getSensorPropertiesInternal(); // This will need to be updated for devices with multiple fingerprint sensors + if (props == null || props.isEmpty()) { + return R.string.fingerprint_intro_error_unknown; + } final int max = props.get(0).maxEnrollmentsPerUser; final int numEnrolledFingerprints = mFingerprintManager.getEnrolledFingerprints(mUserId).size(); diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroductionTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroductionTest.java index 1aedce53980..6df8b8ef4b9 100644 --- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroductionTest.java +++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroductionTest.java @@ -252,6 +252,24 @@ public class FingerprintEnrollIntroductionTest { assertThat(result).isEqualTo(R.string.fingerprint_intro_error_max); } + @Test + public void intro_CheckNullPropsReturnsErrorString() { + setupFingerprintEnrollIntroWith(newTokenOnlyIntent()); + when(mFingerprintManager.getSensorPropertiesInternal()).thenReturn(null); + final int result = mFingerprintEnrollIntroduction.checkMaxEnrolled(); + + assertThat(result).isEqualTo(R.string.fingerprint_intro_error_unknown); + } + + @Test + public void intro_CheckEmptyPropsReturnsErrorString() { + setupFingerprintEnrollIntroWith(newTokenOnlyIntent()); + when(mFingerprintManager.getSensorPropertiesInternal()).thenReturn(List.of()); + final int result = mFingerprintEnrollIntroduction.checkMaxEnrolled(); + + assertThat(result).isEqualTo(R.string.fingerprint_intro_error_unknown); + } + @Test public void intro_CheckGenerateChallenge() { setupFingerprintEnrollIntroWith(newGkPwHandleAndFromSettingsIntent());