From 9c17e537c7dc979cabcb3e70763f1aeec9763b92 Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Wed, 11 Mar 2020 16:00:50 +0100 Subject: [PATCH] WindowContext: Add @WindowType intdef Fixes: 151156902 Test: make checkapi Change-Id: I966f8cd305189a54a5de48b03e5b4bdd51700fdf --- core/java/android/content/Context.java | 3 +- core/java/android/content/ContextWrapper.java | 3 +- core/java/android/view/WindowManager.java | 37 ++++++++++++++++++- 3 files changed, 40 insertions(+), 3 deletions(-) diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index 6cba3270042d8..5e9ed60260830 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -71,6 +71,7 @@ import android.view.DisplayAdjustments; import android.view.View; import android.view.ViewDebug; import android.view.WindowManager; +import android.view.WindowManager.LayoutParams.WindowType; import android.view.autofill.AutofillManager.AutofillClient; import android.view.contentcapture.ContentCaptureManager.ContentCaptureClient; import android.view.textclassifier.TextClassificationManager; @@ -5820,7 +5821,7 @@ public abstract class Context { * @see #WALLPAPER_SERVICE * @throws IllegalArgumentException if token is invalid */ - public @NonNull Context createWindowContext(int type, @Nullable Bundle options) { + public @NonNull Context createWindowContext(@WindowType int type, @Nullable Bundle options) { throw new RuntimeException("Not implemented. Must override in a subclass."); } diff --git a/core/java/android/content/ContextWrapper.java b/core/java/android/content/ContextWrapper.java index 91d214badd2d2..b7e04cf74c4a1 100644 --- a/core/java/android/content/ContextWrapper.java +++ b/core/java/android/content/ContextWrapper.java @@ -42,6 +42,7 @@ import android.os.Looper; import android.os.UserHandle; import android.view.Display; import android.view.DisplayAdjustments; +import android.view.WindowManager.LayoutParams.WindowType; import android.view.autofill.AutofillManager.AutofillClient; import java.io.File; @@ -978,7 +979,7 @@ public class ContextWrapper extends Context { @Override @NonNull - public Context createWindowContext(int type, @Nullable Bundle options) { + public Context createWindowContext(@WindowType int type, @Nullable Bundle options) { return mBase.createWindowContext(type, options); } diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java index 867b648cfb10e..c5fa3c83a0e51 100644 --- a/core/java/android/view/WindowManager.java +++ b/core/java/android/view/WindowManager.java @@ -805,6 +805,7 @@ public interface WindowManager extends ViewManager { @ViewDebug.IntToString(from = TYPE_APPLICATION_OVERLAY, to = "APPLICATION_OVERLAY") }) + @WindowType public int type; /** @@ -1243,6 +1244,40 @@ public interface WindowManager extends ViewManager { */ public static final int INVALID_WINDOW_TYPE = -1; + /** + * @hide + */ + @IntDef(prefix = "TYPE_", value = { + TYPE_ACCESSIBILITY_OVERLAY, + TYPE_APPLICATION, + TYPE_APPLICATION_ATTACHED_DIALOG, + TYPE_APPLICATION_MEDIA, + TYPE_APPLICATION_OVERLAY, + TYPE_APPLICATION_PANEL, + TYPE_APPLICATION_STARTING, + TYPE_APPLICATION_SUB_PANEL, + TYPE_BASE_APPLICATION, + TYPE_DRAWN_APPLICATION, + TYPE_INPUT_METHOD, + TYPE_INPUT_METHOD_DIALOG, + TYPE_KEYGUARD, + TYPE_KEYGUARD_DIALOG, + TYPE_PHONE, + TYPE_PRIORITY_PHONE, + TYPE_PRIVATE_PRESENTATION, + TYPE_SEARCH_BAR, + TYPE_STATUS_BAR, + TYPE_STATUS_BAR_PANEL, + TYPE_SYSTEM_ALERT, + TYPE_SYSTEM_DIALOG, + TYPE_SYSTEM_ERROR, + TYPE_SYSTEM_OVERLAY, + TYPE_TOAST, + TYPE_WALLPAPER, + }) + @Retention(RetentionPolicy.SOURCE) + public @interface WindowType {} + /** * Return true if the window type is an alert window. * @@ -1250,7 +1285,7 @@ public interface WindowManager extends ViewManager { * @return If the window type is an alert window. * @hide */ - public static boolean isSystemAlertWindowType(int type) { + public static boolean isSystemAlertWindowType(@WindowType int type) { switch (type) { case TYPE_PHONE: case TYPE_PRIORITY_PHONE: