Merge "Reset keyguard drawn tasks in onScreenTurnedOff" into tm-qpr-dev am: 1c64df3e5f

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

Change-Id: Ia70886122ca8be6cd2baf40234553afc25b69999
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Nick Chameyev
2023-02-22 14:28:17 +00:00
committed by Automerger Merge Worker
3 changed files with 33 additions and 0 deletions

View File

@@ -73,6 +73,10 @@ class ScreenOnCoordinator @Inject constructor(
@BinderThread @BinderThread
fun onScreenTurnedOn() { fun onScreenTurnedOn() {
foldAodAnimationController?.onScreenTurnedOn() foldAodAnimationController?.onScreenTurnedOn()
}
@BinderThread
fun onScreenTurnedOff() {
pendingTasks.reset() pendingTasks.reset()
} }
} }

View File

@@ -638,6 +638,7 @@ public class KeyguardService extends Service {
checkPermission(); checkPermission();
mKeyguardViewMediator.onScreenTurnedOff(); mKeyguardViewMediator.onScreenTurnedOff();
mKeyguardLifecyclesDispatcher.dispatch(KeyguardLifecyclesDispatcher.SCREEN_TURNED_OFF); mKeyguardLifecyclesDispatcher.dispatch(KeyguardLifecyclesDispatcher.SCREEN_TURNED_OFF);
mScreenOnCoordinator.onScreenTurnedOff();
} }
@Override // Binder interface @Override // Binder interface

View File

@@ -32,6 +32,7 @@ import org.mockito.ArgumentCaptor
import org.mockito.Captor import org.mockito.Captor
import org.mockito.Mock import org.mockito.Mock
import org.mockito.Mockito.`when` import org.mockito.Mockito.`when`
import org.mockito.Mockito.never
import org.mockito.Mockito.verify import org.mockito.Mockito.verify
import org.mockito.MockitoAnnotations import org.mockito.MockitoAnnotations
import java.util.Optional import java.util.Optional
@@ -82,6 +83,33 @@ class ScreenOnCoordinatorTest : SysuiTestCase() {
verify(runnable).run() verify(runnable).run()
} }
@Test
fun testTasksReady_onScreenTurningOnAndTurnedOnEventsCalledTogether_callsDrawnCallback() {
screenOnCoordinator.onScreenTurningOn(runnable)
screenOnCoordinator.onScreenTurnedOn()
onUnfoldOverlayReady()
onFoldAodReady()
waitHandlerIdle(testHandler)
// Should be called when both unfold overlay and keyguard drawn ready
verify(runnable).run()
}
@Test
fun testTasksReady_onScreenTurnedOnAndTurnedOffBeforeCompletion_doesNotCallDrawnCallback() {
screenOnCoordinator.onScreenTurningOn(runnable)
screenOnCoordinator.onScreenTurnedOn()
screenOnCoordinator.onScreenTurnedOff()
onUnfoldOverlayReady()
onFoldAodReady()
waitHandlerIdle(testHandler)
// Should not be called because this screen turning on call is not valid anymore
verify(runnable, never()).run()
}
@Test @Test
fun testUnfoldTransitionDisabledDrawnTasksReady_onScreenTurningOn_callsDrawnCallback() { fun testUnfoldTransitionDisabledDrawnTasksReady_onScreenTurningOn_callsDrawnCallback() {
// Recreate with empty unfoldComponent // Recreate with empty unfoldComponent