summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Gustav Sennton <gsennton@google.com> 2024-12-17 10:13:04 +0000
committer Gustav Sennton <gsennton@google.com> 2024-12-18 17:08:36 +0000
commite2d3ce6c006a053884054b0657035108e38d2a02 (patch)
tree2ea953318aef09e0eb139fbddcec680fac5bd0a3
parent592611bd78e420a7a89da78085ceff873f58cb55 (diff)
[Desktop Windowing] Use Change leash for minimize animation CUJ
Bug: 384638246 Test: DesktopTasksLimiterTest Flag: com.android.window.flags.enable_desktop_windowing_task_limit Change-Id: I189a27665672e6b754019820b20a72e1615c7511
-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 */
)