From 1df39e2cf6baf6441636ef69f8f978bf51a27462 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Thu, 9 Apr 2020 14:30:55 -0700 Subject: Send task description changed though task org taskInfoChanged - This removes the need for a separate task stack listener and aligns with other task info change properties - Also implement equals/hashCode for the token so we can use it in containers Bug: 148977538 Test: atest TaskOrganizerTests Signed-off-by: Winson Chung Change-Id: Ie035e6389fdbdc374c1a4b4a684758efa0cb7a9e --- .../android/window/TaskOrganizerTaskEmbedder.java | 37 ++++------------------ 1 file changed, 7 insertions(+), 30 deletions(-) (limited to 'core/java/android/window/TaskOrganizerTaskEmbedder.java') diff --git a/core/java/android/window/TaskOrganizerTaskEmbedder.java b/core/java/android/window/TaskOrganizerTaskEmbedder.java index 39a0101bbf59..b63741ec69c4 100644 --- a/core/java/android/window/TaskOrganizerTaskEmbedder.java +++ b/core/java/android/window/TaskOrganizerTaskEmbedder.java @@ -21,7 +21,6 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW; import android.app.ActivityManager; import android.app.ActivityOptions; -import android.app.ActivityView; import android.app.TaskStackListener; import android.content.Context; import android.graphics.Rect; @@ -55,11 +54,6 @@ public class TaskOrganizerTaskEmbedder extends TaskEmbedder { super(context, host); } - @Override - public TaskStackListener createTaskStackListener() { - return new TaskStackListenerImpl(); - } - /** * Whether this container has been initialized. * @@ -219,29 +213,6 @@ public class TaskOrganizerTaskEmbedder extends TaskEmbedder { Log.d(TAG, "[" + System.identityHashCode(this) + "] " + msg); } - /** - * A task change listener that detects background color change of the topmost stack on our - * virtual display and updates the background of the surface view. This background will be shown - * when surface view is resized, but the app hasn't drawn its content in new size yet. - * It also calls StateCallback.onTaskMovedToFront to notify interested parties that the stack - * associated with the {@link ActivityView} has had a Task moved to the front. This is useful - * when needing to also bring the host Activity to the foreground at the same time. - */ - private class TaskStackListenerImpl extends TaskStackListener { - - @Override - public void onTaskDescriptionChanged(ActivityManager.RunningTaskInfo taskInfo) { - if (!isInitialized()) { - return; - } - if (taskInfo.taskId == mTaskInfo.taskId) { - mTaskInfo.taskDescription = taskInfo.taskDescription; - mHost.onTaskBackgroundColorChanged(TaskOrganizerTaskEmbedder.this, - taskInfo.taskDescription.getBackgroundColor()); - } - } - } - private class TaskOrganizerImpl extends TaskOrganizer { @Override public void onTaskAppeared(ActivityManager.RunningTaskInfo taskInfo) { @@ -249,7 +220,6 @@ public class TaskOrganizerTaskEmbedder extends TaskEmbedder { log("taskAppeared: " + taskInfo.taskId); } - // TODO: Ensure visibility/alpha of the leash in its initial state? mTaskInfo = taskInfo; mTaskToken = taskInfo.token; mTaskLeash = mTaskToken.getLeash(); @@ -269,6 +239,13 @@ public class TaskOrganizerTaskEmbedder extends TaskEmbedder { } } + @Override + public void onTaskInfoChanged(ActivityManager.RunningTaskInfo taskInfo) { + mTaskInfo.taskDescription = taskInfo.taskDescription; + mHost.post(() -> mHost.onTaskBackgroundColorChanged(TaskOrganizerTaskEmbedder.this, + taskInfo.taskDescription.getBackgroundColor())); + } + @Override public void onTaskVanished(ActivityManager.RunningTaskInfo taskInfo) { if (DEBUG) { -- cgit v1.2.3