diff --git a/core/api/test-current.txt b/core/api/test-current.txt index bc1858b637838..b0ee3f01f210c 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -2324,6 +2324,8 @@ package android.view { } public static class WindowManager.LayoutParams extends android.view.ViewGroup.LayoutParams implements android.os.Parcelable { + method @Nullable public final android.os.IBinder getWindowContextToken(); + method public final void setWindowContextToken(@NonNull android.os.IBinder); field public static final int ACCESSIBILITY_TITLE_CHANGED = 33554432; // 0x2000000 field public static final int PRIVATE_FLAG_NO_MOVE_ANIMATION = 64; // 0x40 field public CharSequence accessibilityTitle; diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java index fa471fa28c7fe..8319b74d9cdf5 100644 --- a/core/java/android/view/WindowManager.java +++ b/core/java/android/view/WindowManager.java @@ -83,6 +83,7 @@ import static android.view.WindowLayoutParamsProto.Y; import android.Manifest.permission; import android.annotation.IntDef; import android.annotation.NonNull; +import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemService; @@ -99,6 +100,7 @@ import android.graphics.Point; import android.graphics.Rect; import android.graphics.Region; import android.os.Build; +import android.os.Bundle; import android.os.IBinder; import android.os.Parcel; import android.os.Parcelable; @@ -2855,12 +2857,14 @@ public interface WindowManager extends ViewManager { /** * The token of {@link android.app.WindowContext}. It is usually a - * {@link android.app.WindowTokenClient} and is used for updating - * {@link android.content.res.Resources} from {@link Configuration} propagated from the - * server side. + * {@link android.app.WindowTokenClient} and is used for associating the params with an + * existing node in the WindowManager hierarchy and getting the corresponding + * {@link Configuration} and {@link android.content.res.Resources} values with updates + * propagated from the server side. * * @hide */ + @Nullable public IBinder mWindowContextToken = null; /** @@ -3547,6 +3551,37 @@ public interface WindowManager extends ViewManager { return userActivityTimeout; } + /** + * Sets the {@link android.app.WindowContext} token. + * + * @see #getWindowContextToken() + * + * @hide + */ + @TestApi + public final void setWindowContextToken(@NonNull IBinder token) { + mWindowContextToken = token; + } + + /** + * Gets the {@link android.app.WindowContext} token. + * + * The token is usually a {@link android.app.WindowTokenClient} and is used for associating + * the params with an existing node in the WindowManager hierarchy and getting the + * corresponding {@link Configuration} and {@link android.content.res.Resources} values with + * updates propagated from the server side. + * + * @see android.app.WindowTokenClient + * @see Context#createWindowContext(Display, int, Bundle) + * + * @hide + */ + @TestApi + @Nullable + public final IBinder getWindowContextToken() { + return mWindowContextToken; + } + public int describeContents() { return 0; }