Fixed NPE in FingerprintEnrollIntro

Test: atest FingerprintEnrollIntroductionTest
Fixes: 317515741
Change-Id: Icc4e5cd4fbfea6828684ce6c8fc30acaabe5d315
This commit is contained in:
Joshua McCloskey
2024-03-07 00:33:49 +00:00
parent a9178952ae
commit 3c57fcde32
2 changed files with 21 additions and 0 deletions

View File

@@ -340,6 +340,9 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction {
final List<FingerprintSensorPropertiesInternal> 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();

View File

@@ -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());