diff options
author | 2024-12-18 19:20:33 -0800 | |
---|---|---|
committer | 2024-12-18 19:20:33 -0800 | |
commit | 0b64be3af1792ee76ea8b399f2304ab0bd9debf4 (patch) | |
tree | 484f8659c4af279ed00d7fd058aecae5a7ada584 | |
parent | 5fc39c6f6488c7546c75f148a1382e069aa8ef3e (diff) | |
parent | e2d3ce6c006a053884054b0657035108e38d2a02 (diff) |
Merge "[Desktop Windowing] Use Change leash for minimize animation CUJ" into main
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 */ ) |