summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorChris Li <lihongyu@google.com>2022-08-30 16:17:24 +0800
committerChris Li <lihongyu@google.com>2022-08-31 11:37:17 +0800
commitf1bf8d6d9d992d5f847630b7929e415c6df9de5c (patch)
tree31a83b99491df794b5c46d71d264ba58e7f8948b /core/java
parent907c1ad88d65af7550a255c6ba9ebc8321acb5a5 (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.java9
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();
}