diff --git a/quickstep/src/com/android/quickstep/DesktopSystemShortcut.kt b/quickstep/src/com/android/quickstep/DesktopSystemShortcut.kt index 94f49205d7..d60dab655d 100644 --- a/quickstep/src/com/android/quickstep/DesktopSystemShortcut.kt +++ b/quickstep/src/com/android/quickstep/DesktopSystemShortcut.kt @@ -17,6 +17,7 @@ package com.android.quickstep import android.view.View +import com.android.internal.jank.Cuj import com.android.launcher3.AbstractFloatingViewHelper import com.android.launcher3.R import com.android.launcher3.logging.StatsLogManager.LauncherEvent @@ -24,6 +25,7 @@ import com.android.launcher3.popup.SystemShortcut import com.android.quickstep.views.RecentsView import com.android.quickstep.views.RecentsViewContainer import com.android.quickstep.views.TaskContainer +import com.android.systemui.shared.system.InteractionJankMonitorWrapper import com.android.wm.shell.shared.desktopmode.DesktopModeStatus import com.android.wm.shell.shared.desktopmode.DesktopModeTransitionSource @@ -31,7 +33,7 @@ import com.android.wm.shell.shared.desktopmode.DesktopModeTransitionSource class DesktopSystemShortcut( container: RecentsViewContainer, private val taskContainer: TaskContainer, - abstractFloatingViewHelper: AbstractFloatingViewHelper + abstractFloatingViewHelper: AbstractFloatingViewHelper, ) : SystemShortcut( R.drawable.ic_desktop, @@ -39,15 +41,17 @@ class DesktopSystemShortcut( container, taskContainer.itemInfo, taskContainer.taskView, - abstractFloatingViewHelper + abstractFloatingViewHelper, ) { override fun onClick(view: View) { + InteractionJankMonitorWrapper.begin(view, Cuj.CUJ_DESKTOP_MODE_ENTER_FROM_OVERVIEW_MENU) dismissTaskMenuView() val recentsView = mTarget.getOverviewPanel>() recentsView.moveTaskToDesktop( taskContainer, - DesktopModeTransitionSource.APP_FROM_OVERVIEW + DesktopModeTransitionSource.APP_FROM_OVERVIEW, ) { + InteractionJankMonitorWrapper.end(Cuj.CUJ_DESKTOP_MODE_ENTER_FROM_OVERVIEW_MENU) mTarget.statsLogManager .logger() .withItemInfo(taskContainer.itemInfo) @@ -64,7 +68,7 @@ class DesktopSystemShortcut( return object : TaskShortcutFactory { override fun getShortcuts( container: RecentsViewContainer, - taskContainer: TaskContainer + taskContainer: TaskContainer, ): List? { return if (!DesktopModeStatus.canEnterDesktopMode(container.asContext())) null else if (!taskContainer.task.isDockable) null @@ -73,7 +77,7 @@ class DesktopSystemShortcut( DesktopSystemShortcut( container, taskContainer, - abstractFloatingViewHelper + abstractFloatingViewHelper, ) ) } diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index ab96474dc7..f895edba8b 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/src/com/android/quickstep/views/RecentsView.java @@ -6814,6 +6814,8 @@ public abstract class RecentsView< } mDesktopRecentsTransitionController.moveToDesktop(taskContainer, transitionSource); + // TODO(b/387471509): Invoke successCallback after actual transition completion of + // overview menu to desktop successCallback.run(); } diff --git a/quickstep/tests/src/com/android/quickstep/DesktopSystemShortcutTest.kt b/quickstep/tests/src/com/android/quickstep/DesktopSystemShortcutTest.kt index 94e7c2ea4f..c152ee166e 100644 --- a/quickstep/tests/src/com/android/quickstep/DesktopSystemShortcutTest.kt +++ b/quickstep/tests/src/com/android/quickstep/DesktopSystemShortcutTest.kt @@ -18,6 +18,7 @@ package com.android.quickstep import android.content.ComponentName import android.content.Intent +import androidx.test.platform.app.InstrumentationRegistry import com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession import com.android.dx.mockito.inline.extended.StaticMockitoSession import com.android.launcher3.AbstractFloatingView @@ -113,6 +114,8 @@ class DesktopSystemShortcutTest { whenever(launcher.statsLogManager).thenReturn(statsLogManager) whenever(statsLogManager.logger()).thenReturn(statsLogger) whenever(statsLogger.withItemInfo(any())).thenReturn(statsLogger) + whenever(taskView.context) + .thenReturn(InstrumentationRegistry.getInstrumentation().targetContext) whenever(recentsView.moveTaskToDesktop(any(), any(), any())).thenAnswer { val successCallback = it.getArgument(2) successCallback.run()