summaryrefslogtreecommitdiff
path: root/core/java/android/window/VirtualDisplayTaskEmbedder.java
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2020-04-09 14:30:55 -0700
committerWinson Chung <winsonc@google.com>2020-04-11 00:01:05 -0700
commit1df39e2cf6baf6441636ef69f8f978bf51a27462 (patch)
tree181ec2866cdf1bc6f241c76d900af047842f160d /core/java/android/window/VirtualDisplayTaskEmbedder.java
parentcb437ade00bd23dba1a8ea729bc4ecefd1bc5fbe (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/VirtualDisplayTaskEmbedder.java')
-rw-r--r--core/java/android/window/VirtualDisplayTaskEmbedder.java18
1 files changed, 13 insertions, 5 deletions
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;