From b235ee861774278e5fab1a4917216cd2e5f7bacb Mon Sep 17 00:00:00 2001
From: Linus Tufvesson
Date: Tue, 31 Mar 2020 17:27:41 +0000
Subject: RESTRICT AUTOMERGE
Revert submission 10446362-type-presentation-p
Reason for revert: Breaks apps using Presentation in combination with private virtual displays
Reverted Changes:
Ib5a24f8be:RESTRICT AUTOMERGE Add test for Presentation
I2aaab1903:RESTRICT AUTOMERGE Block TYPE_PRESENTATION windows...
Bug: 141745510
Change-Id: I9e8a02d5162cd5f8fb0f1860c4d4f099c718a946
---
core/java/android/app/Presentation.java | 16 +++++++---------
.../java/com/android/server/wm/WindowManagerService.java | 8 --------
2 files changed, 7 insertions(+), 17 deletions(-)
diff --git a/core/java/android/app/Presentation.java b/core/java/android/app/Presentation.java
index bc2b250328a6..af55788e617f 100644
--- a/core/java/android/app/Presentation.java
+++ b/core/java/android/app/Presentation.java
@@ -25,18 +25,18 @@ import android.content.res.Resources;
import android.hardware.display.DisplayManager;
import android.hardware.display.DisplayManager.DisplayListener;
import android.os.Binder;
-import android.os.Handler;
import android.os.IBinder;
-import android.os.Message;
-import android.util.DisplayMetrics;
-import android.util.Log;
-import android.util.TypedValue;
import android.view.ContextThemeWrapper;
import android.view.Display;
import android.view.Gravity;
import android.view.Window;
import android.view.WindowManager;
import android.view.WindowManagerImpl;
+import android.os.Handler;
+import android.os.Message;
+import android.util.DisplayMetrics;
+import android.util.Log;
+import android.util.TypedValue;
/**
* Base class for presentations.
@@ -115,9 +115,7 @@ import android.view.WindowManagerImpl;
* The display manager keeps track of all displays in the system. However, not all
* displays are appropriate for showing presentations. For example, if an activity
* attempted to show a presentation on the main display it might obscure its own content
- * (it's like opening a dialog on top of your activity). Creating a presentation on the main
- * display will result in {@link android.view.WindowManager.InvalidDisplayException} being thrown
- * when invoking {@link #show()}.
+ * (it's like opening a dialog on top of your activity).
*
* Here's how to identify suitable displays for showing presentations using
* {@link DisplayManager#getDisplays(String)} and the
@@ -244,7 +242,7 @@ public class Presentation extends Dialog {
/**
* Inherited from {@link Dialog#show}. Will throw
* {@link android.view.WindowManager.InvalidDisplayException} if the specified secondary
- * {@link Display} can't be found or if it does not have {@link Display#FLAG_PRESENTATION} set.
+ * {@link Display} can't be found.
*/
@Override
public void show() {
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index b438d044d102..8b4a2dd36e6c 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -55,7 +55,6 @@ import static android.view.WindowManager.LayoutParams.TYPE_DREAM;
import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD_DIALOG;
import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR;
-import static android.view.WindowManager.LayoutParams.TYPE_PRESENTATION;
import static android.view.WindowManager.LayoutParams.TYPE_PRIVATE_PRESENTATION;
import static android.view.WindowManager.LayoutParams.TYPE_QS_DIALOG;
import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR;
@@ -1183,13 +1182,6 @@ public class WindowManagerService extends IWindowManager.Stub
return WindowManagerGlobal.ADD_PERMISSION_DENIED;
}
- if (type == TYPE_PRESENTATION && !displayContent.getDisplay().isPublicPresentation()) {
- Slog.w(TAG_WM,
- "Attempted to add presentation window to a non-suitable display. "
- + "Aborting.");
- return WindowManagerGlobal.ADD_INVALID_DISPLAY;
- }
-
AppWindowToken atoken = null;
final boolean hasParent = parentWindow != null;
// Use existing parent window token for child windows since they go in the same token
--
cgit v1.2.3-59-g8ed1b