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/VirtualDisplayTaskEmbedder.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'core/java/android/window/VirtualDisplayTaskEmbedder.java') diff --git a/core/java/android/window/VirtualDisplayTaskEmbedder.java b/core/java/android/window/VirtualDisplayTaskEmbedder.java index 0f26d5d00f6d..70164692032f 100644 --- a/core/java/android/window/VirtualDisplayTaskEmbedder.java +++ b/core/java/android/window/VirtualDisplayTaskEmbedder.java @@ -67,6 +67,7 @@ public class VirtualDisplayTaskEmbedder extends TaskEmbedder { private VirtualDisplay mVirtualDisplay; private Insets mForwardedInsets; private DisplayMetrics mTmpDisplayMetrics; + private TaskStackListener mTaskStackListener; /** * Constructs a new TaskEmbedder. @@ -82,11 +83,6 @@ public class VirtualDisplayTaskEmbedder extends TaskEmbedder { mSingleTaskInstance = singleTaskInstance; } - @Override - public TaskStackListener createTaskStackListener() { - return new TaskStackListenerImpl(); - } - /** * Whether this container has been initialized. * @@ -124,6 +120,9 @@ public class VirtualDisplayTaskEmbedder extends TaskEmbedder { .setDisplayToSingleTaskInstance(displayId); } setForwardedInsets(mForwardedInsets); + + mTaskStackListener = new TaskStackListenerImpl(); + mActivityTaskManager.registerTaskStackListener(mTaskStackListener); } catch (RemoteException e) { e.rethrowAsRuntimeException(); } @@ -142,6 +141,15 @@ public class VirtualDisplayTaskEmbedder extends TaskEmbedder { // Clear tap-exclude region (if any) for this window. clearTapExcludeRegion(); + if (mTaskStackListener != null) { + try { + mActivityTaskManager.unregisterTaskStackListener(mTaskStackListener); + } catch (RemoteException e) { + Log.e(TAG, "Failed to unregister task stack listener", e); + } + mTaskStackListener = null; + } + if (isInitialized()) { mVirtualDisplay.release(); mVirtualDisplay = null; -- cgit v1.2.3