DO NOT MERGE DozeScreenState unregisters for AuthControllerCB

Test: atest DozeScreenStateTest
Fixes: 218885442
Change-Id: Ib6cbdf14c2a1ec6aedfb0924ed30983779f7d624
This commit is contained in:
Beverly
2022-02-10 20:09:41 +00:00
committed by Beverly Tai
parent d7d3c2d96b
commit 0d4aa6312a
2 changed files with 26 additions and 11 deletions

View File

@@ -105,17 +105,7 @@ public class DozeScreenState implements DozeMachine.Part {
updateUdfpsController();
if (mUdfpsController == null) {
mAuthController.addCallback(new AuthController.Callback() {
@Override
public void onAllAuthenticatorsRegistered() {
updateUdfpsController();
}
@Override
public void onEnrollmentsChanged() {
updateUdfpsController();
}
});
mAuthController.addCallback(mAuthControllerCallback);
}
}
@@ -127,6 +117,11 @@ public class DozeScreenState implements DozeMachine.Part {
}
}
@Override
public void destroy() {
mAuthController.removeCallback(mAuthControllerCallback);
}
@Override
public void transitionTo(DozeMachine.State oldState, DozeMachine.State newState) {
int screenState = newState.screenState(mParameters);
@@ -222,4 +217,16 @@ public class DozeScreenState implements DozeMachine.Part {
mWakeLock.setAcquired(false);
}
}
private final AuthController.Callback mAuthControllerCallback = new AuthController.Callback() {
@Override
public void onAllAuthenticatorsRegistered() {
updateUdfpsController();
}
@Override
public void onEnrollmentsChanged() {
updateUdfpsController();
}
};
}

View File

@@ -35,6 +35,7 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Matchers.anyObject;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.verify;
@@ -306,4 +307,11 @@ public class DozeScreenStateTest extends SysuiTestCase {
// THEN the display screen state will change
assertEquals(Display.STATE_DOZE_SUSPEND, mServiceFake.screenState);
}
@Test
public void authCallbackRemovedOnDestroy() {
mScreen.destroy();
verify(mAuthController).removeCallback(anyObject());
}
}