diff options
| author | Chris Li <lihongyu@google.com> | 2022-08-30 16:17:24 +0800 |
|---|---|---|
| committer | Chris Li <lihongyu@google.com> | 2022-08-31 11:37:17 +0800 |
| commit | f1bf8d6d9d992d5f847630b7929e415c6df9de5c (patch) | |
| tree | 31a83b99491df794b5c46d71d264ba58e7f8948b /core/java | |
| parent | 907c1ad88d65af7550a255c6ba9ebc8321acb5a5 (diff) | |
Update TaskFragmentToken for Activity relaunch
Before, we store the TaskFragmentToken in ActivityClientRecord from
LaunchActivityItem, which won't update if the Activity is relaunched.
Now, we update the token when the activity is reparented to make sure
the token is up-to-date when relaunched.
Also make sure that when activity is destroyed, it is no longer
available using SplitController#getContainerWithActivity(Activity).
Bug: 243330085
Test: atest WMJetpackUnitTests:TaskFragmentContainerTest
Change-Id: I37f1a442c6f1bfb40f04f61eb4f9a3d8d09733ee
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/app/ActivityThread.java | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index a70a1a8d51de..51efdbac00cc 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -534,9 +534,8 @@ public final class ActivityThread extends ClientTransactionHandler // A reusable token for other purposes, e.g. content capture, translation. It shouldn't be // used without security checks public IBinder shareableActivityToken; - // The token of the initial TaskFragment that embedded this activity. Do not rely on it - // after creation because the activity could be reparented. - @Nullable public IBinder mInitialTaskFragmentToken; + // The token of the TaskFragment that embedded this activity. + @Nullable public IBinder mTaskFragmentToken; int ident; @UnsupportedAppUsage Intent intent; @@ -620,7 +619,7 @@ public final class ActivityThread extends ClientTransactionHandler List<ReferrerIntent> pendingNewIntents, ActivityOptions activityOptions, boolean isForward, ProfilerInfo profilerInfo, ClientTransactionHandler client, IBinder assistToken, IBinder shareableActivityToken, boolean launchedFromBubble, - IBinder initialTaskFragmentToken) { + IBinder taskFragmentToken) { this.token = token; this.assistToken = assistToken; this.shareableActivityToken = shareableActivityToken; @@ -641,7 +640,7 @@ public final class ActivityThread extends ClientTransactionHandler compatInfo); mActivityOptions = activityOptions; mLaunchedFromBubble = launchedFromBubble; - mInitialTaskFragmentToken = initialTaskFragmentToken; + mTaskFragmentToken = taskFragmentToken; init(); } |
