diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityStack.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java index 2ecacbf55a00..46f86ee5e9f9 100644 --- a/services/core/java/com/android/server/wm/ActivityStack.java +++ b/services/core/java/com/android/server/wm/ActivityStack.java @@ -164,6 +164,8 @@ import com.android.server.am.AppTimeTracker; import com.android.server.am.EventLogTags; import com.android.server.am.PendingIntentRecord; +import com.google.android.collect.Sets; + import java.io.FileDescriptor; import java.io.PrintWriter; import java.lang.ref.WeakReference; @@ -4024,6 +4026,14 @@ class ActivityStack extends ConfigurationContainer { } getDisplay().mDisplayContent.prepareAppTransition(transit, false); + // When finishing the activity pre-emptively take the snapshot before the app window + // is marked as hidden and any configuration changes take place + if (mWindowManager.mTaskSnapshotController != null) { + final ArraySet<Task> tasks = Sets.newArraySet(task.mTask); + mWindowManager.mTaskSnapshotController.snapshotTasks(tasks); + mWindowManager.mTaskSnapshotController.addSkipClosingAppSnapshotTasks(tasks); + } + // Tell window manager to prepare for this one to be removed. r.setVisibility(false); |