From 6673b316385789dcf3cebf541c294b0b96e6c50f Mon Sep 17 00:00:00 2001 From: Mady Mellor Date: Thu, 10 Dec 2020 10:27:03 -0800 Subject: [PATCH] Use shell executor for TaskView Bug: 161980186 Test: atest TaskViewTest Change-Id: I85764463ada847e2f0c8e82c5744212ee8bb2a9d --- core/java/android/window/TaskOrganizer.java | 9 +++++++++ .../Shell/src/com/android/wm/shell/TaskView.java | 6 +----- .../com/android/wm/shell/bubbles/BubbleExpandedView.java | 6 ------ .../unittest/src/com/android/wm/shell/TaskViewTest.java | 4 ++-- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/core/java/android/window/TaskOrganizer.java b/core/java/android/window/TaskOrganizer.java index c4bdb5a726892..12c4b5b7794a0 100644 --- a/core/java/android/window/TaskOrganizer.java +++ b/core/java/android/window/TaskOrganizer.java @@ -210,6 +210,15 @@ public class TaskOrganizer extends WindowOrganizer { } } + /** + * Gets the executor to run callbacks on. + * @hide + */ + @NonNull + public Executor getExecutor() { + return mExecutor; + } + private final ITaskOrganizer mInterface = new ITaskOrganizer.Stub() { @Override public void addStartingWindow(ActivityManager.RunningTaskInfo taskInfo, IBinder appToken) { 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 59a765d49a144..7440f19a6e7cf 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/TaskView.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/TaskView.java @@ -87,16 +87,12 @@ public class TaskView extends SurfaceView implements SurfaceHolder.Callback, super(context, null, 0, 0, true /* disableBackgroundLayer */); mTaskOrganizer = organizer; + mExecutor = organizer.getExecutor(); setUseAlpha(); getHolder().addCallback(this); mGuard.open("release"); } - // TODO: Use TaskOrganizer executor when part of wmshell proper - public void setExecutor(Executor executor) { - mExecutor = executor; - } - /** * Only one listener may be set on the view, throws an exception otherwise. */ diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java index 318a0bd42940e..4bf01f7cffac9 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java @@ -59,7 +59,6 @@ import com.android.internal.policy.ScreenDecorationsUtils; import com.android.wm.shell.R; import com.android.wm.shell.TaskView; import com.android.wm.shell.common.AlphaOptimizedButton; -import com.android.wm.shell.common.HandlerExecutor; import com.android.wm.shell.common.TriangleShape; import java.io.FileDescriptor; @@ -304,11 +303,6 @@ public class BubbleExpandedView extends LinearLayout { setLayoutDirection(LAYOUT_DIRECTION_LOCALE); } - @Override - protected void onAttachedToWindow() { - super.onAttachedToWindow(); - mTaskView.setExecutor(new HandlerExecutor(getHandler())); - } /** * Initialize {@link BubbleController} and {@link BubbleStackView} here, this method must need * to be called after view inflate. 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 34f772faf9a99..11bf4ff2fd356 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 @@ -30,6 +30,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import android.app.ActivityManager; import android.app.ActivityOptions; @@ -96,8 +97,8 @@ public class TaskViewTest extends ShellTestCase { return null; }).when(mExecutor).execute(any()); + when(mOrganizer.getExecutor()).thenReturn(mExecutor); mTaskView = new TaskView(mContext, mOrganizer); - mTaskView.setExecutor(mExecutor); mTaskView.setListener(mViewListener); } @@ -111,7 +112,6 @@ public class TaskViewTest extends ShellTestCase { @Test public void testSetPendingListener_throwsException() { TaskView taskView = new TaskView(mContext, mOrganizer); - mTaskView.setExecutor(mExecutor); taskView.setListener(mViewListener); try { taskView.setListener(mViewListener);