From 81260f05a2e3884f3c880877667aad4541dc682a Mon Sep 17 00:00:00 2001 From: Mady Mellor Date: Tue, 15 Dec 2020 14:02:01 -0800 Subject: [PATCH] Intercept back press for TaskView This existed as part of MultiWindowTaskListener but got lost at some point when that went away. Adds a test to ensure TaskView sets to intercept. Test: atest TaskViewTest Fixes: 172362619 Change-Id: Ia84865b783966ded1257bd1cf3552a2255419234 --- .../Shell/src/com/android/wm/shell/TaskView.java | 3 ++- .../src/com/android/wm/shell/TaskViewTest.java | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/TaskView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/TaskView.java index 7440f19a6e7cf..d588419bbe19f 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/TaskView.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/TaskView.java @@ -237,7 +237,7 @@ public class TaskView extends SurfaceView implements SurfaceHolder.Callback, // so go ahead and hide the task entirely updateTaskVisibility(); } - + mTaskOrganizer.setInterceptBackPressedOnTaskRoot(mTaskToken, true); // TODO: Synchronize show with the resize onLocationChanged(); setResizeBackgroundColor(taskInfo.taskDescription.getBackgroundColor()); @@ -257,6 +257,7 @@ public class TaskView extends SurfaceView implements SurfaceHolder.Callback, if (mListener != null) { mListener.onTaskRemovalStarted(taskInfo.taskId); } + mTaskOrganizer.setInterceptBackPressedOnTaskRoot(mTaskToken, false); // Unparent the task when this surface is destroyed mTransaction.reparent(mTaskLeash, null).apply(); diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/TaskViewTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/TaskViewTest.java index 11bf4ff2fd356..01b5204860110 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/TaskViewTest.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/TaskViewTest.java @@ -215,4 +215,19 @@ public class TaskViewTest extends ShellTestCase { verify(mViewListener).onBackPressedOnTaskRoot(eq(mTaskInfo.taskId)); } + + @Test + public void testSetOnBackPressedOnTaskRoot() { + mTaskView.onTaskAppeared(mTaskInfo, mLeash); + verify(mOrganizer).setInterceptBackPressedOnTaskRoot(eq(mTaskInfo.token), eq(true)); + } + + @Test + public void testUnsetOnBackPressedOnTaskRoot() { + mTaskView.onTaskAppeared(mTaskInfo, mLeash); + verify(mOrganizer).setInterceptBackPressedOnTaskRoot(eq(mTaskInfo.token), eq(true)); + + mTaskView.onTaskVanished(mTaskInfo); + verify(mOrganizer).setInterceptBackPressedOnTaskRoot(eq(mTaskInfo.token), eq(false)); + } }