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

Commit 7887fbc2 authored by Maryam Dehaini's avatar Maryam Dehaini
Browse files

Set launch display Id when opening in browser

Uses ActivityOptions#setLaunchDisplayId to set the display to launch the
activity in as the same display user clicks the "Open in browser" button
in.

Bug: 415008071
Flag: EXEMPT minor fix
Test: Open in browser with CD
Change-Id: Iccd352711193067ec2e209f7af146f4b4b81ca60
parent 5cbb8504
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ import static com.android.wm.shell.shared.split.SplitScreenConstants.SPLIT_POSIT
import android.annotation.NonNull;
import android.app.ActivityManager;
import android.app.ActivityManager.RunningTaskInfo;
import android.app.ActivityOptions;
import android.app.ActivityTaskManager;
import android.app.IActivityManager;
import android.app.IActivityTaskManager;
@@ -147,8 +148,8 @@ import com.android.wm.shell.transition.FocusTransitionObserver;
import com.android.wm.shell.transition.Transitions;
import com.android.wm.shell.windowdecor.DesktopModeWindowDecoration.ExclusionRegionListener;
import com.android.wm.shell.windowdecor.common.AppHandleAndHeaderVisibilityHelper;
import com.android.wm.shell.windowdecor.common.WindowDecorationGestureExclusionTracker;
import com.android.wm.shell.windowdecor.common.WindowDecorTaskResourceLoader;
import com.android.wm.shell.windowdecor.common.WindowDecorationGestureExclusionTracker;
import com.android.wm.shell.windowdecor.common.viewhost.WindowDecorViewHost;
import com.android.wm.shell.windowdecor.common.viewhost.WindowDecorViewHostSupplier;
import com.android.wm.shell.windowdecor.extension.InsetsStateKt;
@@ -811,11 +812,13 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel,
        if (decoration == null) {
            return;
        }
        openInBrowser(intent, decoration.getUser());
        openInBrowser(intent, decoration.getUser(), decoration.mTaskInfo.displayId);
    }

    private void openInBrowser(@NonNull Intent intent, @NonNull UserHandle userHandle) {
        mContext.startActivityAsUser(intent, userHandle);
    private void openInBrowser(
            @NonNull Intent intent, @NonNull UserHandle userHandle, int displayId) {
        final ActivityOptions options = ActivityOptions.makeBasic().setLaunchDisplayId(displayId);
        mContext.startActivityAsUser(intent, options.toBundle(), userHandle);
    }

    private void moveToDesktop(int taskId, DesktopModeTransitionSource source) {
+1 −1
Original line number Diff line number Diff line
@@ -747,7 +747,7 @@ class DesktopModeWindowDecorViewModelTests : DesktopModeWindowDecorViewModelTest
        verify(spyContext).startActivityAsUser(argThat { intent ->
            uri.equals(intent.data)
                    && intent.action == ACTION_MAIN
        }, eq(mockUserHandle))
        }, any(), eq(mockUserHandle))
    }

    @OptIn(ExperimentalCoroutinesApi::class)