Merge "Revert "Ensure that only SysUI can override pending intent launch flags"" into qt-dev am: e6ffbc91fb am: b34c84221f am: 62c12ffd8e am: 29eb265f19 am: 61c27bb464 am: ffef4ed147 am: 65c1ef9feb am: f8dcd6ed29 am: 92ede9a4a2 am: 90a438c690

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20946190

Change-Id: Ib670a1c3679a0e8ee456c47bb573165ace3f17ab
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Winson Chung
2023-01-21 12:12:32 +00:00
committed by Automerger Merge Worker

View File

@@ -379,17 +379,12 @@ public final class PendingIntentRecord extends IIntentSender.Stub {
resolvedType = key.requestResolvedType; resolvedType = key.requestResolvedType;
} }
// Apply any launch flags from the ActivityOptions. This is used only by SystemUI // Apply any launch flags from the ActivityOptions. This is to ensure that the caller
// to ensure that we can launch the pending intent with a consistent launch mode even // can specify a consistent launch mode even if the PendingIntent is immutable
// if the provided PendingIntent is immutable (ie. to force an activity to launch into
// a new task, or to launch multiple instances if supported by the app)
final ActivityOptions opts = ActivityOptions.fromBundle(options); final ActivityOptions opts = ActivityOptions.fromBundle(options);
if (opts != null) { if (opts != null) {
// TODO(b/254490217): Move this check into SafeActivityOptions
if (controller.mAtmInternal.isCallerRecents(Binder.getCallingUid())) {
finalIntent.addFlags(opts.getPendingIntentLaunchFlags()); finalIntent.addFlags(opts.getPendingIntentLaunchFlags());
} }
}
// Extract options before clearing calling identity // Extract options before clearing calling identity
mergedOptions = key.options; mergedOptions = key.options;