diff options
| author | Linus Tufvesson <lus@google.com> | 2020-11-09 09:45:32 +0000 |
|---|---|---|
| committer | Linus Tufvesson <lus@google.com> | 2021-01-12 12:57:33 +0000 |
| commit | 68e0831b032da2ceabd3f2f763fe34990b712e6c (patch) | |
| tree | 86748e455574afd15f288c0e13f0bf33f91723ea /core/java/android/view/WindowManager.java | |
| parent | 14c70a7793128e3c588a53eb233bb4845d4d196b (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.java | 18 |
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 |
