summaryrefslogtreecommitdiff
path: root/core/java/android/view/WindowManager.java
diff options
context:
space:
mode:
authorLinus Tufvesson <lus@google.com>2020-11-09 09:45:32 +0000
committerLinus Tufvesson <lus@google.com>2021-01-12 12:57:33 +0000
commit68e0831b032da2ceabd3f2f763fe34990b712e6c (patch)
tree86748e455574afd15f288c0e13f0bf33f91723ea /core/java/android/view/WindowManager.java
parent14c70a7793128e3c588a53eb233bb4845d4d196b (diff)
Add SYSTEM_APPLICATION_OVERLAY
.. which allows the holder to create privileged application overlays that won't be hidden by Window#hideOverlayWindows Bug: 159616727 Bug: 171177581 Test: atest CtsWindowManagerDeviceTestCases:HideOverlayWindowsTest Change-Id: I1a8c08047ca51b12067fa68bea61843013940643
Diffstat (limited to 'core/java/android/view/WindowManager.java')
-rw-r--r--core/java/android/view/WindowManager.java18
1 files changed, 17 insertions, 1 deletions
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index 6d88d637dc24..bf7777ff6cb8 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -2073,6 +2073,16 @@ public interface WindowManager extends ViewManager {
*/
public static final int PRIVATE_FLAG_WANTS_OFFSET_NOTIFICATIONS = 0x00000004;
+ /**
+ * When set {@link LayoutParams#TYPE_APPLICATION_OVERLAY} windows will stay visible, even if
+ * {@link LayoutParams#SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS} is set for another
+ * visible window.
+ * @hide
+ */
+ @SystemApi
+ @RequiresPermission(permission.SYSTEM_APPLICATION_OVERLAY)
+ public static final int SYSTEM_FLAG_SYSTEM_APPLICATION_OVERLAY = 0x00000008;
+
/** In a multiuser system if this flag is set and the owner is a system process then this
* window will appear on all user screens. This overrides the default behavior of window
* types that normally only appear on the owning user's screen. Refer to each window type
@@ -2270,6 +2280,7 @@ public interface WindowManager extends ViewManager {
@IntDef(flag = true, prefix = { "SYSTEM_FLAG_" }, value = {
SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS,
SYSTEM_FLAG_SHOW_FOR_ALL_USERS,
+ SYSTEM_FLAG_SYSTEM_APPLICATION_OVERLAY,
})
public @interface SystemFlags {}
@@ -2303,6 +2314,7 @@ public interface WindowManager extends ViewManager {
PRIVATE_FLAG_TRUSTED_OVERLAY,
PRIVATE_FLAG_INSET_PARENT_FRAME_BY_IME,
PRIVATE_FLAG_INTERCEPT_GLOBAL_DRAG_AND_DROP,
+ SYSTEM_FLAG_SYSTEM_APPLICATION_OVERLAY,
})
public @interface PrivateFlags {}
@@ -2415,7 +2427,11 @@ public interface WindowManager extends ViewManager {
@ViewDebug.FlagToString(
mask = PRIVATE_FLAG_INTERCEPT_GLOBAL_DRAG_AND_DROP,
equals = PRIVATE_FLAG_INTERCEPT_GLOBAL_DRAG_AND_DROP,
- name = "INTERCEPT_GLOBAL_DRAG_AND_DROP")
+ name = "INTERCEPT_GLOBAL_DRAG_AND_DROP"),
+ @ViewDebug.FlagToString(
+ mask = SYSTEM_FLAG_SYSTEM_APPLICATION_OVERLAY,
+ equals = SYSTEM_FLAG_SYSTEM_APPLICATION_OVERLAY,
+ name = "SYSTEM_FLAG_SYSTEM_APPLICATION_OVERLAY")
})
@PrivateFlags
@TestApi