diff options
| author | Linus Tufvesson <lus@google.com> | 2020-04-09 17:04:32 +0100 |
|---|---|---|
| committer | Linus Tufvesson <lus@google.com> | 2020-04-16 15:50:48 +0100 |
| commit | db1f2ec05275a133526b2c3b1e2ed44d0a0e1a9d (patch) | |
| tree | d2b2124f009e348f04c0f37fd5197bfba69912c8 /core/java/android/window/VirtualDisplayTaskEmbedder.java | |
| parent | 21f457f4703843408132c10ce8af731df789e2ed (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.java | 15 |
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"); |
