summaryrefslogtreecommitdiff
path: root/core/java/android/window/VirtualDisplayTaskEmbedder.java
diff options
context:
space:
mode:
authorLinus Tufvesson <lus@google.com>2020-04-09 17:04:32 +0100
committerLinus Tufvesson <lus@google.com>2020-04-16 15:50:48 +0100
commitdb1f2ec05275a133526b2c3b1e2ed44d0a0e1a9d (patch)
treed2b2124f009e348f04c0f37fd5197bfba69912c8 /core/java/android/window/VirtualDisplayTaskEmbedder.java
parent21f457f4703843408132c10ce8af731df789e2ed (diff)
Make ActivityViews backing virtual display private
Bug: 150310377 Test: atest CtsWindowManagerDeviceTestCases:ActivityViewTest Test: Used bubbles test app to verify that it's still happy when using private VDs Change-Id: I02c6840b1f908a5177c217494de0110f5ce78f7e
Diffstat (limited to 'core/java/android/window/VirtualDisplayTaskEmbedder.java')
-rw-r--r--core/java/android/window/VirtualDisplayTaskEmbedder.java15
1 files changed, 11 insertions, 4 deletions
diff --git a/core/java/android/window/VirtualDisplayTaskEmbedder.java b/core/java/android/window/VirtualDisplayTaskEmbedder.java
index 70164692032f..1c0598b1d216 100644
--- a/core/java/android/window/VirtualDisplayTaskEmbedder.java
+++ b/core/java/android/window/VirtualDisplayTaskEmbedder.java
@@ -64,6 +64,7 @@ public class VirtualDisplayTaskEmbedder extends TaskEmbedder {
// For Virtual Displays
private int mDisplayDensityDpi;
private final boolean mSingleTaskInstance;
+ private final boolean mUsePublicVirtualDisplay;
private VirtualDisplay mVirtualDisplay;
private Insets mForwardedInsets;
private DisplayMetrics mTmpDisplayMetrics;
@@ -78,9 +79,10 @@ public class VirtualDisplayTaskEmbedder extends TaskEmbedder {
* only applicable if virtual displays are used
*/
public VirtualDisplayTaskEmbedder(Context context, VirtualDisplayTaskEmbedder.Host host,
- boolean singleTaskInstance) {
+ boolean singleTaskInstance, boolean usePublicVirtualDisplay) {
super(context, host);
mSingleTaskInstance = singleTaskInstance;
+ mUsePublicVirtualDisplay = usePublicVirtualDisplay;
}
/**
@@ -97,11 +99,16 @@ public class VirtualDisplayTaskEmbedder extends TaskEmbedder {
public boolean onInitialize() {
final DisplayManager displayManager = mContext.getSystemService(DisplayManager.class);
mDisplayDensityDpi = getBaseDisplayDensity();
+
+ int virtualDisplayFlags = VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY
+ | VIRTUAL_DISPLAY_FLAG_DESTROY_CONTENT_ON_REMOVAL;
+ if (mUsePublicVirtualDisplay) {
+ virtualDisplayFlags |= VIRTUAL_DISPLAY_FLAG_PUBLIC;
+ }
+
mVirtualDisplay = displayManager.createVirtualDisplay(
DISPLAY_NAME + "@" + System.identityHashCode(this), mHost.getWidth(),
- mHost.getHeight(), mDisplayDensityDpi, null,
- VIRTUAL_DISPLAY_FLAG_PUBLIC | VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY
- | VIRTUAL_DISPLAY_FLAG_DESTROY_CONTENT_ON_REMOVAL);
+ mHost.getHeight(), mDisplayDensityDpi, null, virtualDisplayFlags);
if (mVirtualDisplay == null) {
Log.e(TAG, "Failed to initialize TaskEmbedder");