Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b9bdb063 authored by Jerry Chang's avatar Jerry Chang Committed by Automerger Merge Worker
Browse files

Merge "Enable flagging shortcut with additional activity flags" into...

Merge "Enable flagging shortcut with additional activity flags" into tm-qpr-dev am: 4a0e698b am: f11a7984

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



Change-Id: If9f4a876e960e510b389f6e12a8e6b87236e5b75
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 2385737e f11a7984
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -342,6 +342,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
@@ -476,6 +483,7 @@ public class ActivityOptions extends ComponentOptions {
    private boolean mShareIdentity = false;
    private boolean mDisallowEnterPictureInPictureWhileLaunching;
    private boolean mApplyActivityFlagsForBubbles;
    private boolean mApplyMultipleTaskFlagForShortcut;
    private boolean mTaskAlwaysOnTop;
    private boolean mTaskOverlay;
    private boolean mTaskOverlayCanResume;
@@ -1278,6 +1286,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];
@@ -1906,6 +1916,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
@@ -2262,6 +2282,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);
        }
+9 −5
Original line number Diff line number Diff line
@@ -1116,12 +1116,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);