Loading services/core/java/com/android/server/wm/ActivityTaskManagerService.java +3 −4 Original line number Diff line number Diff line Loading @@ -3789,10 +3789,9 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } final boolean wasNoResumed = mTopApp == null || !mTopApp.hasResumedActivity(); for (int i = mRootWindowContainer.getChildCount() - 1; i >= 0; i--) { final DisplayContent dc = mRootWindowContainer.getChildAt(i); mKeyguardController.keyguardGoingAway(dc.mDisplayId, flags); } mKeyguardController.keyguardGoingAway(flags); final boolean foundResumed = wasNoResumed && mTopApp != null && mTopApp.hasResumedActivity(); if (isPowerModePreApplied && !foundResumed) { Loading services/core/java/com/android/server/wm/KeyguardController.java +20 −9 Original line number Diff line number Diff line Loading @@ -298,21 +298,34 @@ class KeyguardController { * @param flags See {@link WindowManagerPolicy#KEYGUARD_GOING_AWAY_FLAG_TO_SHADE} * etc. */ void keyguardGoingAway(int displayId, int flags) { final KeyguardDisplayState state = getDisplayState(displayId); if (!state.mKeyguardShowing || state.mKeyguardGoingAway) { void keyguardGoingAway(int flags) { Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "keyguardGoingAway"); boolean goingAwayChanged = false; for (int i = mRootWindowContainer.getChildCount() - 1; i >= 0; i--) { final DisplayContent dc = mRootWindowContainer.getChildAt(i); if (!dc.isRemoving() && !dc.isRemoved()) { final var state = getDisplayState(dc.mDisplayId); if (state.mKeyguardShowing && !state.mKeyguardGoingAway) { goingAwayChanged = true; state.mKeyguardGoingAway = true; state.writeEventLog("keyguardGoingAway"); scheduleGoingAwayTimeout(dc.mDisplayId); } } } if (!goingAwayChanged) { Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER); return; } Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "keyguardGoingAway"); mService.deferWindowLayout(); state.mKeyguardGoingAway = true; final ActionChain chain = mService.mChainTracker.startTransit("kgGoAway"); try { state.writeEventLog("keyguardGoingAway"); final int transitFlags = convertTransitFlags(flags); if (ENABLE_NEW_KEYGUARD_SHELL_TRANSITIONS) { final Transition transition = chain.getTransition(); if (transition != null && displayId == DEFAULT_DISPLAY) { if (transition != null) { transition.addFlag(TRANSIT_FLAG_KEYGUARD_GOING_AWAY); } } else { Loading @@ -330,8 +343,6 @@ class KeyguardController { mRootWindowContainer.ensureActivitiesVisible(); mRootWindowContainer.addStartingWindowsForVisibleActivities(); mWindowManager.executeAppTransition(); scheduleGoingAwayTimeout(displayId); } finally { mService.continueWindowLayout(); mService.mChainTracker.endPartial(); Loading services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +3 −3 Original line number Diff line number Diff line Loading @@ -912,7 +912,7 @@ public class DisplayContentTests extends WindowTestsBase { assertEquals("Visible keyguard must influence device orientation", SCREEN_ORIENTATION_PORTRAIT, mDisplayContent.getOrientation()); mAtm.mKeyguardController.keyguardGoingAway(appWin.getDisplayId(), 0 /* flags */); mAtm.mKeyguardController.keyguardGoingAway(0 /* flags */); assertEquals("Keyguard that is going away must not influence device orientation", SCREEN_ORIENTATION_LANDSCAPE, mDisplayContent.getOrientation()); } Loading Loading @@ -2557,7 +2557,7 @@ public class DisplayContentTests extends WindowTestsBase { transitions.flush(); // Start unlocking from AOD. keyguard.keyguardGoingAway(displayId, 0x0 /* flags */); keyguard.keyguardGoingAway(0x0 /* flags */); assertTrue(keyguardGoingAway.getAsBoolean()); assertTrue(appVisible.getAsBoolean()); Loading Loading @@ -2620,7 +2620,7 @@ public class DisplayContentTests extends WindowTestsBase { transitions.flush(); // Start unlocking from AOD. keyguard.keyguardGoingAway(displayId, 0x0 /* flags */); keyguard.keyguardGoingAway(0x0 /* flags */); assertTrue(keyguardGoingAway.getAsBoolean()); assertTrue(appVisible.getAsBoolean()); Loading Loading
services/core/java/com/android/server/wm/ActivityTaskManagerService.java +3 −4 Original line number Diff line number Diff line Loading @@ -3789,10 +3789,9 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } final boolean wasNoResumed = mTopApp == null || !mTopApp.hasResumedActivity(); for (int i = mRootWindowContainer.getChildCount() - 1; i >= 0; i--) { final DisplayContent dc = mRootWindowContainer.getChildAt(i); mKeyguardController.keyguardGoingAway(dc.mDisplayId, flags); } mKeyguardController.keyguardGoingAway(flags); final boolean foundResumed = wasNoResumed && mTopApp != null && mTopApp.hasResumedActivity(); if (isPowerModePreApplied && !foundResumed) { Loading
services/core/java/com/android/server/wm/KeyguardController.java +20 −9 Original line number Diff line number Diff line Loading @@ -298,21 +298,34 @@ class KeyguardController { * @param flags See {@link WindowManagerPolicy#KEYGUARD_GOING_AWAY_FLAG_TO_SHADE} * etc. */ void keyguardGoingAway(int displayId, int flags) { final KeyguardDisplayState state = getDisplayState(displayId); if (!state.mKeyguardShowing || state.mKeyguardGoingAway) { void keyguardGoingAway(int flags) { Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "keyguardGoingAway"); boolean goingAwayChanged = false; for (int i = mRootWindowContainer.getChildCount() - 1; i >= 0; i--) { final DisplayContent dc = mRootWindowContainer.getChildAt(i); if (!dc.isRemoving() && !dc.isRemoved()) { final var state = getDisplayState(dc.mDisplayId); if (state.mKeyguardShowing && !state.mKeyguardGoingAway) { goingAwayChanged = true; state.mKeyguardGoingAway = true; state.writeEventLog("keyguardGoingAway"); scheduleGoingAwayTimeout(dc.mDisplayId); } } } if (!goingAwayChanged) { Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER); return; } Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "keyguardGoingAway"); mService.deferWindowLayout(); state.mKeyguardGoingAway = true; final ActionChain chain = mService.mChainTracker.startTransit("kgGoAway"); try { state.writeEventLog("keyguardGoingAway"); final int transitFlags = convertTransitFlags(flags); if (ENABLE_NEW_KEYGUARD_SHELL_TRANSITIONS) { final Transition transition = chain.getTransition(); if (transition != null && displayId == DEFAULT_DISPLAY) { if (transition != null) { transition.addFlag(TRANSIT_FLAG_KEYGUARD_GOING_AWAY); } } else { Loading @@ -330,8 +343,6 @@ class KeyguardController { mRootWindowContainer.ensureActivitiesVisible(); mRootWindowContainer.addStartingWindowsForVisibleActivities(); mWindowManager.executeAppTransition(); scheduleGoingAwayTimeout(displayId); } finally { mService.continueWindowLayout(); mService.mChainTracker.endPartial(); Loading
services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +3 −3 Original line number Diff line number Diff line Loading @@ -912,7 +912,7 @@ public class DisplayContentTests extends WindowTestsBase { assertEquals("Visible keyguard must influence device orientation", SCREEN_ORIENTATION_PORTRAIT, mDisplayContent.getOrientation()); mAtm.mKeyguardController.keyguardGoingAway(appWin.getDisplayId(), 0 /* flags */); mAtm.mKeyguardController.keyguardGoingAway(0 /* flags */); assertEquals("Keyguard that is going away must not influence device orientation", SCREEN_ORIENTATION_LANDSCAPE, mDisplayContent.getOrientation()); } Loading Loading @@ -2557,7 +2557,7 @@ public class DisplayContentTests extends WindowTestsBase { transitions.flush(); // Start unlocking from AOD. keyguard.keyguardGoingAway(displayId, 0x0 /* flags */); keyguard.keyguardGoingAway(0x0 /* flags */); assertTrue(keyguardGoingAway.getAsBoolean()); assertTrue(appVisible.getAsBoolean()); Loading Loading @@ -2620,7 +2620,7 @@ public class DisplayContentTests extends WindowTestsBase { transitions.flush(); // Start unlocking from AOD. keyguard.keyguardGoingAway(displayId, 0x0 /* flags */); keyguard.keyguardGoingAway(0x0 /* flags */); assertTrue(keyguardGoingAway.getAsBoolean()); assertTrue(appVisible.getAsBoolean()); Loading