summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksLimiter.kt22
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksLimiterTest.kt6
2 files changed, 17 insertions, 11 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksLimiter.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksLimiter.kt
index 45faba6e341f..0330a5f0c4e7 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksLimiter.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksLimiter.kt
@@ -127,14 +127,20 @@ class DesktopTasksLimiter(
override fun onTransitionStarting(transition: IBinder) {
val mActiveTaskDetails = activeTransitionTokensAndTasks[transition]
- if (mActiveTaskDetails != null && mActiveTaskDetails.transitionInfo != null) {
- // Begin minimize window CUJ instrumentation.
- interactionJankMonitor.begin(
- mActiveTaskDetails.transitionInfo?.rootLeash,
- context,
- handler,
- CUJ_DESKTOP_MODE_MINIMIZE_WINDOW,
- )
+ val info = mActiveTaskDetails?.transitionInfo ?: return
+ val minimizeChange = getMinimizeChange(info, mActiveTaskDetails.taskId) ?: return
+ // Begin minimize window CUJ instrumentation.
+ interactionJankMonitor.begin(
+ minimizeChange.leash,
+ context,
+ handler,
+ CUJ_DESKTOP_MODE_MINIMIZE_WINDOW,
+ )
+ }
+
+ private fun getMinimizeChange(info: TransitionInfo, taskId: Int): TransitionInfo.Change? {
+ return info.changes.find { change ->
+ change.taskInfo?.taskId == taskId && change.mode == TRANSIT_TO_BACK
}
}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksLimiterTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksLimiterTest.kt
index e6f1fcf7f14f..52602f22fd4b 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksLimiterTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksLimiterTest.kt
@@ -551,7 +551,7 @@ class DesktopTasksLimiterTest : ShellTestCase() {
.getTransitionObserver()
.onTransitionReady(
transition,
- TransitionInfoBuilder(TRANSIT_OPEN).build(),
+ TransitionInfoBuilder(TRANSIT_OPEN).addChange(TRANSIT_TO_BACK, task).build(),
StubTransaction() /* startTransaction */,
StubTransaction(), /* finishTransaction */
)
@@ -583,7 +583,7 @@ class DesktopTasksLimiterTest : ShellTestCase() {
.getTransitionObserver()
.onTransitionReady(
transition,
- TransitionInfoBuilder(TRANSIT_OPEN).build(),
+ TransitionInfoBuilder(TRANSIT_OPEN).addChange(TRANSIT_TO_BACK, task).build(),
StubTransaction() /* startTransaction */,
StubTransaction(), /* finishTransaction */
)
@@ -616,7 +616,7 @@ class DesktopTasksLimiterTest : ShellTestCase() {
.getTransitionObserver()
.onTransitionReady(
mergedTransition,
- TransitionInfoBuilder(TRANSIT_OPEN).build(),
+ TransitionInfoBuilder(TRANSIT_OPEN).addChange(TRANSIT_TO_BACK, task).build(),
StubTransaction() /* startTransaction */,
StubTransaction(), /* finishTransaction */
)