Loading libs/WindowManager/Shell/src/com/android/wm/shell/transition/HomeTransitionObserver.java +4 −2 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.wm.shell.transition; import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME; import static android.window.TransitionInfo.FLAG_BACK_GESTURE_ANIMATED; import static com.android.wm.shell.transition.Transitions.TransitionObserver; Loading Loading @@ -61,9 +62,10 @@ public class HomeTransitionObserver implements TransitionObserver, } final int mode = change.getMode(); final boolean isBackGesture = change.hasFlags(FLAG_BACK_GESTURE_ANIMATED); if (taskInfo.getActivityType() == ACTIVITY_TYPE_HOME && TransitionUtil.isOpenOrCloseMode(mode)) { notifyHomeVisibilityChanged(TransitionUtil.isOpeningType(mode)); && (TransitionUtil.isOpenOrCloseMode(mode) || isBackGesture)) { notifyHomeVisibilityChanged(TransitionUtil.isOpeningType(mode) || isBackGesture); } } } Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/HomeTransitionObserverTest.java +22 −0 Original line number Diff line number Diff line Loading @@ -18,8 +18,10 @@ package com.android.wm.shell.transition; import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME; import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED; import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_OPEN; import static android.view.WindowManager.TRANSIT_TO_BACK; import static android.window.TransitionInfo.FLAG_BACK_GESTURE_ANIMATED; import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; Loading Loading @@ -145,6 +147,26 @@ public class HomeTransitionObserverTest extends ShellTestCase { verify(mListener, times(0)).onHomeVisibilityChanged(anyBoolean()); } @Test public void testHomeActivityWithBackGestureNotifiesHomeIsVisible() 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))); when(change.hasFlags(FLAG_BACK_GESTURE_ANIMATED)).thenReturn(true); setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_HOME, TRANSIT_CHANGE); mHomeTransitionObserver.onTransitionReady(mock(IBinder.class), info, mock(SurfaceControl.Transaction.class), mock(SurfaceControl.Transaction.class)); verify(mListener, times(1)).onHomeVisibilityChanged(true); } /** * Helper class to initialize variables for the rest. */ Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/transition/HomeTransitionObserver.java +4 −2 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.wm.shell.transition; import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME; import static android.window.TransitionInfo.FLAG_BACK_GESTURE_ANIMATED; import static com.android.wm.shell.transition.Transitions.TransitionObserver; Loading Loading @@ -61,9 +62,10 @@ public class HomeTransitionObserver implements TransitionObserver, } final int mode = change.getMode(); final boolean isBackGesture = change.hasFlags(FLAG_BACK_GESTURE_ANIMATED); if (taskInfo.getActivityType() == ACTIVITY_TYPE_HOME && TransitionUtil.isOpenOrCloseMode(mode)) { notifyHomeVisibilityChanged(TransitionUtil.isOpeningType(mode)); && (TransitionUtil.isOpenOrCloseMode(mode) || isBackGesture)) { notifyHomeVisibilityChanged(TransitionUtil.isOpeningType(mode) || isBackGesture); } } } Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/HomeTransitionObserverTest.java +22 −0 Original line number Diff line number Diff line Loading @@ -18,8 +18,10 @@ package com.android.wm.shell.transition; import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME; import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED; import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_OPEN; import static android.view.WindowManager.TRANSIT_TO_BACK; import static android.window.TransitionInfo.FLAG_BACK_GESTURE_ANIMATED; import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; Loading Loading @@ -145,6 +147,26 @@ public class HomeTransitionObserverTest extends ShellTestCase { verify(mListener, times(0)).onHomeVisibilityChanged(anyBoolean()); } @Test public void testHomeActivityWithBackGestureNotifiesHomeIsVisible() 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))); when(change.hasFlags(FLAG_BACK_GESTURE_ANIMATED)).thenReturn(true); setupTransitionInfo(taskInfo, change, ACTIVITY_TYPE_HOME, TRANSIT_CHANGE); mHomeTransitionObserver.onTransitionReady(mock(IBinder.class), info, mock(SurfaceControl.Transaction.class), mock(SurfaceControl.Transaction.class)); verify(mListener, times(1)).onHomeVisibilityChanged(true); } /** * Helper class to initialize variables for the rest. */ Loading