Cleans up any stray instances of KeyguardUpdateMonitor that might still
have listeners attached to system services.
Test: atest KeyguardUpdateMonitorTest
Fixes: 246915415
Change-Id: I0d22116befbd4029e901e75db27bb6e083028118
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
index 0275152c..ae980f5 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
@@ -328,8 +328,7 @@
@After
public void tearDown() {
mMockitoSession.finishMocking();
- mKeyguardUpdateMonitor.removeCallback(mTestCallback);
- mKeyguardUpdateMonitor.destroy();
+ cleanupKeyguardUpdateMonitor();
}
@Test
@@ -351,6 +350,7 @@
@Test
public void testSimStateInitialized() {
+ cleanupKeyguardUpdateMonitor();
final int subId = 3;
final int state = TelephonyManager.SIM_STATE_ABSENT;
@@ -1205,7 +1205,9 @@
@Test
public void testShouldListenForFace_whenFaceManagerNotAvailable_returnsFalse() {
- mFaceManager = null;
+ cleanupKeyguardUpdateMonitor();
+ mSpiedContext.addMockSystemService(FaceManager.class, null);
+ when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FACE)).thenReturn(false);
mKeyguardUpdateMonitor = new TestableKeyguardUpdateMonitor(mSpiedContext);
assertThat(mKeyguardUpdateMonitor.shouldListenForFace()).isFalse();
@@ -1258,6 +1260,7 @@
@Test
public void testShouldListenForFace_whenUserIsNotPrimary_returnsFalse() throws RemoteException {
+ cleanupKeyguardUpdateMonitor();
// This disables face auth
when(mUserManager.isPrimaryUser()).thenReturn(false);
mKeyguardUpdateMonitor =
@@ -1587,9 +1590,9 @@
@Test
public void testFingerAcquired_wakesUpPowerManager() {
- mContext.getOrCreateTestableResources().addOverride(
+ cleanupKeyguardUpdateMonitor();
+ mSpiedContext.getOrCreateTestableResources().addOverride(
com.android.internal.R.bool.kg_wake_on_acquire_start, true);
- mSpiedContext = spy(mContext);
mKeyguardUpdateMonitor = new TestableKeyguardUpdateMonitor(mSpiedContext);
fingerprintAcquireStart();
@@ -1598,15 +1601,23 @@
@Test
public void testFingerAcquired_doesNotWakeUpPowerManager() {
- mContext.getOrCreateTestableResources().addOverride(
+ cleanupKeyguardUpdateMonitor();
+ mSpiedContext.getOrCreateTestableResources().addOverride(
com.android.internal.R.bool.kg_wake_on_acquire_start, false);
- mSpiedContext = spy(mContext);
mKeyguardUpdateMonitor = new TestableKeyguardUpdateMonitor(mSpiedContext);
fingerprintAcquireStart();
verify(mPowerManager, never()).wakeUp(anyLong(), anyInt(), anyString());
}
+ private void cleanupKeyguardUpdateMonitor() {
+ if (mKeyguardUpdateMonitor != null) {
+ mKeyguardUpdateMonitor.removeCallback(mTestCallback);
+ mKeyguardUpdateMonitor.destroy();
+ mKeyguardUpdateMonitor = null;
+ }
+ }
+
private void faceAuthLockedOut() {
mKeyguardUpdateMonitor.mFaceAuthenticationCallback
.onAuthenticationError(FaceManager.FACE_ERROR_LOCKOUT_PERMANENT, "");