From 0b2ee80a7eeb2fd27a19944fe6a703967d2ddd0e Mon Sep 17 00:00:00 2001 From: Achim Thesmann Date: Wed, 25 Jan 2023 05:15:52 +0000 Subject: [PATCH] Fix clone method for ActivityOptions Some flags were lost when the `cloneLaunchingOptions` was used. This breaks some tests when the flag to grant BAL privileges is passed and the default is not to allow BAL anymore. Test: atest android.content.pm.cts.shortcutmanager.ShortcutManagerStartShortcutTest Bug: 265916225 Change-Id: Id65b481eefc341d1c16ccdf06ea4489e109f5fba --- core/java/android/app/ActivityOptions.java | 4 +++- .../java/com/android/server/wm/SafeActivityOptions.java | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/core/java/android/app/ActivityOptions.java b/core/java/android/app/ActivityOptions.java index 57214e06bb9a6..2a390a7dbb51d 100644 --- a/core/java/android/app/ActivityOptions.java +++ b/core/java/android/app/ActivityOptions.java @@ -1997,10 +1997,12 @@ public class ActivityOptions extends ComponentOptions { /** * Sets background activity launch logic won't use pending intent creator foreground state. + * * @hide */ - public void setIgnorePendingIntentCreatorForegroundState(boolean state) { + public ActivityOptions setIgnorePendingIntentCreatorForegroundState(boolean state) { mIgnorePendingIntentCreatorForegroundState = state; + return this; } /** diff --git a/services/core/java/com/android/server/wm/SafeActivityOptions.java b/services/core/java/com/android/server/wm/SafeActivityOptions.java index 8a6ddf658c2ab..98ca9aecc7067 100644 --- a/services/core/java/com/android/server/wm/SafeActivityOptions.java +++ b/services/core/java/com/android/server/wm/SafeActivityOptions.java @@ -143,7 +143,11 @@ public class SafeActivityOptions { .setLaunchTaskDisplayArea(options.getLaunchTaskDisplayArea()) .setLaunchDisplayId(options.getLaunchDisplayId()) .setCallerDisplayId(options.getCallerDisplayId()) - .setLaunchRootTask(options.getLaunchRootTask()); + .setLaunchRootTask(options.getLaunchRootTask()) + .setPendingIntentBackgroundActivityStartMode( + options.getPendingIntentBackgroundActivityStartMode()) + .setIgnorePendingIntentCreatorForegroundState( + options.getIgnorePendingIntentCreatorForegroundState()); } /**