Loading libs/WindowManager/Shell/src/com/android/wm/shell/transition/HomeTransitionObserver.java +3 −1 Original line number Diff line number Diff line Loading @@ -57,7 +57,9 @@ public class HomeTransitionObserver implements TransitionObserver, @NonNull SurfaceControl.Transaction finishTransaction) { for (TransitionInfo.Change change : info.getChanges()) { final ActivityManager.RunningTaskInfo taskInfo = change.getTaskInfo(); if (taskInfo == null || taskInfo.taskId == -1) { if (taskInfo == null || taskInfo.taskId == -1 || !taskInfo.isRunning) { continue; } Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/HomeTransitionObserverTest.java +25 −7 Original line number Diff line number Diff line Loading @@ -101,7 +101,7 @@ public class HomeTransitionObserverTest extends ShellTestCase { when(change.getTaskInfo()).thenReturn(taskInfo); when(info.getChanges()).thenReturn(new ArrayList<>(List.of(change))); setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_HOME, TRANSIT_OPEN); setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_HOME, TRANSIT_OPEN, true); mHomeTransitionObserver.onTransitionReady(mock(IBinder.class), info, Loading @@ -119,7 +119,7 @@ public class HomeTransitionObserverTest extends ShellTestCase { when(change.getTaskInfo()).thenReturn(taskInfo); when(info.getChanges()).thenReturn(new ArrayList<>(List.of(change))); setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_HOME, TRANSIT_TO_BACK); setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_HOME, TRANSIT_TO_BACK, true); mHomeTransitionObserver.onTransitionReady(mock(IBinder.class), info, Loading @@ -137,7 +137,25 @@ public class HomeTransitionObserverTest extends ShellTestCase { when(change.getTaskInfo()).thenReturn(taskInfo); when(info.getChanges()).thenReturn(new ArrayList<>(List.of(change))); setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_UNDEFINED, TRANSIT_TO_BACK); setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_UNDEFINED, TRANSIT_TO_BACK, true); mHomeTransitionObserver.onTransitionReady(mock(IBinder.class), info, mock(SurfaceControl.Transaction.class), mock(SurfaceControl.Transaction.class)); verify(mListener, times(0)).onHomeVisibilityChanged(anyBoolean()); } @Test public void testNonRunningHomeActivityDoesNotTriggerCallback() throws RemoteException { TransitionInfo info = mock(TransitionInfo.class); TransitionInfo.Change change = mock(TransitionInfo.Change.class); ActivityManager.RunningTaskInfo taskInfo = mock(ActivityManager.RunningTaskInfo.class); when(change.getTaskInfo()).thenReturn(taskInfo); when(info.getChanges()).thenReturn(new ArrayList<>(List.of(change))); setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_UNDEFINED, TRANSIT_TO_BACK, false); mHomeTransitionObserver.onTransitionReady(mock(IBinder.class), info, Loading @@ -156,7 +174,7 @@ public class HomeTransitionObserverTest extends ShellTestCase { when(info.getChanges()).thenReturn(new ArrayList<>(List.of(change))); when(change.hasFlags(FLAG_BACK_GESTURE_ANIMATED)).thenReturn(true); setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_HOME, TRANSIT_CHANGE); setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_HOME, TRANSIT_CHANGE, true); mHomeTransitionObserver.onTransitionReady(mock(IBinder.class), info, Loading @@ -166,16 +184,16 @@ public class HomeTransitionObserverTest extends ShellTestCase { verify(mListener, times(1)).onHomeVisibilityChanged(true); } /** * Helper class to initialize variables for the rest. */ private void setupTransitionInfo(ActivityManager.RunningTaskInfo taskInfo, TransitionInfo.Change change, @ActivityType int activityType, @TransitionMode int mode) { @TransitionMode int mode, boolean isRunning) { when(taskInfo.getActivityType()).thenReturn(activityType); when(change.getMode()).thenReturn(mode); taskInfo.isRunning = isRunning; } } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/transition/HomeTransitionObserver.java +3 −1 Original line number Diff line number Diff line Loading @@ -57,7 +57,9 @@ public class HomeTransitionObserver implements TransitionObserver, @NonNull SurfaceControl.Transaction finishTransaction) { for (TransitionInfo.Change change : info.getChanges()) { final ActivityManager.RunningTaskInfo taskInfo = change.getTaskInfo(); if (taskInfo == null || taskInfo.taskId == -1) { if (taskInfo == null || taskInfo.taskId == -1 || !taskInfo.isRunning) { continue; } Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/HomeTransitionObserverTest.java +25 −7 Original line number Diff line number Diff line Loading @@ -101,7 +101,7 @@ public class HomeTransitionObserverTest extends ShellTestCase { when(change.getTaskInfo()).thenReturn(taskInfo); when(info.getChanges()).thenReturn(new ArrayList<>(List.of(change))); setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_HOME, TRANSIT_OPEN); setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_HOME, TRANSIT_OPEN, true); mHomeTransitionObserver.onTransitionReady(mock(IBinder.class), info, Loading @@ -119,7 +119,7 @@ public class HomeTransitionObserverTest extends ShellTestCase { when(change.getTaskInfo()).thenReturn(taskInfo); when(info.getChanges()).thenReturn(new ArrayList<>(List.of(change))); setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_HOME, TRANSIT_TO_BACK); setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_HOME, TRANSIT_TO_BACK, true); mHomeTransitionObserver.onTransitionReady(mock(IBinder.class), info, Loading @@ -137,7 +137,25 @@ public class HomeTransitionObserverTest extends ShellTestCase { when(change.getTaskInfo()).thenReturn(taskInfo); when(info.getChanges()).thenReturn(new ArrayList<>(List.of(change))); setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_UNDEFINED, TRANSIT_TO_BACK); setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_UNDEFINED, TRANSIT_TO_BACK, true); mHomeTransitionObserver.onTransitionReady(mock(IBinder.class), info, mock(SurfaceControl.Transaction.class), mock(SurfaceControl.Transaction.class)); verify(mListener, times(0)).onHomeVisibilityChanged(anyBoolean()); } @Test public void testNonRunningHomeActivityDoesNotTriggerCallback() throws RemoteException { TransitionInfo info = mock(TransitionInfo.class); TransitionInfo.Change change = mock(TransitionInfo.Change.class); ActivityManager.RunningTaskInfo taskInfo = mock(ActivityManager.RunningTaskInfo.class); when(change.getTaskInfo()).thenReturn(taskInfo); when(info.getChanges()).thenReturn(new ArrayList<>(List.of(change))); setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_UNDEFINED, TRANSIT_TO_BACK, false); mHomeTransitionObserver.onTransitionReady(mock(IBinder.class), info, Loading @@ -156,7 +174,7 @@ public class HomeTransitionObserverTest extends ShellTestCase { when(info.getChanges()).thenReturn(new ArrayList<>(List.of(change))); when(change.hasFlags(FLAG_BACK_GESTURE_ANIMATED)).thenReturn(true); setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_HOME, TRANSIT_CHANGE); setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_HOME, TRANSIT_CHANGE, true); mHomeTransitionObserver.onTransitionReady(mock(IBinder.class), info, Loading @@ -166,16 +184,16 @@ public class HomeTransitionObserverTest extends ShellTestCase { verify(mListener, times(1)).onHomeVisibilityChanged(true); } /** * Helper class to initialize variables for the rest. */ private void setupTransitionInfo(ActivityManager.RunningTaskInfo taskInfo, TransitionInfo.Change change, @ActivityType int activityType, @TransitionMode int mode) { @TransitionMode int mode, boolean isRunning) { when(taskInfo.getActivityType()).thenReturn(activityType); when(change.getMode()).thenReturn(mode); taskInfo.isRunning = isRunning; } }