Merge "Bug fix - when enrolled, biometrics have ok safety state." into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
0b82bf9df3
@@ -55,6 +55,13 @@ public class CombinedBiometricStatusUtils {
|
|||||||
return Utils.hasFingerprintHardware(mContext) && Utils.hasFaceHardware(mContext);
|
return Utils.hasFingerprintHardware(mContext) && Utils.hasFaceHardware(mContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether at least one face template or fingerprint has been enrolled.
|
||||||
|
*/
|
||||||
|
public boolean hasEnrolled() {
|
||||||
|
return hasEnrolledFingerprints() || hasEnrolledFace();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the {@link EnforcedAdmin} in case parental consent is required to change both
|
* Returns the {@link EnforcedAdmin} in case parental consent is required to change both
|
||||||
* face and fingerprint settings.
|
* face and fingerprint settings.
|
||||||
@@ -84,8 +91,7 @@ public class CombinedBiometricStatusUtils {
|
|||||||
public String getSummary() {
|
public String getSummary() {
|
||||||
final int numFingerprintsEnrolled = mFingerprintManager != null
|
final int numFingerprintsEnrolled = mFingerprintManager != null
|
||||||
? mFingerprintManager.getEnrolledFingerprints(mUserId).size() : 0;
|
? mFingerprintManager.getEnrolledFingerprints(mUserId).size() : 0;
|
||||||
final boolean faceEnrolled = mFaceManager != null
|
final boolean faceEnrolled = hasEnrolledFace();
|
||||||
&& mFaceManager.hasEnrolledTemplates(mUserId);
|
|
||||||
|
|
||||||
if (faceEnrolled && numFingerprintsEnrolled > 1) {
|
if (faceEnrolled && numFingerprintsEnrolled > 1) {
|
||||||
return mContext.getString(
|
return mContext.getString(
|
||||||
@@ -105,6 +111,14 @@ public class CombinedBiometricStatusUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean hasEnrolledFingerprints() {
|
||||||
|
return mFingerprintManager != null && mFingerprintManager.hasEnrolledFingerprints(mUserId);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean hasEnrolledFace() {
|
||||||
|
return mFaceManager != null && mFaceManager.hasEnrolledTemplates(mUserId);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the class name of the Settings page corresponding to combined biometric settings.
|
* Returns the class name of the Settings page corresponding to combined biometric settings.
|
||||||
*/
|
*/
|
||||||
|
@@ -75,7 +75,10 @@ public class FaceStatusUtils {
|
|||||||
: FaceEnrollIntroduction.class.getName();
|
: FaceEnrollIntroduction.class.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean hasEnrolled() {
|
/**
|
||||||
|
* Returns whether at least one face template has been enrolled.
|
||||||
|
*/
|
||||||
|
public boolean hasEnrolled() {
|
||||||
return mFaceManager.hasEnrolledTemplates(mUserId);
|
return mFaceManager.hasEnrolledTemplates(mUserId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -82,7 +82,10 @@ public class FingerprintStatusUtils {
|
|||||||
: FingerprintEnrollIntroduction.class.getName();
|
: FingerprintEnrollIntroduction.class.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean hasEnrolled() {
|
/**
|
||||||
|
* Returns whether at least one fingerprint has been enrolled.
|
||||||
|
*/
|
||||||
|
public boolean hasEnrolled() {
|
||||||
return mFingerprintManager.hasEnrolledFingerprints(mUserId);
|
return mFingerprintManager.hasEnrolledFingerprints(mUserId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -65,6 +65,7 @@ public final class BiometricsSafetySource {
|
|||||||
combinedBiometricStatusUtils.getSettingsClassName(), disablingAdmin,
|
combinedBiometricStatusUtils.getSettingsClassName(), disablingAdmin,
|
||||||
Bundle.EMPTY),
|
Bundle.EMPTY),
|
||||||
disablingAdmin == null /* enabled */,
|
disablingAdmin == null /* enabled */,
|
||||||
|
combinedBiometricStatusUtils.hasEnrolled(),
|
||||||
safetyEvent);
|
safetyEvent);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -82,6 +83,7 @@ public final class BiometricsSafetySource {
|
|||||||
faceStatusUtils.getSettingsClassName(), disablingAdmin,
|
faceStatusUtils.getSettingsClassName(), disablingAdmin,
|
||||||
Bundle.EMPTY),
|
Bundle.EMPTY),
|
||||||
disablingAdmin == null /* enabled */,
|
disablingAdmin == null /* enabled */,
|
||||||
|
faceStatusUtils.hasEnrolled(),
|
||||||
safetyEvent);
|
safetyEvent);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -101,6 +103,7 @@ public final class BiometricsSafetySource {
|
|||||||
fingerprintStatusUtils.getSettingsClassName(), disablingAdmin,
|
fingerprintStatusUtils.getSettingsClassName(), disablingAdmin,
|
||||||
Bundle.EMPTY),
|
Bundle.EMPTY),
|
||||||
disablingAdmin == null /* enabled */,
|
disablingAdmin == null /* enabled */,
|
||||||
|
fingerprintStatusUtils.hasEnrolled(),
|
||||||
safetyEvent);
|
safetyEvent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -114,12 +117,14 @@ public final class BiometricsSafetySource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void setBiometricSafetySourceData(Context context, String title, String summary,
|
private static void setBiometricSafetySourceData(Context context, String title, String summary,
|
||||||
Intent clickIntent, boolean enabled, SafetyEvent safetyEvent) {
|
Intent clickIntent, boolean enabled, boolean hasEnrolled, SafetyEvent safetyEvent) {
|
||||||
final PendingIntent pendingIntent = createPendingIntent(context, clickIntent);
|
final PendingIntent pendingIntent = createPendingIntent(context, clickIntent);
|
||||||
|
final int statusLevel =
|
||||||
|
enabled && hasEnrolled ? SafetySourceStatus.STATUS_LEVEL_OK
|
||||||
|
: SafetySourceStatus.STATUS_LEVEL_NONE;
|
||||||
|
|
||||||
final SafetySourceStatus status = new SafetySourceStatus.Builder(title, summary,
|
final SafetySourceStatus status = new SafetySourceStatus.Builder(
|
||||||
SafetySourceStatus.STATUS_LEVEL_NONE, pendingIntent)
|
title, summary, statusLevel, pendingIntent).setEnabled(enabled).build();
|
||||||
.setEnabled(enabled).build();
|
|
||||||
final SafetySourceData safetySourceData =
|
final SafetySourceData safetySourceData =
|
||||||
new SafetySourceData.Builder().setStatus(status).build();
|
new SafetySourceData.Builder().setStatus(status).build();
|
||||||
|
|
||||||
|
@@ -57,8 +57,7 @@ public class CombinedBiometricStatusUtilsTest {
|
|||||||
private static final ComponentName COMPONENT_NAME =
|
private static final ComponentName COMPONENT_NAME =
|
||||||
new ComponentName("package", "class");
|
new ComponentName("package", "class");
|
||||||
private static final int USER_ID = UserHandle.myUserId();
|
private static final int USER_ID = UserHandle.myUserId();
|
||||||
private static final UserHandle USER_HANDLE = new UserHandle(USER_ID);;
|
private static final UserHandle USER_HANDLE = new UserHandle(USER_ID);
|
||||||
|
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private PackageManager mPackageManager;
|
private PackageManager mPackageManager;
|
||||||
@@ -122,6 +121,54 @@ public class CombinedBiometricStatusUtilsTest {
|
|||||||
assertThat(mCombinedBiometricStatusUtils.isAvailable()).isTrue();
|
assertThat(mCombinedBiometricStatusUtils.isAvailable()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void hasEnrolled_withoutFingerprintHardware_withoutFaceHardware_returnsFalse() {
|
||||||
|
when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
|
||||||
|
when(mFaceManager.isHardwareDetected()).thenReturn(false);
|
||||||
|
|
||||||
|
assertThat(mCombinedBiometricStatusUtils.hasEnrolled()).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void hasEnrolled_withoutFingerprintEnroll_withoutFaceEnroll_returnsFalse() {
|
||||||
|
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
|
||||||
|
when(mFaceManager.isHardwareDetected()).thenReturn(true);
|
||||||
|
when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false);
|
||||||
|
when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
|
||||||
|
|
||||||
|
assertThat(mCombinedBiometricStatusUtils.hasEnrolled()).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void hasEnrolled_withoutFingerprintEnroll_withFaceEnroll_returnsTrue() {
|
||||||
|
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
|
||||||
|
when(mFaceManager.isHardwareDetected()).thenReturn(true);
|
||||||
|
when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false);
|
||||||
|
when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true);
|
||||||
|
|
||||||
|
assertThat(mCombinedBiometricStatusUtils.hasEnrolled()).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void hasEnrolled_withFingerprintEnroll_withoutFaceEnroll_returnsTrue() {
|
||||||
|
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
|
||||||
|
when(mFaceManager.isHardwareDetected()).thenReturn(true);
|
||||||
|
when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true);
|
||||||
|
when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
|
||||||
|
|
||||||
|
assertThat(mCombinedBiometricStatusUtils.hasEnrolled()).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void hasEnrolled_withFingerprintEnroll_withFaceEnroll_returnsTrue() {
|
||||||
|
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
|
||||||
|
when(mFaceManager.isHardwareDetected()).thenReturn(true);
|
||||||
|
when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true);
|
||||||
|
when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true);
|
||||||
|
|
||||||
|
assertThat(mCombinedBiometricStatusUtils.hasEnrolled()).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getDisabledAdmin_whenFingerprintDisabled_whenFaceDisabled_returnsEnforcedAdmin() {
|
public void getDisabledAdmin_whenFingerprintDisabled_whenFaceDisabled_returnsEnforcedAdmin() {
|
||||||
when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME))
|
when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME))
|
||||||
|
@@ -114,6 +114,20 @@ public class FaceStatusUtilsTest {
|
|||||||
assertThat(mFaceStatusUtils.isAvailable()).isFalse();
|
assertThat(mFaceStatusUtils.isAvailable()).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void hasEnrolled_withEnrolledTemplates_returnsTrue() {
|
||||||
|
when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true);
|
||||||
|
|
||||||
|
assertThat(mFaceStatusUtils.hasEnrolled()).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void hasEnrolled_withoutEnrolledTemplates_returnsFalse() {
|
||||||
|
when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
|
||||||
|
|
||||||
|
assertThat(mFaceStatusUtils.hasEnrolled()).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getDisabledAdmin_whenFaceDisabled_returnsEnforcedAdmin() {
|
public void getDisabledAdmin_whenFaceDisabled_returnsEnforcedAdmin() {
|
||||||
when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME))
|
when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME))
|
||||||
|
@@ -118,6 +118,20 @@ public class FingerprintStatusUtilsTest {
|
|||||||
assertThat(mFingerprintStatusUtils.isAvailable()).isFalse();
|
assertThat(mFingerprintStatusUtils.isAvailable()).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void hasEnrolled_withEnrolledFingerprints_returnsTrue() {
|
||||||
|
when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true);
|
||||||
|
|
||||||
|
assertThat(mFingerprintStatusUtils.hasEnrolled()).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void hasEnrolled_withoutEnrolledFingerprints_returnsFalse() {
|
||||||
|
when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false);
|
||||||
|
|
||||||
|
assertThat(mFingerprintStatusUtils.hasEnrolled()).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getDisabledAdmin_whenFingerprintDisabled_returnsEnforcedAdmin() {
|
public void getDisabledAdmin_whenFingerprintDisabled_returnsEnforcedAdmin() {
|
||||||
when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME))
|
when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME))
|
||||||
|
@@ -23,6 +23,7 @@ import static com.google.common.truth.Truth.assertThat;
|
|||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
@@ -112,8 +113,8 @@ public class BiometricsSafetySourceTest {
|
|||||||
|
|
||||||
BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
|
BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
|
||||||
|
|
||||||
verify(mSafetyCenterManagerWrapper, never()).setSafetySourceData(
|
verify(mSafetyCenterManagerWrapper, never())
|
||||||
any(), any(), any(), any());
|
.setSafetySourceData(any(), any(), any(), any());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -124,8 +125,8 @@ public class BiometricsSafetySourceTest {
|
|||||||
|
|
||||||
BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
|
BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
|
||||||
|
|
||||||
verify(mSafetyCenterManagerWrapper, never()).setSafetySourceData(
|
verify(mSafetyCenterManagerWrapper, never())
|
||||||
any(), any(), any(), any());
|
.setSafetySourceData(any(), any(), any(), any());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -137,11 +138,9 @@ public class BiometricsSafetySourceTest {
|
|||||||
when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME)).thenReturn(0);
|
when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME)).thenReturn(0);
|
||||||
|
|
||||||
BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
|
BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
|
||||||
ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class);
|
|
||||||
verify(mSafetyCenterManagerWrapper).setSafetySourceData(
|
|
||||||
any(), captor.capture(), any(), any());
|
|
||||||
|
|
||||||
assertThat(captor.getValue()).isEqualTo(BiometricsSafetySource.SAFETY_SOURCE_ID);
|
verify(mSafetyCenterManagerWrapper).setSafetySourceData(
|
||||||
|
any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), any(), any());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -153,11 +152,9 @@ public class BiometricsSafetySourceTest {
|
|||||||
when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME)).thenReturn(0);
|
when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME)).thenReturn(0);
|
||||||
|
|
||||||
BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
|
BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
|
||||||
ArgumentCaptor<SafetyEvent> captor = ArgumentCaptor.forClass(SafetyEvent.class);
|
|
||||||
verify(mSafetyCenterManagerWrapper).setSafetySourceData(
|
|
||||||
any(), any(), any(), captor.capture());
|
|
||||||
|
|
||||||
assertThat(captor.getValue()).isEqualTo(EVENT_SOURCE_STATE_CHANGED);
|
verify(mSafetyCenterManagerWrapper)
|
||||||
|
.setSafetySourceData(any(), any(), any(), eq(EVENT_SOURCE_STATE_CHANGED));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -429,6 +426,128 @@ public class BiometricsSafetySourceTest {
|
|||||||
Settings.CombinedBiometricSettingsActivity.class.getName());
|
Settings.CombinedBiometricSettingsActivity.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setSafetySourceData_faceAndFingerprint_whenFaceEnrolled_setsOkStatus() {
|
||||||
|
when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
|
||||||
|
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
|
||||||
|
when(mFaceManager.isHardwareDetected()).thenReturn(true);
|
||||||
|
when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true);
|
||||||
|
when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false);
|
||||||
|
|
||||||
|
BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
|
||||||
|
|
||||||
|
ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
|
||||||
|
verify(mSafetyCenterManagerWrapper).setSafetySourceData(
|
||||||
|
any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
|
||||||
|
SafetySourceStatus safetySourceStatus = captor.getValue().getStatus();
|
||||||
|
assertThat(safetySourceStatus.getStatusLevel())
|
||||||
|
.isEqualTo(SafetySourceStatus.STATUS_LEVEL_OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setSafetySourceData_faceAndFingerprint_whenFingerprintEnrolled_setsOkStatus() {
|
||||||
|
when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
|
||||||
|
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
|
||||||
|
when(mFaceManager.isHardwareDetected()).thenReturn(true);
|
||||||
|
when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
|
||||||
|
when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true);
|
||||||
|
|
||||||
|
BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
|
||||||
|
|
||||||
|
ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
|
||||||
|
verify(mSafetyCenterManagerWrapper).setSafetySourceData(
|
||||||
|
any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
|
||||||
|
SafetySourceStatus safetySourceStatus = captor.getValue().getStatus();
|
||||||
|
assertThat(safetySourceStatus.getStatusLevel())
|
||||||
|
.isEqualTo(SafetySourceStatus.STATUS_LEVEL_OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setSafetySourceData_faceAndFingerprint_whenNotEnrolled_setsNoneStatus() {
|
||||||
|
when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
|
||||||
|
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
|
||||||
|
when(mFaceManager.isHardwareDetected()).thenReturn(true);
|
||||||
|
when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
|
||||||
|
when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false);
|
||||||
|
|
||||||
|
BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
|
||||||
|
|
||||||
|
ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
|
||||||
|
verify(mSafetyCenterManagerWrapper).setSafetySourceData(
|
||||||
|
any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
|
||||||
|
SafetySourceStatus safetySourceStatus = captor.getValue().getStatus();
|
||||||
|
assertThat(safetySourceStatus.getStatusLevel())
|
||||||
|
.isEqualTo(SafetySourceStatus.STATUS_LEVEL_NONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setSafetySourceData_fingerprint_whenEnrolled_setsOKStatus() {
|
||||||
|
when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
|
||||||
|
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
|
||||||
|
when(mFaceManager.isHardwareDetected()).thenReturn(false);
|
||||||
|
when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true);
|
||||||
|
|
||||||
|
BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
|
||||||
|
|
||||||
|
ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
|
||||||
|
verify(mSafetyCenterManagerWrapper).setSafetySourceData(
|
||||||
|
any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
|
||||||
|
SafetySourceStatus safetySourceStatus = captor.getValue().getStatus();
|
||||||
|
assertThat(safetySourceStatus.getStatusLevel())
|
||||||
|
.isEqualTo(SafetySourceStatus.STATUS_LEVEL_OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setSafetySourceData_fingerprint_whenNotEnrolled_setsNoneStatus() {
|
||||||
|
when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
|
||||||
|
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
|
||||||
|
when(mFaceManager.isHardwareDetected()).thenReturn(false);
|
||||||
|
when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false);
|
||||||
|
|
||||||
|
BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
|
||||||
|
|
||||||
|
ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
|
||||||
|
verify(mSafetyCenterManagerWrapper).setSafetySourceData(
|
||||||
|
any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
|
||||||
|
SafetySourceStatus safetySourceStatus = captor.getValue().getStatus();
|
||||||
|
assertThat(safetySourceStatus.getStatusLevel())
|
||||||
|
.isEqualTo(SafetySourceStatus.STATUS_LEVEL_NONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setSafetySourceData_face_whenEnrolled_setsOKStatus() {
|
||||||
|
when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
|
||||||
|
when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
|
||||||
|
when(mFaceManager.isHardwareDetected()).thenReturn(true);
|
||||||
|
when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true);
|
||||||
|
|
||||||
|
BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
|
||||||
|
|
||||||
|
ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
|
||||||
|
verify(mSafetyCenterManagerWrapper).setSafetySourceData(
|
||||||
|
any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
|
||||||
|
SafetySourceStatus safetySourceStatus = captor.getValue().getStatus();
|
||||||
|
assertThat(safetySourceStatus.getStatusLevel())
|
||||||
|
.isEqualTo(SafetySourceStatus.STATUS_LEVEL_OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setSafetySourceData_face_whenNotEnrolled_setsNoneStatus() {
|
||||||
|
when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
|
||||||
|
when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
|
||||||
|
when(mFaceManager.isHardwareDetected()).thenReturn(true);
|
||||||
|
when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
|
||||||
|
|
||||||
|
BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
|
||||||
|
|
||||||
|
ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
|
||||||
|
verify(mSafetyCenterManagerWrapper).setSafetySourceData(
|
||||||
|
any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
|
||||||
|
SafetySourceStatus safetySourceStatus = captor.getValue().getStatus();
|
||||||
|
assertThat(safetySourceStatus.getStatusLevel())
|
||||||
|
.isEqualTo(SafetySourceStatus.STATUS_LEVEL_NONE);
|
||||||
|
}
|
||||||
|
|
||||||
private void assertSafetySourceDisabledDataSetWithSingularSummary(String expectedTitleResName,
|
private void assertSafetySourceDisabledDataSetWithSingularSummary(String expectedTitleResName,
|
||||||
String expectedSummaryResName) {
|
String expectedSummaryResName) {
|
||||||
assertSafetySourceDisabledDataSet(
|
assertSafetySourceDisabledDataSet(
|
||||||
@@ -478,13 +597,16 @@ public class BiometricsSafetySourceTest {
|
|||||||
private void assertSafetySourceDisabledDataSet(String expectedTitle, String expectedSummary) {
|
private void assertSafetySourceDisabledDataSet(String expectedTitle, String expectedSummary) {
|
||||||
ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
|
ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
|
||||||
verify(mSafetyCenterManagerWrapper).setSafetySourceData(
|
verify(mSafetyCenterManagerWrapper).setSafetySourceData(
|
||||||
any(), any(), captor.capture(), any());
|
any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
|
||||||
SafetySourceData safetySourceData = captor.getValue();
|
SafetySourceData safetySourceData = captor.getValue();
|
||||||
SafetySourceStatus safetySourceStatus = safetySourceData.getStatus();
|
SafetySourceStatus safetySourceStatus = safetySourceData.getStatus();
|
||||||
|
|
||||||
assertThat(safetySourceStatus.getTitle().toString()).isEqualTo(expectedTitle);
|
assertThat(safetySourceStatus.getTitle().toString()).isEqualTo(expectedTitle);
|
||||||
assertThat(safetySourceStatus.getSummary().toString()).isEqualTo(expectedSummary);
|
assertThat(safetySourceStatus.getSummary().toString()).isEqualTo(expectedSummary);
|
||||||
assertThat(safetySourceStatus.isEnabled()).isFalse();
|
assertThat(safetySourceStatus.isEnabled()).isFalse();
|
||||||
|
assertThat(safetySourceStatus.getStatusLevel())
|
||||||
|
.isEqualTo(SafetySourceStatus.STATUS_LEVEL_NONE);
|
||||||
|
|
||||||
final Intent clickIntent = safetySourceStatus.getPendingIntent().getIntent();
|
final Intent clickIntent = safetySourceStatus.getPendingIntent().getIntent();
|
||||||
assertThat(clickIntent).isNotNull();
|
assertThat(clickIntent).isNotNull();
|
||||||
assertThat(clickIntent.getAction()).isEqualTo(ACTION_SHOW_ADMIN_SUPPORT_DETAILS);
|
assertThat(clickIntent.getAction()).isEqualTo(ACTION_SHOW_ADMIN_SUPPORT_DETAILS);
|
||||||
@@ -494,7 +616,7 @@ public class BiometricsSafetySourceTest {
|
|||||||
String expectedSettingsClassName) {
|
String expectedSettingsClassName) {
|
||||||
ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
|
ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
|
||||||
verify(mSafetyCenterManagerWrapper).setSafetySourceData(
|
verify(mSafetyCenterManagerWrapper).setSafetySourceData(
|
||||||
any(), any(), captor.capture(), any());
|
any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
|
||||||
SafetySourceData safetySourceData = captor.getValue();
|
SafetySourceData safetySourceData = captor.getValue();
|
||||||
SafetySourceStatus safetySourceStatus = safetySourceData.getStatus();
|
SafetySourceStatus safetySourceStatus = safetySourceData.getStatus();
|
||||||
|
|
||||||
@@ -509,7 +631,6 @@ public class BiometricsSafetySourceTest {
|
|||||||
.isEqualTo(expectedSettingsClassName);
|
.isEqualTo(expectedSettingsClassName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private List<Fingerprint> createFingerprintList(int size) {
|
private List<Fingerprint> createFingerprintList(int size) {
|
||||||
final List<Fingerprint> fingerprintList = new ArrayList<>(size);
|
final List<Fingerprint> fingerprintList = new ArrayList<>(size);
|
||||||
for (int i = 0; i < size; i++) {
|
for (int i = 0; i < size; i++) {
|
||||||
|
Reference in New Issue
Block a user