Loading libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionObserver.java +16 −8 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ public class FreeformTaskTransitionObserver implements Transitions.TransitionObs new HashMap<>(); private final Map<Integer, ActivityManager.RunningTaskInfo> mPendingHiddenTasks = new HashMap<>(); private IBinder mTransientTransition; public FreeformTaskTransitionObserver( ShellInit shellInit, Loading Loading @@ -141,11 +142,9 @@ public class FreeformTaskTransitionObserver implements Transitions.TransitionObs break; case WindowManager.TRANSIT_TO_BACK: { if (info.getType() == TRANSIT_START_RECENTS_TRANSITION) { // The tasks will be transiently hidden, which means they are still visible. mPendingHiddenTasks.put(taskInfo.taskId, taskInfo); } else { onToBackTransitionReady(change, startT, finishT); mTransientTransition = transition; } onToBackTransitionReady(change, startT, finishT); break; } case WindowManager.TRANSIT_CLOSE: { Loading Loading @@ -204,8 +203,13 @@ public class FreeformTaskTransitionObserver implements Transitions.TransitionObs TransitionInfo.Change change, SurfaceControl.Transaction startT, SurfaceControl.Transaction finishT) { if (mTransientTransition != null) { // The tasks will be transiently hidden, which means they are still visible. mPendingHiddenTasks.put(change.getTaskInfo().taskId, change.getTaskInfo()); } else { mTaskChangeListener.ifPresent( listener -> listener.onTaskMovingToBack(change.getTaskInfo())); } mWindowDecorViewModel.onTaskChanging( change.getTaskInfo(), change.getLeash(), startT, finishT); } Loading Loading @@ -259,8 +263,12 @@ public class FreeformTaskTransitionObserver implements Transitions.TransitionObs mWindowDecorViewModel.destroyWindowDecoration(taskInfo.get(i)); } if (transition == mTransientTransition) { for (ActivityManager.RunningTaskInfo task : mPendingHiddenTasks.values()) { mTaskChangeListener.ifPresent(it -> it.onTaskMovingToBack(task)); } mPendingHiddenTasks.clear(); mTransientTransition = null; } } } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionObserver.java +16 −8 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ public class FreeformTaskTransitionObserver implements Transitions.TransitionObs new HashMap<>(); private final Map<Integer, ActivityManager.RunningTaskInfo> mPendingHiddenTasks = new HashMap<>(); private IBinder mTransientTransition; public FreeformTaskTransitionObserver( ShellInit shellInit, Loading Loading @@ -141,11 +142,9 @@ public class FreeformTaskTransitionObserver implements Transitions.TransitionObs break; case WindowManager.TRANSIT_TO_BACK: { if (info.getType() == TRANSIT_START_RECENTS_TRANSITION) { // The tasks will be transiently hidden, which means they are still visible. mPendingHiddenTasks.put(taskInfo.taskId, taskInfo); } else { onToBackTransitionReady(change, startT, finishT); mTransientTransition = transition; } onToBackTransitionReady(change, startT, finishT); break; } case WindowManager.TRANSIT_CLOSE: { Loading Loading @@ -204,8 +203,13 @@ public class FreeformTaskTransitionObserver implements Transitions.TransitionObs TransitionInfo.Change change, SurfaceControl.Transaction startT, SurfaceControl.Transaction finishT) { if (mTransientTransition != null) { // The tasks will be transiently hidden, which means they are still visible. mPendingHiddenTasks.put(change.getTaskInfo().taskId, change.getTaskInfo()); } else { mTaskChangeListener.ifPresent( listener -> listener.onTaskMovingToBack(change.getTaskInfo())); } mWindowDecorViewModel.onTaskChanging( change.getTaskInfo(), change.getLeash(), startT, finishT); } Loading Loading @@ -259,8 +263,12 @@ public class FreeformTaskTransitionObserver implements Transitions.TransitionObs mWindowDecorViewModel.destroyWindowDecoration(taskInfo.get(i)); } if (transition == mTransientTransition) { for (ActivityManager.RunningTaskInfo task : mPendingHiddenTasks.values()) { mTaskChangeListener.ifPresent(it -> it.onTaskMovingToBack(task)); } mPendingHiddenTasks.clear(); mTransientTransition = null; } } }