Loading services/core/java/com/android/server/wm/TransitionController.java +6 −0 Original line number Diff line number Diff line Loading @@ -496,6 +496,9 @@ class TransitionController { if (mCollectingTransition != null && mCollectingTransition.isInTransientHide(task)) { return true; } for (int i = mWaitingTransitions.size() - 1; i >= 0; --i) { if (mWaitingTransitions.get(i).isInTransientHide(task)) return true; } for (int i = mPlayingTransitions.size() - 1; i >= 0; --i) { if (mPlayingTransitions.get(i).isInTransientHide(task)) return true; } Loading @@ -506,6 +509,9 @@ class TransitionController { if (mCollectingTransition != null && mCollectingTransition.isTransientVisible(task)) { return true; } for (int i = mWaitingTransitions.size() - 1; i >= 0; --i) { if (mWaitingTransitions.get(i).isTransientVisible(task)) return true; } for (int i = mPlayingTransitions.size() - 1; i >= 0; --i) { if (mPlayingTransitions.get(i).isTransientVisible(task)) return true; } Loading services/tests/wmtests/src/com/android/server/wm/TransitionTests.java +27 −0 Original line number Diff line number Diff line Loading @@ -1601,6 +1601,33 @@ public class TransitionTests extends WindowTestsBase { assertFalse(controller.isTransientVisible(taskRecent)); } @Test public void testTransientWithParallelLaunch() { final Task recentTask = mDisplayContent.getDefaultTaskDisplayArea().getRootHomeTask(); final ActivityRecord recent = new ActivityBuilder(mAtm).setTask(recentTask) .setVisible(false).build(); final ActivityRecord app = new ActivityBuilder(mAtm).setCreateTask(true).build(); final Task appTask = app.getTask(); registerTestTransitionPlayer(); final TransitionController controller = mRootWindowContainer.mTransitionController; final Transition transition = createTestTransition(TRANSIT_OPEN, controller); transition.mParallelCollectType = Transition.PARALLEL_TYPE_RECENTS; controller.moveToCollecting(transition); transition.collect(recentTask); transition.collect(appTask); transition.setTransientLaunch(recent, appTask); recentTask.moveToFront("move-recent-to-front"); transition.setAllReady(); transition.start(); // Assume that the app starts another activity in its task. final Transition newTransition = controller.createAndStartCollecting(TRANSIT_OPEN); assertEquals(newTransition, controller.getCollectingTransition()); assertTrue(controller.mWaitingTransitions.contains(transition)); assertTrue(controller.isTransientHide(appTask)); assertTrue(controller.isTransientVisible(appTask)); } @Test public void testNotReadyPushPop() { final TransitionController controller = new TestTransitionController(mAtm); Loading Loading
services/core/java/com/android/server/wm/TransitionController.java +6 −0 Original line number Diff line number Diff line Loading @@ -496,6 +496,9 @@ class TransitionController { if (mCollectingTransition != null && mCollectingTransition.isInTransientHide(task)) { return true; } for (int i = mWaitingTransitions.size() - 1; i >= 0; --i) { if (mWaitingTransitions.get(i).isInTransientHide(task)) return true; } for (int i = mPlayingTransitions.size() - 1; i >= 0; --i) { if (mPlayingTransitions.get(i).isInTransientHide(task)) return true; } Loading @@ -506,6 +509,9 @@ class TransitionController { if (mCollectingTransition != null && mCollectingTransition.isTransientVisible(task)) { return true; } for (int i = mWaitingTransitions.size() - 1; i >= 0; --i) { if (mWaitingTransitions.get(i).isTransientVisible(task)) return true; } for (int i = mPlayingTransitions.size() - 1; i >= 0; --i) { if (mPlayingTransitions.get(i).isTransientVisible(task)) return true; } Loading
services/tests/wmtests/src/com/android/server/wm/TransitionTests.java +27 −0 Original line number Diff line number Diff line Loading @@ -1601,6 +1601,33 @@ public class TransitionTests extends WindowTestsBase { assertFalse(controller.isTransientVisible(taskRecent)); } @Test public void testTransientWithParallelLaunch() { final Task recentTask = mDisplayContent.getDefaultTaskDisplayArea().getRootHomeTask(); final ActivityRecord recent = new ActivityBuilder(mAtm).setTask(recentTask) .setVisible(false).build(); final ActivityRecord app = new ActivityBuilder(mAtm).setCreateTask(true).build(); final Task appTask = app.getTask(); registerTestTransitionPlayer(); final TransitionController controller = mRootWindowContainer.mTransitionController; final Transition transition = createTestTransition(TRANSIT_OPEN, controller); transition.mParallelCollectType = Transition.PARALLEL_TYPE_RECENTS; controller.moveToCollecting(transition); transition.collect(recentTask); transition.collect(appTask); transition.setTransientLaunch(recent, appTask); recentTask.moveToFront("move-recent-to-front"); transition.setAllReady(); transition.start(); // Assume that the app starts another activity in its task. final Transition newTransition = controller.createAndStartCollecting(TRANSIT_OPEN); assertEquals(newTransition, controller.getCollectingTransition()); assertTrue(controller.mWaitingTransitions.contains(transition)); assertTrue(controller.isTransientHide(appTask)); assertTrue(controller.isTransientVisible(appTask)); } @Test public void testNotReadyPushPop() { final TransitionController controller = new TestTransitionController(mAtm); Loading