Merge "Consume callback sent from shell when overview task is entered desktop mode from desktop menu" into main

This commit is contained in:
Vinay Joglekar
2025-01-22 13:32:46 -08:00
committed by Android (Google) Code Review
3 changed files with 20 additions and 6 deletions
@@ -64,11 +64,16 @@ class DesktopRecentsTransitionController(
}
/** Launch desktop tasks from recents view */
fun moveToDesktop(taskContainer: TaskContainer, transitionSource: DesktopModeTransitionSource) {
fun moveToDesktop(
taskContainer: TaskContainer,
transitionSource: DesktopModeTransitionSource,
successCallback: Runnable,
) {
systemUiProxy.moveToDesktop(
taskContainer.task.key.id,
transitionSource,
/* transition = */ null,
successCallback,
)
}
@@ -81,6 +81,7 @@ import com.android.wm.shell.common.pip.IPip
import com.android.wm.shell.common.pip.IPipAnimationListener
import com.android.wm.shell.desktopmode.IDesktopMode
import com.android.wm.shell.desktopmode.IDesktopTaskListener
import com.android.wm.shell.desktopmode.IMoveToDesktopCallback
import com.android.wm.shell.draganddrop.IDragAndDrop
import com.android.wm.shell.onehanded.IOneHanded
import com.android.wm.shell.recents.IRecentTasks
@@ -1115,9 +1116,19 @@ class SystemUiProxy @Inject constructor(@ApplicationContext private val context:
taskId: Int,
transitionSource: DesktopModeTransitionSource?,
transition: RemoteTransition?,
successCallback: Runnable,
) =
executeWithErrorLog({ "Failed call moveToDesktop" }) {
desktopMode?.moveToDesktop(taskId, transitionSource, transition)
desktopMode?.moveToDesktop(
taskId,
transitionSource,
transition,
object : IMoveToDesktopCallback.Stub() {
override fun onTaskMovedToDesktop() {
successCallback.run()
}
},
)
}
/** Call shell to remove the desktop that is on given `displayId` */
@@ -6839,10 +6839,8 @@ public abstract class RecentsView<
return;
}
mDesktopRecentsTransitionController.moveToDesktop(taskContainer, transitionSource);
// TODO(b/387471509): Invoke successCallback after actual transition completion of
// overview menu to desktop
successCallback.run();
mDesktopRecentsTransitionController.moveToDesktop(taskContainer, transitionSource,
successCallback);
}
/**