diff options
3 files changed, 13 insertions, 3 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java index a058863e00a2..f5ad9e7bd876 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java @@ -755,7 +755,8 @@ public abstract class WMShellModule { DesktopWallpaperActivityTokenProvider desktopWallpaperActivityTokenProvider, Optional<BubbleController> bubbleController, OverviewToDesktopTransitionObserver overviewToDesktopTransitionObserver, - DesksOrganizer desksOrganizer) { + DesksOrganizer desksOrganizer, + UserProfileContexts userProfileContexts) { return new DesktopTasksController( context, shellInit, @@ -790,7 +791,8 @@ public abstract class WMShellModule { desktopWallpaperActivityTokenProvider, bubbleController, overviewToDesktopTransitionObserver, - desksOrganizer); + desksOrganizer, + userProfileContexts); } @WMSingleton diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt index 6c57dc7056a6..59320b87876e 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt @@ -85,6 +85,7 @@ import com.android.wm.shell.common.RemoteCallable import com.android.wm.shell.common.ShellExecutor import com.android.wm.shell.common.SingleInstanceRemoteListener import com.android.wm.shell.common.SyncTransactionQueue +import com.android.wm.shell.common.UserProfileContexts import com.android.wm.shell.compatui.isTopActivityExemptFromDesktopWindowing import com.android.wm.shell.compatui.isTransparentTask import com.android.wm.shell.desktopmode.DesktopModeEventLogger.Companion.InputMethod @@ -183,6 +184,7 @@ class DesktopTasksController( private val bubbleController: Optional<BubbleController>, private val overviewToDesktopTransitionObserver: OverviewToDesktopTransitionObserver, private val desksOrganizer: DesksOrganizer, + private val userProfileContexts: UserProfileContexts, ) : RemoteCallable<DesktopTasksController>, Transitions.TransitionHandler, @@ -1859,7 +1861,9 @@ class DesktopTasksController( // need updates in some cases. val baseActivity = callingTaskInfo.baseActivity ?: return val fillIn: Intent = - context.packageManager.getLaunchIntentForPackage(baseActivity.packageName) ?: return + userProfileContexts[callingTaskInfo.userId] + ?.packageManager + ?.getLaunchIntentForPackage(baseActivity.packageName) ?: return fillIn.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_MULTIPLE_TASK) val launchIntent = PendingIntent.getActivity( diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt index 0c1fd732f23e..46222674ff05 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt @@ -100,6 +100,7 @@ import com.android.wm.shell.common.DisplayLayout import com.android.wm.shell.common.MultiInstanceHelper import com.android.wm.shell.common.ShellExecutor import com.android.wm.shell.common.SyncTransactionQueue +import com.android.wm.shell.common.UserProfileContexts import com.android.wm.shell.desktopmode.DesktopImmersiveController.ExitResult import com.android.wm.shell.desktopmode.DesktopModeEventLogger.Companion.InputMethod import com.android.wm.shell.desktopmode.DesktopModeEventLogger.Companion.MinimizeReason @@ -251,6 +252,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() @Mock private lateinit var overviewToDesktopTransitionObserver: OverviewToDesktopTransitionObserver @Mock private lateinit var desksOrganizer: DesksOrganizer + @Mock private lateinit var userProfileContexts: UserProfileContexts private lateinit var controller: DesktopTasksController private lateinit var shellInit: ShellInit @@ -345,6 +347,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() ) .thenReturn(ExitResult.NoExit) whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(wallpaperToken) + whenever(userProfileContexts[anyInt()]).thenReturn(context) controller = createController() controller.setSplitScreenController(splitScreenController) @@ -402,6 +405,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() Optional.of(bubbleController), overviewToDesktopTransitionObserver, desksOrganizer, + userProfileContexts, ) @After |