[automerge] DO NOT MERGE DozeScreenState unregisters for AuthControllerCB 2p: 0d4aa6312a

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16838784

Change-Id: I514bdb32e7dcf66541de18d059eb825fa7798597
This commit is contained in:
Presubmit Automerger Backend
2022-02-11 20:36:39 +00:00
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());
}
}