diff options
5 files changed, 18 insertions, 22 deletions
diff --git a/services/core/java/com/android/server/am/ActivityRecord.java b/services/core/java/com/android/server/am/ActivityRecord.java index 3bef87794c24..cae0d2bc5dd9 100644 --- a/services/core/java/com/android/server/am/ActivityRecord.java +++ b/services/core/java/com/android/server/am/ActivityRecord.java @@ -1695,7 +1695,7 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo resumeKeyDispatchingLocked(); final ActivityStack stack = getStack(); - stack.mNoAnimActivities.clear(); + mStackSupervisor.mNoAnimActivities.clear(); // Mark the point when the activity is resuming // TODO: To be more accurate, the mark should be before the onCreate, diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java index fd3f8ec92cf3..ab2dc36d66d0 100644 --- a/services/core/java/com/android/server/am/ActivityStack.java +++ b/services/core/java/com/android/server/am/ActivityStack.java @@ -277,12 +277,6 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai final ArrayList<ActivityRecord> mLRUActivities = new ArrayList<>(); /** - * Animations that for the current transition have requested not to - * be considered for the transition animation. - */ - final ArrayList<ActivityRecord> mNoAnimActivities = new ArrayList<>(); - - /** * When we are in the process of pausing an activity, before starting the * next one, this variable holds the activity that is currently being paused. */ @@ -550,7 +544,7 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai wm.deferSurfaceLayout(); try { if (!animate && topActivity != null) { - mNoAnimActivities.add(topActivity); + mStackSupervisor.mNoAnimActivities.add(topActivity); } super.setWindowingMode(windowingMode); @@ -2460,7 +2454,7 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai if (prev.finishing) { if (DEBUG_TRANSITION) Slog.v(TAG_TRANSITION, "Prepare close transition: prev=" + prev); - if (mNoAnimActivities.contains(prev)) { + if (mStackSupervisor.mNoAnimActivities.contains(prev)) { anim = false; mWindowManager.prepareAppTransition(TRANSIT_NONE, false); } else { @@ -2472,7 +2466,7 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai } else { if (DEBUG_TRANSITION) Slog.v(TAG_TRANSITION, "Prepare open transition: prev=" + prev); - if (mNoAnimActivities.contains(next)) { + if (mStackSupervisor.mNoAnimActivities.contains(next)) { anim = false; mWindowManager.prepareAppTransition(TRANSIT_NONE, false); } else { @@ -2485,7 +2479,7 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai } } else { if (DEBUG_TRANSITION) Slog.v(TAG_TRANSITION, "Prepare open transition: no previous"); - if (mNoAnimActivities.contains(next)) { + if (mStackSupervisor.mNoAnimActivities.contains(next)) { anim = false; mWindowManager.prepareAppTransition(TRANSIT_NONE, false); } else { @@ -2493,17 +2487,14 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai } } - Bundle resumeAnimOptions = null; if (anim) { - ActivityOptions opts = next.getOptionsForTargetActivityLocked(); - if (opts != null) { - resumeAnimOptions = opts.toBundle(); - } next.applyOptionsLocked(); } else { next.clearOptionsLocked(); } + mStackSupervisor.mNoAnimActivities.clear(); + ActivityStack lastStack = mStackSupervisor.getLastStack(); if (next.app != null && next.app.thread != null) { if (DEBUG_SWITCH) Slog.v(TAG_SWITCH, "Resume running: " + next @@ -2859,7 +2850,7 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai "Prepare open transition: starting " + r); if ((r.intent.getFlags() & Intent.FLAG_ACTIVITY_NO_ANIMATION) != 0) { mWindowManager.prepareAppTransition(TRANSIT_NONE, keepCurTransition); - mNoAnimActivities.add(r); + mStackSupervisor.mNoAnimActivities.add(r); } else { int transit = TRANSIT_ACTIVITY_OPEN; if (newTask) { @@ -2878,7 +2869,7 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai } } mWindowManager.prepareAppTransition(transit, keepCurTransition); - mNoAnimActivities.remove(r); + mStackSupervisor.mNoAnimActivities.remove(r); } boolean doShow = true; if (newTask) { @@ -4497,7 +4488,7 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai if (noAnimation) { mWindowManager.prepareAppTransition(TRANSIT_NONE, false); if (r != null) { - mNoAnimActivities.add(r); + mStackSupervisor.mNoAnimActivities.add(r); } ActivityOptions.abort(options); } else { @@ -5190,7 +5181,6 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai void executeAppTransition(ActivityOptions options) { mWindowManager.executeAppTransition(); - mNoAnimActivities.clear(); ActivityOptions.abort(options); } diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index 7c9160a2e4c3..bf3882587693 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -357,6 +357,12 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D * application */ final ArrayList<ActivityRecord> mPipModeChangedActivities = new ArrayList<>(); + /** + * Animations that for the current transition have requested not to + * be considered for the transition animation. + */ + final ArrayList<ActivityRecord> mNoAnimActivities = new ArrayList<>(); + /** The target stack bounds for the picture-in-picture mode changed that we need to report to * the application */ Rect mPipModeChangedTargetStackBounds; diff --git a/services/core/java/com/android/server/am/RecentsAnimation.java b/services/core/java/com/android/server/am/RecentsAnimation.java index c188ccb4d273..e7b067b1ab73 100644 --- a/services/core/java/com/android/server/am/RecentsAnimation.java +++ b/services/core/java/com/android/server/am/RecentsAnimation.java @@ -150,7 +150,7 @@ class RecentsAnimation implements RecentsAnimationCallbacks { if (moveHomeToTop) { // Bring the home stack to the front final ActivityStack homeStack = homeActivity.getStack(); - homeStack.mNoAnimActivities.add(homeActivity); + mStackSupervisor.mNoAnimActivities.add(homeActivity); homeStack.moveToFront("RecentsAnimation.onAnimationFinished()"); } else { // Restore the home stack to its previous position diff --git a/services/core/java/com/android/server/am/TaskRecord.java b/services/core/java/com/android/server/am/TaskRecord.java index 809f19f64317..d679439d3b7d 100644 --- a/services/core/java/com/android/server/am/TaskRecord.java +++ b/services/core/java/com/android/server/am/TaskRecord.java @@ -695,7 +695,7 @@ class TaskRecord extends ConfigurationContainer implements TaskWindowContainerLi wasPaused, reason); } if (!animate) { - toStack.mNoAnimActivities.add(topActivity); + mService.mStackSupervisor.mNoAnimActivities.add(topActivity); } // We might trigger a configuration change. Save the current task bounds for freezing. |