diff options
| author | Winson Chung <winsonc@google.com> | 2020-04-09 14:30:55 -0700 |
|---|---|---|
| committer | Winson Chung <winsonc@google.com> | 2020-04-11 00:01:05 -0700 |
| commit | 1df39e2cf6baf6441636ef69f8f978bf51a27462 (patch) | |
| tree | 181ec2866cdf1bc6f241c76d900af047842f160d /core/java/android/window/TaskOrganizerTaskEmbedder.java | |
| parent | cb437ade00bd23dba1a8ea729bc4ecefd1bc5fbe (diff) | |
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 <winsonc@google.com>
Change-Id: Ie035e6389fdbdc374c1a4b4a684758efa0cb7a9e
Diffstat (limited to 'core/java/android/window/TaskOrganizerTaskEmbedder.java')
| -rw-r--r-- | core/java/android/window/TaskOrganizerTaskEmbedder.java | 37 |
1 files changed, 7 insertions, 30 deletions
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(); @@ -270,6 +240,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) { log("taskVanished: " + taskInfo.taskId); |
