Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0d4aa631 authored by Beverly's avatar Beverly Committed by Beverly Tai
Browse files

DO NOT MERGE DozeScreenState unregisters for AuthControllerCB

Test: atest DozeScreenStateTest
Fixes: 218885442
Change-Id: Ib6cbdf14c2a1ec6aedfb0924ed30983779f7d624
parent d7d3c2d9
Loading
Loading
Loading
Loading
+18 −11
Original line number Diff line number Diff line
@@ -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();
        }
    };
}
+8 −0
Original line number Diff line number Diff line
@@ -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());
    }
}
 No newline at end of file