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

Commit ccaa6ea8 authored by Maryam Dehaini's avatar Maryam Dehaini Committed by Android (Google) Code Review
Browse files

Merge "Open intent in correct user profile" into main

parents ae8f24a3 0e373661
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -505,16 +505,16 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
        if (decoration == null) {
            return;
        }
        openInBrowser(uri);
        openInBrowser(uri, decoration.getUser());
        decoration.closeHandleMenu();
        decoration.closeMaximizeMenu();
    }

    private void openInBrowser(Uri uri) {
    private void openInBrowser(Uri uri, @NonNull UserHandle userHandle) {
        final Intent intent = Intent.makeMainSelectorActivity(ACTION_MAIN, CATEGORY_APP_BROWSER)
                .setData(uri)
                .addFlags(FLAG_ACTIVITY_NEW_TASK);
        mContext.startActivity(intent);
        mContext.startActivityAsUser(intent, userHandle);
    }

    private void onToDesktop(int taskId, DesktopModeTransitionSource source) {
+5 −0
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Handler;
import android.os.Trace;
import android.os.UserHandle;
import android.util.Size;
import android.util.Slog;
import android.view.Choreographer;
@@ -480,6 +481,10 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
        return mGenericLink;
    }

    UserHandle getUser() {
        return mUserContext.getUser();
    }

    private void updateDragResizeListener(SurfaceControl oldDecorationSurface) {
        if (!isDragResizable(mTaskInfo)) {
            if (!mTaskInfo.positionInParent.equals(mPositionInParent)) {
+5 −2
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import android.hardware.display.VirtualDisplay
import android.hardware.input.InputManager
import android.net.Uri
import android.os.Handler
import android.os.UserHandle
import android.platform.test.annotations.DisableFlags
import android.platform.test.annotations.EnableFlags
import android.platform.test.flag.junit.CheckFlagsRule
@@ -163,6 +164,7 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() {
    @Mock private lateinit var mockWindowManager: IWindowManager
    @Mock private lateinit var mockInteractionJankMonitor: InteractionJankMonitor
    @Mock private lateinit var mockGenericLinksParser: AppToWebGenericLinksParser
    @Mock private lateinit var mockUserHandle: UserHandle
    @Mock private lateinit var mockToast: Toast
    private val bgExecutor = TestShellExecutor()
    @Mock private lateinit var mockMultiInstanceHelper: MultiInstanceHelper
@@ -892,12 +894,12 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() {

        openInBrowserListenerCaptor.value.accept(uri)

        verify(spyContext).startActivity(argThat { intent ->
        verify(spyContext).startActivityAsUser(argThat { intent ->
            intent.data == uri
                    && ((intent.flags and Intent.FLAG_ACTIVITY_NEW_TASK) != 0)
                    && intent.categories.contains(Intent.CATEGORY_LAUNCHER)
                    && intent.action == Intent.ACTION_MAIN
        })
        }, eq(mockUserHandle))
    }

    @Test
@@ -1108,6 +1110,7 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() {
        ).thenReturn(decoration)
        decoration.mTaskInfo = task
        whenever(decoration.isFocused).thenReturn(task.isFocused)
        whenever(decoration.user).thenReturn(mockUserHandle)
        if (task.windowingMode == WINDOWING_MODE_MULTI_WINDOW) {
            whenever(mockSplitScreenController.isTaskInSplitScreen(task.taskId))
                .thenReturn(true)