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

Commit ab177614 authored by Jeff Chang's avatar Jeff Chang
Browse files

Apply multi_task flag with startIntents

The multi_task flag is not applied to the activityOption when start
shortcut to split. This CL update the activityOption with mult_task
flag while supporting multi-instances in split.

Bug: 291751952
Test: Start shortcuts with chrome into split
Change-Id: I71bfd39458927625143357baa5c1ed47eabcdfaf
parent 2a649a2b
Loading
Loading
Loading
Loading
+15 −3
Original line number Diff line number Diff line
@@ -737,12 +737,23 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
        Intent fillInIntent2 = null;
        final String packageName1 = SplitScreenUtils.getPackageName(pendingIntent1);
        final String packageName2 = SplitScreenUtils.getPackageName(pendingIntent2);
        final ActivityOptions activityOptions1 = options1 != null
                ? ActivityOptions.fromBundle(options1) : ActivityOptions.makeBasic();
        final ActivityOptions activityOptions2 = options2 != null
                ? ActivityOptions.fromBundle(options2) : ActivityOptions.makeBasic();
        if (samePackage(packageName1, packageName2, userId1, userId2)) {
            if (supportMultiInstancesSplit(packageName1)) {
                fillInIntent1 = new Intent();
                fillInIntent1.addFlags(FLAG_ACTIVITY_MULTIPLE_TASK);
                fillInIntent2 = new Intent();
                fillInIntent2.addFlags(FLAG_ACTIVITY_MULTIPLE_TASK);

                if (shortcutInfo1 != null) {
                    activityOptions1.setApplyMultipleTaskFlagForShortcut(true);
                }
                if (shortcutInfo2 != null) {
                    activityOptions2.setApplyMultipleTaskFlagForShortcut(true);
                }
                ProtoLog.v(ShellProtoLogGroup.WM_SHELL_SPLIT_SCREEN, "Adding MULTIPLE_TASK");
            } else {
                pendingIntent2 = null;
@@ -754,9 +765,10 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
                        Toast.LENGTH_SHORT).show();
            }
        }
        mStageCoordinator.startIntents(pendingIntent1, fillInIntent1, shortcutInfo1, options1,
                pendingIntent2, fillInIntent2, shortcutInfo2, options2, splitPosition, splitRatio,
                remoteTransition, instanceId);
        mStageCoordinator.startIntents(pendingIntent1, fillInIntent1, shortcutInfo1,
                activityOptions1.toBundle(), pendingIntent2, fillInIntent2, shortcutInfo2,
                activityOptions2.toBundle(), splitPosition, splitRatio, remoteTransition,
                instanceId);
    }

    @Override