Loading core/java/android/app/ActivityOptions.java +24 −0 Original line number Diff line number Diff line Loading @@ -317,6 +317,13 @@ public class ActivityOptions extends ComponentOptions { private static final String KEY_APPLY_ACTIVITY_FLAGS_FOR_BUBBLES = "android:activity.applyActivityFlagsForBubbles"; /** * Indicates to apply {@link Intent#FLAG_ACTIVITY_MULTIPLE_TASK} to the launching shortcut. * @hide */ private static final String KEY_APPLY_MULTIPLE_TASK_FLAG_FOR_SHORTCUT = "android:activity.applyMultipleTaskFlagForShortcut"; /** * For Activity transitions, the calling Activity's TransitionListener used to * notify the called Activity when the shared element and the exit transitions Loading Loading @@ -449,6 +456,7 @@ public class ActivityOptions extends ComponentOptions { private boolean mLockTaskMode = false; private boolean mDisallowEnterPictureInPictureWhileLaunching; private boolean mApplyActivityFlagsForBubbles; private boolean mApplyMultipleTaskFlagForShortcut; private boolean mTaskAlwaysOnTop; private boolean mTaskOverlay; private boolean mTaskOverlayCanResume; Loading Loading @@ -1246,6 +1254,8 @@ public class ActivityOptions extends ComponentOptions { KEY_DISALLOW_ENTER_PICTURE_IN_PICTURE_WHILE_LAUNCHING, false); mApplyActivityFlagsForBubbles = opts.getBoolean( KEY_APPLY_ACTIVITY_FLAGS_FOR_BUBBLES, false); mApplyMultipleTaskFlagForShortcut = opts.getBoolean( KEY_APPLY_MULTIPLE_TASK_FLAG_FOR_SHORTCUT, false); if (opts.containsKey(KEY_ANIM_SPECS)) { Parcelable[] specs = opts.getParcelableArray(KEY_ANIM_SPECS); mAnimSpecs = new AppTransitionAnimationSpec[specs.length]; Loading Loading @@ -1815,6 +1825,16 @@ public class ActivityOptions extends ComponentOptions { return mApplyActivityFlagsForBubbles; } /** @hide */ public void setApplyMultipleTaskFlagForShortcut(boolean apply) { mApplyMultipleTaskFlagForShortcut = apply; } /** @hide */ public boolean isApplyMultipleTaskFlagForShortcut() { return mApplyMultipleTaskFlagForShortcut; } /** * Sets a launch cookie that can be used to track the activity and task that are launch as a * result of this option. If the launched activity is a trampoline that starts another activity Loading Loading @@ -2143,6 +2163,10 @@ public class ActivityOptions extends ComponentOptions { if (mApplyActivityFlagsForBubbles) { b.putBoolean(KEY_APPLY_ACTIVITY_FLAGS_FOR_BUBBLES, mApplyActivityFlagsForBubbles); } if (mApplyMultipleTaskFlagForShortcut) { b.putBoolean(KEY_APPLY_MULTIPLE_TASK_FLAG_FOR_SHORTCUT, mApplyMultipleTaskFlagForShortcut); } if (mAnimSpecs != null) { b.putParcelableArray(KEY_ANIM_SPECS, mAnimSpecs); } Loading services/core/java/com/android/server/pm/LauncherAppsService.java +9 −5 Original line number Diff line number Diff line Loading @@ -1114,12 +1114,16 @@ public class LauncherAppsService extends SystemService { // Flag for bubble ActivityOptions options = ActivityOptions.fromBundle(startActivityOptions); if (options != null && options.isApplyActivityFlagsForBubbles()) { if (options != null) { if (options.isApplyActivityFlagsForBubbles()) { // Flag for bubble to make behaviour match documentLaunchMode=always. intents[0].addFlags(FLAG_ACTIVITY_NEW_DOCUMENT); intents[0].addFlags(FLAG_ACTIVITY_MULTIPLE_TASK); } if (options.isApplyMultipleTaskFlagForShortcut()) { intents[0].addFlags(FLAG_ACTIVITY_MULTIPLE_TASK); } } intents[0].addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intents[0].setSourceBounds(sourceBounds); Loading Loading
core/java/android/app/ActivityOptions.java +24 −0 Original line number Diff line number Diff line Loading @@ -317,6 +317,13 @@ public class ActivityOptions extends ComponentOptions { private static final String KEY_APPLY_ACTIVITY_FLAGS_FOR_BUBBLES = "android:activity.applyActivityFlagsForBubbles"; /** * Indicates to apply {@link Intent#FLAG_ACTIVITY_MULTIPLE_TASK} to the launching shortcut. * @hide */ private static final String KEY_APPLY_MULTIPLE_TASK_FLAG_FOR_SHORTCUT = "android:activity.applyMultipleTaskFlagForShortcut"; /** * For Activity transitions, the calling Activity's TransitionListener used to * notify the called Activity when the shared element and the exit transitions Loading Loading @@ -449,6 +456,7 @@ public class ActivityOptions extends ComponentOptions { private boolean mLockTaskMode = false; private boolean mDisallowEnterPictureInPictureWhileLaunching; private boolean mApplyActivityFlagsForBubbles; private boolean mApplyMultipleTaskFlagForShortcut; private boolean mTaskAlwaysOnTop; private boolean mTaskOverlay; private boolean mTaskOverlayCanResume; Loading Loading @@ -1246,6 +1254,8 @@ public class ActivityOptions extends ComponentOptions { KEY_DISALLOW_ENTER_PICTURE_IN_PICTURE_WHILE_LAUNCHING, false); mApplyActivityFlagsForBubbles = opts.getBoolean( KEY_APPLY_ACTIVITY_FLAGS_FOR_BUBBLES, false); mApplyMultipleTaskFlagForShortcut = opts.getBoolean( KEY_APPLY_MULTIPLE_TASK_FLAG_FOR_SHORTCUT, false); if (opts.containsKey(KEY_ANIM_SPECS)) { Parcelable[] specs = opts.getParcelableArray(KEY_ANIM_SPECS); mAnimSpecs = new AppTransitionAnimationSpec[specs.length]; Loading Loading @@ -1815,6 +1825,16 @@ public class ActivityOptions extends ComponentOptions { return mApplyActivityFlagsForBubbles; } /** @hide */ public void setApplyMultipleTaskFlagForShortcut(boolean apply) { mApplyMultipleTaskFlagForShortcut = apply; } /** @hide */ public boolean isApplyMultipleTaskFlagForShortcut() { return mApplyMultipleTaskFlagForShortcut; } /** * Sets a launch cookie that can be used to track the activity and task that are launch as a * result of this option. If the launched activity is a trampoline that starts another activity Loading Loading @@ -2143,6 +2163,10 @@ public class ActivityOptions extends ComponentOptions { if (mApplyActivityFlagsForBubbles) { b.putBoolean(KEY_APPLY_ACTIVITY_FLAGS_FOR_BUBBLES, mApplyActivityFlagsForBubbles); } if (mApplyMultipleTaskFlagForShortcut) { b.putBoolean(KEY_APPLY_MULTIPLE_TASK_FLAG_FOR_SHORTCUT, mApplyMultipleTaskFlagForShortcut); } if (mAnimSpecs != null) { b.putParcelableArray(KEY_ANIM_SPECS, mAnimSpecs); } Loading
services/core/java/com/android/server/pm/LauncherAppsService.java +9 −5 Original line number Diff line number Diff line Loading @@ -1114,12 +1114,16 @@ public class LauncherAppsService extends SystemService { // Flag for bubble ActivityOptions options = ActivityOptions.fromBundle(startActivityOptions); if (options != null && options.isApplyActivityFlagsForBubbles()) { if (options != null) { if (options.isApplyActivityFlagsForBubbles()) { // Flag for bubble to make behaviour match documentLaunchMode=always. intents[0].addFlags(FLAG_ACTIVITY_NEW_DOCUMENT); intents[0].addFlags(FLAG_ACTIVITY_MULTIPLE_TASK); } if (options.isApplyMultipleTaskFlagForShortcut()) { intents[0].addFlags(FLAG_ACTIVITY_MULTIPLE_TASK); } } intents[0].addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intents[0].setSourceBounds(sourceBounds); Loading