Loading libs/WindowManager/Shell/src/com/android/wm/shell/unfold/UnfoldAnimationController.java +6 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.wm.shell.unfold; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; import android.annotation.NonNull; import android.app.ActivityManager.RunningTaskInfo; import android.app.TaskInfo; Loading Loading @@ -211,6 +213,10 @@ public class UnfoldAnimationController implements UnfoldListener { } private void resetTask(UnfoldTaskAnimator animator, TaskInfo taskInfo) { if (taskInfo.getWindowingMode() == WINDOWING_MODE_PINNED) { // PiP task has its own cleanup path, ignore surface reset to avoid conflict. return; } final SurfaceControl.Transaction transaction = mTransactionPool.acquire(); animator.resetSurface(taskInfo, transaction); transaction.apply(); Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/unfold/UnfoldAnimationControllerTest.java +14 −1 Original line number Diff line number Diff line Loading @@ -206,6 +206,19 @@ public class UnfoldAnimationControllerTest extends ShellTestCase { @Test public void testApplicableTaskDisappeared_resetsSurface() { mTaskAnimator1.setTaskMatcher((info) -> info.getWindowingMode() == 0); RunningTaskInfo taskInfo = new TestRunningTaskInfoBuilder() .setWindowingMode(0).build(); mUnfoldAnimationController.onTaskAppeared(taskInfo, mLeash); assertThat(mTaskAnimator1.mResetTasks).doesNotContain(taskInfo.taskId); mUnfoldAnimationController.onTaskVanished(taskInfo); assertThat(mTaskAnimator1.mResetTasks).contains(taskInfo.taskId); } @Test public void testApplicablePinnedTaskDisappeared_doesNotResetSurface() { mTaskAnimator1.setTaskMatcher((info) -> info.getWindowingMode() == 2); RunningTaskInfo taskInfo = new TestRunningTaskInfoBuilder() .setWindowingMode(2).build(); Loading @@ -214,7 +227,7 @@ public class UnfoldAnimationControllerTest extends ShellTestCase { mUnfoldAnimationController.onTaskVanished(taskInfo); assertThat(mTaskAnimator1.mResetTasks).contains(taskInfo.taskId); assertThat(mTaskAnimator1.mResetTasks).doesNotContain(taskInfo.taskId); } @Test Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/unfold/UnfoldAnimationController.java +6 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.wm.shell.unfold; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; import android.annotation.NonNull; import android.app.ActivityManager.RunningTaskInfo; import android.app.TaskInfo; Loading Loading @@ -211,6 +213,10 @@ public class UnfoldAnimationController implements UnfoldListener { } private void resetTask(UnfoldTaskAnimator animator, TaskInfo taskInfo) { if (taskInfo.getWindowingMode() == WINDOWING_MODE_PINNED) { // PiP task has its own cleanup path, ignore surface reset to avoid conflict. return; } final SurfaceControl.Transaction transaction = mTransactionPool.acquire(); animator.resetSurface(taskInfo, transaction); transaction.apply(); Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/unfold/UnfoldAnimationControllerTest.java +14 −1 Original line number Diff line number Diff line Loading @@ -206,6 +206,19 @@ public class UnfoldAnimationControllerTest extends ShellTestCase { @Test public void testApplicableTaskDisappeared_resetsSurface() { mTaskAnimator1.setTaskMatcher((info) -> info.getWindowingMode() == 0); RunningTaskInfo taskInfo = new TestRunningTaskInfoBuilder() .setWindowingMode(0).build(); mUnfoldAnimationController.onTaskAppeared(taskInfo, mLeash); assertThat(mTaskAnimator1.mResetTasks).doesNotContain(taskInfo.taskId); mUnfoldAnimationController.onTaskVanished(taskInfo); assertThat(mTaskAnimator1.mResetTasks).contains(taskInfo.taskId); } @Test public void testApplicablePinnedTaskDisappeared_doesNotResetSurface() { mTaskAnimator1.setTaskMatcher((info) -> info.getWindowingMode() == 2); RunningTaskInfo taskInfo = new TestRunningTaskInfoBuilder() .setWindowingMode(2).build(); Loading @@ -214,7 +227,7 @@ public class UnfoldAnimationControllerTest extends ShellTestCase { mUnfoldAnimationController.onTaskVanished(taskInfo); assertThat(mTaskAnimator1.mResetTasks).contains(taskInfo.taskId); assertThat(mTaskAnimator1.mResetTasks).doesNotContain(taskInfo.taskId); } @Test Loading