Loading libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java +24 −3 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.app.WindowConfiguration; import android.graphics.Rect; import android.os.IBinder; import android.util.ArrayMap; import android.util.DisplayMetrics; import android.view.SurfaceControl; import android.view.WindowManager; import android.window.TransitionInfo; Loading @@ -38,6 +39,7 @@ import androidx.annotation.Nullable; import com.android.wm.shell.common.DisplayController; import com.android.wm.shell.common.ShellExecutor; import com.android.wm.shell.shared.animation.MinimizeAnimator; import com.android.wm.shell.transition.Transitions; import java.util.ArrayList; Loading Loading @@ -137,7 +139,7 @@ public class FreeformTaskTransitionHandler break; case WindowManager.TRANSIT_TO_BACK: transitionHandled |= startMinimizeTransition( transition, info.getType(), change); transition, info.getType(), change, finishT, animations, onAnimFinish); break; case WindowManager.TRANSIT_CLOSE: if (change.getTaskInfo().getWindowingMode() == WINDOWING_MODE_FREEFORM) { Loading Loading @@ -206,7 +208,10 @@ public class FreeformTaskTransitionHandler private boolean startMinimizeTransition( IBinder transition, int type, TransitionInfo.Change change) { TransitionInfo.Change change, SurfaceControl.Transaction finishT, ArrayList<Animator> animations, Runnable onAnimFinish) { if (!mPendingTransitionTokens.contains(transition)) { return false; } Loading @@ -215,7 +220,23 @@ public class FreeformTaskTransitionHandler if (type != Transitions.TRANSIT_MINIMIZE) { return false; } // TODO(b/361524575): Add minimize animations SurfaceControl.Transaction t = new SurfaceControl.Transaction(); SurfaceControl sc = change.getLeash(); finishT.hide(sc); final DisplayMetrics displayMetrics = mDisplayController .getDisplayContext(taskInfo.displayId).getResources().getDisplayMetrics(); final Animator animator = MinimizeAnimator.create( displayMetrics, change, t, (anim) -> { animations.remove(anim); onAnimFinish.run(); return null; }); animations.add(animator); return true; } Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java +24 −3 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.app.WindowConfiguration; import android.graphics.Rect; import android.os.IBinder; import android.util.ArrayMap; import android.util.DisplayMetrics; import android.view.SurfaceControl; import android.view.WindowManager; import android.window.TransitionInfo; Loading @@ -38,6 +39,7 @@ import androidx.annotation.Nullable; import com.android.wm.shell.common.DisplayController; import com.android.wm.shell.common.ShellExecutor; import com.android.wm.shell.shared.animation.MinimizeAnimator; import com.android.wm.shell.transition.Transitions; import java.util.ArrayList; Loading Loading @@ -137,7 +139,7 @@ public class FreeformTaskTransitionHandler break; case WindowManager.TRANSIT_TO_BACK: transitionHandled |= startMinimizeTransition( transition, info.getType(), change); transition, info.getType(), change, finishT, animations, onAnimFinish); break; case WindowManager.TRANSIT_CLOSE: if (change.getTaskInfo().getWindowingMode() == WINDOWING_MODE_FREEFORM) { Loading Loading @@ -206,7 +208,10 @@ public class FreeformTaskTransitionHandler private boolean startMinimizeTransition( IBinder transition, int type, TransitionInfo.Change change) { TransitionInfo.Change change, SurfaceControl.Transaction finishT, ArrayList<Animator> animations, Runnable onAnimFinish) { if (!mPendingTransitionTokens.contains(transition)) { return false; } Loading @@ -215,7 +220,23 @@ public class FreeformTaskTransitionHandler if (type != Transitions.TRANSIT_MINIMIZE) { return false; } // TODO(b/361524575): Add minimize animations SurfaceControl.Transaction t = new SurfaceControl.Transaction(); SurfaceControl sc = change.getLeash(); finishT.hide(sc); final DisplayMetrics displayMetrics = mDisplayController .getDisplayContext(taskInfo.displayId).getResources().getDisplayMetrics(); final Animator animator = MinimizeAnimator.create( displayMetrics, change, t, (anim) -> { animations.remove(anim); onAnimFinish.run(); return null; }); animations.add(animator); return true; } Loading