diff options
| author | TreeHugger Robot <treehugger-gerrit@google.com> | 2022-03-11 01:22:20 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2022-03-11 01:22:20 +0000 |
| commit | 77946e2ae8c30a175695d53e13f7948843d4379e (patch) | |
| tree | 9f4b96d629c354c549093029b7a31f1c4d8aeb50 /core/java/android | |
| parent | e2acb6ce05bcd1150fa527e9696b33778d764952 (diff) | |
| parent | 6d709f6f95fc2e8eb958976e87ecc2c4fb4610b1 (diff) | |
Merge "Add API to indicate supported windowing modes on the virtual displays" into tm-dev
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/window/DisplayWindowPolicyController.java | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/core/java/android/window/DisplayWindowPolicyController.java b/core/java/android/window/DisplayWindowPolicyController.java index 3359a41369d7..1270d87e3a04 100644 --- a/core/java/android/window/DisplayWindowPolicyController.java +++ b/core/java/android/window/DisplayWindowPolicyController.java @@ -17,12 +17,14 @@ package android.window; import android.annotation.NonNull; +import android.app.WindowConfiguration; import android.content.ComponentName; import android.content.pm.ActivityInfo; import android.util.ArraySet; import java.io.PrintWriter; import java.util.List; +import java.util.Set; /** * Abstract class to control the policies of the windows that can be displayed on the virtual @@ -46,6 +48,22 @@ public abstract class DisplayWindowPolicyController { private int mSystemWindowFlags; /** + * The set of windowing mode that are supported in this display. + * @see android.app.WindowConfiguration.WindowingMode + */ + private final Set<Integer> mSupportedWindowingModes = new ArraySet<>(); + + /** + * A controller to control the policies of the windows that can be displayed on the virtual + * display. + */ + public DisplayWindowPolicyController() { + synchronized (mSupportedWindowingModes) { + mSupportedWindowingModes.add(WindowConfiguration.WINDOWING_MODE_FULLSCREEN); + } + } + + /** * Returns {@code true} if the given window flags contain the flags that we're interested in. */ public final boolean isInterestedWindowFlags(int windowFlags, int systemWindowFlags) { @@ -62,9 +80,34 @@ public abstract class DisplayWindowPolicyController { } /** - * Returns {@code true} if the given activities can be displayed on this virtual display. + * Returns {@code true} if the given windowing mode is supported in this display. + */ + public final boolean isWindowingModeSupported( + @WindowConfiguration.WindowingMode int windowingMode) { + synchronized (mSupportedWindowingModes) { + return mSupportedWindowingModes.contains(windowingMode); + } + } + + /** + * Sets the windowing modes are supported in this display. + * + * @param supportedWindowingModes The set of + * {@link android.app.WindowConfiguration.WindowingMode}. + */ + public final void setSupportedWindowingModes(Set<Integer> supportedWindowingModes) { + synchronized (mSupportedWindowingModes) { + mSupportedWindowingModes.clear(); + mSupportedWindowingModes.addAll(supportedWindowingModes); + } + } + + /** + * Returns {@code true} if the given activities can be displayed on this virtual display and + * the windowing mode is supported. */ - public abstract boolean canContainActivities(@NonNull List<ActivityInfo> activities); + public abstract boolean canContainActivities(@NonNull List<ActivityInfo> activities, + @WindowConfiguration.WindowingMode int windowingMode); /** * Called when an Activity window is layouted with the new changes where contains the |
