Merge "[RESTRICT AUTOMERGE]Prevent set intent on non-leaf tasks" into rvc-dev

This commit is contained in:
TreeHugger Robot
2022-06-06 14:48:49 +00:00
committed by Android (Google) Code Review

View File

@@ -961,27 +961,20 @@ class Task extends WindowContainer<WindowContainer> {
mCallingPackage = r.launchedFromPackage; mCallingPackage = r.launchedFromPackage;
mCallingFeatureId = r.launchedFromFeatureId; mCallingFeatureId = r.launchedFromFeatureId;
setIntent(intent != null ? intent : r.intent, info != null ? info : r.info); setIntent(intent != null ? intent : r.intent, info != null ? info : r.info);
final WindowContainer parent = getParent();
if (parent != null) {
final Task t = parent.asTask();
if (t != null) {
t.setIntent(r);
}
}
} }
setLockTaskAuth(r); setLockTaskAuth(r);
} }
/** Sets the original intent, _without_ updating the calling uid or package. */ /** Sets the original intent, _without_ updating the calling uid or package. */
private void setIntent(Intent _intent, ActivityInfo info) { private void setIntent(Intent _intent, ActivityInfo info) {
final boolean isLeaf = isLeafTask(); if (!isLeafTask()) return;
if (intent == null) { if (intent == null) {
mNeverRelinquishIdentity = (info.flags & FLAG_RELINQUISH_TASK_IDENTITY) == 0; mNeverRelinquishIdentity = (info.flags & FLAG_RELINQUISH_TASK_IDENTITY) == 0;
} else if (mNeverRelinquishIdentity && isLeaf) { } else if (mNeverRelinquishIdentity) {
return; return;
} }
affinity = isLeaf ? info.taskAffinity : null; affinity = info.taskAffinity;
if (intent == null) { if (intent == null) {
// If this task already has an intent associated with it, don't set the root // If this task already has an intent associated with it, don't set the root
// affinity -- we don't want it changing after initially set, but the initially // affinity -- we don't want it changing after initially set, but the initially