Loading services/core/java/com/android/server/wm/AppTransition.java +11 −11 Original line number Diff line number Diff line Loading @@ -1634,21 +1634,21 @@ public class AppTransition implements Dump { } @TransitionType int getKeyguardTransition() { if (mNextAppTransitionRequests.indexOf(TRANSIT_KEYGUARD_GOING_AWAY) != -1) { return TRANSIT_KEYGUARD_GOING_AWAY; } final int unoccludeIndex = mNextAppTransitionRequests.indexOf(TRANSIT_KEYGUARD_UNOCCLUDE); final int occludeIndex = mNextAppTransitionRequests.indexOf(TRANSIT_KEYGUARD_OCCLUDE); // No keyguard related transition requests. if (unoccludeIndex == -1 && occludeIndex == -1) { return TRANSIT_NONE; } // In case we unocclude Keyguard and occlude it again, meaning that we never actually // unoccclude/occlude Keyguard, but just run a normal transition. final int occludeIndex = mNextAppTransitionRequests.indexOf(TRANSIT_KEYGUARD_UNOCCLUDE); if (occludeIndex != -1 && occludeIndex < mNextAppTransitionRequests.indexOf(TRANSIT_KEYGUARD_OCCLUDE)) { if (unoccludeIndex != -1 && unoccludeIndex < occludeIndex) { return TRANSIT_NONE; } for (int i = 0; i < mNextAppTransitionRequests.size(); ++i) { final @TransitionType int transit = mNextAppTransitionRequests.get(i); if (isKeyguardTransit(transit)) { return transit; } } return TRANSIT_NONE; return unoccludeIndex != -1 ? TRANSIT_KEYGUARD_UNOCCLUDE : TRANSIT_KEYGUARD_OCCLUDE; } @TransitionType int getFirstAppTransition() { Loading services/tests/wmtests/src/com/android/server/wm/AppTransitionTests.java +20 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,9 @@ import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_CLOSE; import static android.view.WindowManager.TRANSIT_FLAG_APP_CRASHED; import static android.view.WindowManager.TRANSIT_KEYGUARD_GOING_AWAY; import static android.view.WindowManager.TRANSIT_KEYGUARD_OCCLUDE; import static android.view.WindowManager.TRANSIT_KEYGUARD_UNOCCLUDE; import static android.view.WindowManager.TRANSIT_NONE; import static android.view.WindowManager.TRANSIT_OLD_CRASHING_ACTIVITY_CLOSE; import static android.view.WindowManager.TRANSIT_OLD_KEYGUARD_GOING_AWAY; import static android.view.WindowManager.TRANSIT_OLD_TASK_CHANGE_WINDOWING_MODE; Loading Loading @@ -92,6 +95,7 @@ public class AppTransitionTests extends WindowTestsBase { final ActivityRecord activity = createActivityRecord(dc); mDc.prepareAppTransition(TRANSIT_OPEN); mDc.prepareAppTransition(TRANSIT_KEYGUARD_OCCLUDE); mDc.prepareAppTransition(TRANSIT_KEYGUARD_GOING_AWAY); mDc.mOpeningApps.add(activity); assertEquals(TRANSIT_OLD_KEYGUARD_GOING_AWAY, Loading @@ -101,6 +105,22 @@ public class AppTransitionTests extends WindowTestsBase { null /* oldWallpaper */, false /*skipAppTransitionAnimation*/)); } @Test public void testKeyguardUnoccludeOcclude() { final DisplayContent dc = createNewDisplay(Display.STATE_ON); final ActivityRecord activity = createActivityRecord(dc); mDc.prepareAppTransition(TRANSIT_KEYGUARD_UNOCCLUDE); mDc.prepareAppTransition(TRANSIT_KEYGUARD_OCCLUDE); mDc.mOpeningApps.add(activity); assertEquals(TRANSIT_NONE, AppTransitionController.getTransitCompatType(mDc.mAppTransition, mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps, mDisplayContent.mChangingContainers, null /* wallpaperTarget */, null /* oldWallpaper */, false /*skipAppTransitionAnimation*/)); } @Test public void testKeyguardKeep() { final DisplayContent dc = createNewDisplay(Display.STATE_ON); Loading Loading
services/core/java/com/android/server/wm/AppTransition.java +11 −11 Original line number Diff line number Diff line Loading @@ -1634,21 +1634,21 @@ public class AppTransition implements Dump { } @TransitionType int getKeyguardTransition() { if (mNextAppTransitionRequests.indexOf(TRANSIT_KEYGUARD_GOING_AWAY) != -1) { return TRANSIT_KEYGUARD_GOING_AWAY; } final int unoccludeIndex = mNextAppTransitionRequests.indexOf(TRANSIT_KEYGUARD_UNOCCLUDE); final int occludeIndex = mNextAppTransitionRequests.indexOf(TRANSIT_KEYGUARD_OCCLUDE); // No keyguard related transition requests. if (unoccludeIndex == -1 && occludeIndex == -1) { return TRANSIT_NONE; } // In case we unocclude Keyguard and occlude it again, meaning that we never actually // unoccclude/occlude Keyguard, but just run a normal transition. final int occludeIndex = mNextAppTransitionRequests.indexOf(TRANSIT_KEYGUARD_UNOCCLUDE); if (occludeIndex != -1 && occludeIndex < mNextAppTransitionRequests.indexOf(TRANSIT_KEYGUARD_OCCLUDE)) { if (unoccludeIndex != -1 && unoccludeIndex < occludeIndex) { return TRANSIT_NONE; } for (int i = 0; i < mNextAppTransitionRequests.size(); ++i) { final @TransitionType int transit = mNextAppTransitionRequests.get(i); if (isKeyguardTransit(transit)) { return transit; } } return TRANSIT_NONE; return unoccludeIndex != -1 ? TRANSIT_KEYGUARD_UNOCCLUDE : TRANSIT_KEYGUARD_OCCLUDE; } @TransitionType int getFirstAppTransition() { Loading
services/tests/wmtests/src/com/android/server/wm/AppTransitionTests.java +20 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,9 @@ import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_CLOSE; import static android.view.WindowManager.TRANSIT_FLAG_APP_CRASHED; import static android.view.WindowManager.TRANSIT_KEYGUARD_GOING_AWAY; import static android.view.WindowManager.TRANSIT_KEYGUARD_OCCLUDE; import static android.view.WindowManager.TRANSIT_KEYGUARD_UNOCCLUDE; import static android.view.WindowManager.TRANSIT_NONE; import static android.view.WindowManager.TRANSIT_OLD_CRASHING_ACTIVITY_CLOSE; import static android.view.WindowManager.TRANSIT_OLD_KEYGUARD_GOING_AWAY; import static android.view.WindowManager.TRANSIT_OLD_TASK_CHANGE_WINDOWING_MODE; Loading Loading @@ -92,6 +95,7 @@ public class AppTransitionTests extends WindowTestsBase { final ActivityRecord activity = createActivityRecord(dc); mDc.prepareAppTransition(TRANSIT_OPEN); mDc.prepareAppTransition(TRANSIT_KEYGUARD_OCCLUDE); mDc.prepareAppTransition(TRANSIT_KEYGUARD_GOING_AWAY); mDc.mOpeningApps.add(activity); assertEquals(TRANSIT_OLD_KEYGUARD_GOING_AWAY, Loading @@ -101,6 +105,22 @@ public class AppTransitionTests extends WindowTestsBase { null /* oldWallpaper */, false /*skipAppTransitionAnimation*/)); } @Test public void testKeyguardUnoccludeOcclude() { final DisplayContent dc = createNewDisplay(Display.STATE_ON); final ActivityRecord activity = createActivityRecord(dc); mDc.prepareAppTransition(TRANSIT_KEYGUARD_UNOCCLUDE); mDc.prepareAppTransition(TRANSIT_KEYGUARD_OCCLUDE); mDc.mOpeningApps.add(activity); assertEquals(TRANSIT_NONE, AppTransitionController.getTransitCompatType(mDc.mAppTransition, mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps, mDisplayContent.mChangingContainers, null /* wallpaperTarget */, null /* oldWallpaper */, false /*skipAppTransitionAnimation*/)); } @Test public void testKeyguardKeep() { final DisplayContent dc = createNewDisplay(Display.STATE_ON); Loading