Loading libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionObserver.java +13 −0 Original line number Diff line number Diff line Loading @@ -119,6 +119,9 @@ public class FreeformTaskTransitionObserver implements Transitions.TransitionObs case WindowManager.TRANSIT_TO_FRONT: onToFrontTransitionReady(change, startT, finishT); break; case WindowManager.TRANSIT_TO_BACK: onToBackTransitionReady(change, startT, finishT); break; case WindowManager.TRANSIT_CLOSE: { taskInfoList.add(change.getTaskInfo()); onCloseTransitionReady(change, startT, finishT); Loading Loading @@ -173,6 +176,16 @@ public class FreeformTaskTransitionObserver implements Transitions.TransitionObs change.getTaskInfo(), change.getLeash(), startT, finishT); } private void onToBackTransitionReady( TransitionInfo.Change change, SurfaceControl.Transaction startT, SurfaceControl.Transaction finishT) { mTaskChangeListener.ifPresent( listener -> listener.onTaskMovingToBack(change.getTaskInfo())); mWindowDecorViewModel.onTaskChanging( change.getTaskInfo(), change.getLeash(), startT, finishT); } @Override public void onTransitionStarting(@NonNull IBinder transition) {} Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/freeform/FreeformTaskTransitionObserverTest.java +17 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_CLOSE; import static android.view.WindowManager.TRANSIT_OPEN; import static android.view.WindowManager.TRANSIT_TO_BACK; import static android.view.WindowManager.TRANSIT_TO_FRONT; import static android.view.WindowManager.TRANSIT_CHANGE; Loading Loading @@ -160,6 +161,22 @@ public class FreeformTaskTransitionObserverTest { verify(mTaskChangeListener).onTaskMovingToFront(change.getTaskInfo()); } @Test public void toBackTransition_notifiesOnTaskMovingToBack() { final TransitionInfo.Change change = createChange(TRANSIT_TO_BACK, /* taskId= */ 1, WINDOWING_MODE_FREEFORM); final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_TO_BACK, /* flags= */ 0) .addChange(change).build(); final IBinder transition = mock(IBinder.class); final SurfaceControl.Transaction startT = mock(SurfaceControl.Transaction.class); final SurfaceControl.Transaction finishT = mock(SurfaceControl.Transaction.class); mTransitionObserver.onTransitionReady(transition, info, startT, finishT); mTransitionObserver.onTransitionStarting(transition); verify(mTaskChangeListener).onTaskMovingToBack(change.getTaskInfo()); } @Test public void changeTransition_notifiesOnTaskChanging() { final TransitionInfo.Change change = Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionObserver.java +13 −0 Original line number Diff line number Diff line Loading @@ -119,6 +119,9 @@ public class FreeformTaskTransitionObserver implements Transitions.TransitionObs case WindowManager.TRANSIT_TO_FRONT: onToFrontTransitionReady(change, startT, finishT); break; case WindowManager.TRANSIT_TO_BACK: onToBackTransitionReady(change, startT, finishT); break; case WindowManager.TRANSIT_CLOSE: { taskInfoList.add(change.getTaskInfo()); onCloseTransitionReady(change, startT, finishT); Loading Loading @@ -173,6 +176,16 @@ public class FreeformTaskTransitionObserver implements Transitions.TransitionObs change.getTaskInfo(), change.getLeash(), startT, finishT); } private void onToBackTransitionReady( TransitionInfo.Change change, SurfaceControl.Transaction startT, SurfaceControl.Transaction finishT) { mTaskChangeListener.ifPresent( listener -> listener.onTaskMovingToBack(change.getTaskInfo())); mWindowDecorViewModel.onTaskChanging( change.getTaskInfo(), change.getLeash(), startT, finishT); } @Override public void onTransitionStarting(@NonNull IBinder transition) {} Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/freeform/FreeformTaskTransitionObserverTest.java +17 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_CLOSE; import static android.view.WindowManager.TRANSIT_OPEN; import static android.view.WindowManager.TRANSIT_TO_BACK; import static android.view.WindowManager.TRANSIT_TO_FRONT; import static android.view.WindowManager.TRANSIT_CHANGE; Loading Loading @@ -160,6 +161,22 @@ public class FreeformTaskTransitionObserverTest { verify(mTaskChangeListener).onTaskMovingToFront(change.getTaskInfo()); } @Test public void toBackTransition_notifiesOnTaskMovingToBack() { final TransitionInfo.Change change = createChange(TRANSIT_TO_BACK, /* taskId= */ 1, WINDOWING_MODE_FREEFORM); final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_TO_BACK, /* flags= */ 0) .addChange(change).build(); final IBinder transition = mock(IBinder.class); final SurfaceControl.Transaction startT = mock(SurfaceControl.Transaction.class); final SurfaceControl.Transaction finishT = mock(SurfaceControl.Transaction.class); mTransitionObserver.onTransitionReady(transition, info, startT, finishT); mTransitionObserver.onTransitionStarting(transition); verify(mTaskChangeListener).onTaskMovingToBack(change.getTaskInfo()); } @Test public void changeTransition_notifiesOnTaskChanging() { final TransitionInfo.Change change = Loading