Loading core/java/android/app/ActivityOptions.java +5 −2 Original line number Diff line number Diff line Loading @@ -184,7 +184,9 @@ public class ActivityOptions extends ComponentOptions { * If the key is not found, previous bounds will be preserved. * NOTE: This value is ignored on devices that don't have * {@link android.content.pm.PackageManager#FEATURE_FREEFORM_WINDOW_MANAGEMENT} or * {@link android.content.pm.PackageManager#FEATURE_PICTURE_IN_PICTURE} enabled. * {@link android.content.pm.PackageManager#FEATURE_PICTURE_IN_PICTURE} enabled, and on displays * that don't support {@link WindowConfiguration#WINDOWING_MODE_FREEFORM} and * {@link WindowConfiguration#WINDOWING_MODE_PINNED}. * @hide */ public static final String KEY_LAUNCH_BOUNDS = "android:activity.launchBounds"; Loading Loading @@ -1483,7 +1485,8 @@ public class ActivityOptions extends ComponentOptions { * <p> * <strong>NOTE:</strong> This value is ignored on devices that don't have * {@link android.content.pm.PackageManager#FEATURE_FREEFORM_WINDOW_MANAGEMENT} or * {@link android.content.pm.PackageManager#FEATURE_PICTURE_IN_PICTURE} enabled. * {@link android.content.pm.PackageManager#FEATURE_PICTURE_IN_PICTURE} enabled, and on displays * that don't support freeform and PiP windows. * @param screenSpacePixelRect launch bounds * @return {@code this} {@link ActivityOptions} instance */ Loading core/java/android/window/DisplayWindowPolicyController.java +3 −1 Original line number Diff line number Diff line Loading @@ -68,9 +68,11 @@ public abstract class DisplayWindowPolicyController { public DisplayWindowPolicyController() { synchronized (mSupportedWindowingModes) { mSupportedWindowingModes.add(WindowConfiguration.WINDOWING_MODE_FULLSCREEN); if (!android.companion.virtualdevice.flags.Flags.gwpcAwareWindowingMode()) { mSupportedWindowingModes.add(WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW); } } } /** * Returns {@code true} if the given window flags contain the flags that we're interested in. Loading packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityManagerWrapper.java +0 −13 Original line number Diff line number Diff line Loading @@ -33,7 +33,6 @@ import android.app.WindowConfiguration; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.UserInfo; import android.os.Bundle; import android.os.IBinder; Loading Loading @@ -309,18 +308,6 @@ public class ActivityManagerWrapper { } } /** * Returns true if the system supports freeform multi-window. */ public boolean supportsFreeformMultiWindow(Context context) { final boolean freeformDevOption = Settings.Global.getInt(context.getContentResolver(), Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT, 0) != 0; return ActivityTaskManager.supportsMultiWindow(context) && (context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_FREEFORM_WINDOW_MANAGEMENT) || freeformDevOption); } /** * Returns true if the running task represents the home task */ Loading services/companion/java/com/android/server/companion/virtual/GenericWindowPolicyController.java +2 −1 Original line number Diff line number Diff line Loading @@ -316,7 +316,8 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController logActivityLaunchBlocked("Mirror virtual displays cannot contain activities."); return false; } if (!isWindowingModeSupported(windowingMode)) { if (!android.companion.virtualdevice.flags.Flags.gwpcAwareWindowingMode() && !isWindowingModeSupported(windowingMode)) { logActivityLaunchBlocked( "Virtual device doesn't support windowing mode " + windowingMode); return false; Loading services/core/java/com/android/server/wm/ActivityRecord.java +6 −1 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED; import static android.app.WindowConfiguration.ROTATION_UNDEFINED; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; Loading Loading @@ -3224,7 +3225,11 @@ final class ActivityRecord extends WindowToken { * windowing mode if it is in the given {@link TaskDisplayArea}. */ boolean supportsFreeformInDisplayArea(@Nullable TaskDisplayArea tda) { return mAtmService.mSupportsFreeformWindowManagement return tda != null && tda.isWindowingModeSupported(WINDOWING_MODE_FREEFORM, mAtmService.mSupportsMultiWindow, mAtmService.mSupportsFreeformWindowManagement, mAtmService.mSupportsPictureInPicture) && supportsMultiWindowInDisplayArea(tda); } Loading Loading
core/java/android/app/ActivityOptions.java +5 −2 Original line number Diff line number Diff line Loading @@ -184,7 +184,9 @@ public class ActivityOptions extends ComponentOptions { * If the key is not found, previous bounds will be preserved. * NOTE: This value is ignored on devices that don't have * {@link android.content.pm.PackageManager#FEATURE_FREEFORM_WINDOW_MANAGEMENT} or * {@link android.content.pm.PackageManager#FEATURE_PICTURE_IN_PICTURE} enabled. * {@link android.content.pm.PackageManager#FEATURE_PICTURE_IN_PICTURE} enabled, and on displays * that don't support {@link WindowConfiguration#WINDOWING_MODE_FREEFORM} and * {@link WindowConfiguration#WINDOWING_MODE_PINNED}. * @hide */ public static final String KEY_LAUNCH_BOUNDS = "android:activity.launchBounds"; Loading Loading @@ -1483,7 +1485,8 @@ public class ActivityOptions extends ComponentOptions { * <p> * <strong>NOTE:</strong> This value is ignored on devices that don't have * {@link android.content.pm.PackageManager#FEATURE_FREEFORM_WINDOW_MANAGEMENT} or * {@link android.content.pm.PackageManager#FEATURE_PICTURE_IN_PICTURE} enabled. * {@link android.content.pm.PackageManager#FEATURE_PICTURE_IN_PICTURE} enabled, and on displays * that don't support freeform and PiP windows. * @param screenSpacePixelRect launch bounds * @return {@code this} {@link ActivityOptions} instance */ Loading
core/java/android/window/DisplayWindowPolicyController.java +3 −1 Original line number Diff line number Diff line Loading @@ -68,9 +68,11 @@ public abstract class DisplayWindowPolicyController { public DisplayWindowPolicyController() { synchronized (mSupportedWindowingModes) { mSupportedWindowingModes.add(WindowConfiguration.WINDOWING_MODE_FULLSCREEN); if (!android.companion.virtualdevice.flags.Flags.gwpcAwareWindowingMode()) { mSupportedWindowingModes.add(WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW); } } } /** * Returns {@code true} if the given window flags contain the flags that we're interested in. Loading
packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityManagerWrapper.java +0 −13 Original line number Diff line number Diff line Loading @@ -33,7 +33,6 @@ import android.app.WindowConfiguration; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.UserInfo; import android.os.Bundle; import android.os.IBinder; Loading Loading @@ -309,18 +308,6 @@ public class ActivityManagerWrapper { } } /** * Returns true if the system supports freeform multi-window. */ public boolean supportsFreeformMultiWindow(Context context) { final boolean freeformDevOption = Settings.Global.getInt(context.getContentResolver(), Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT, 0) != 0; return ActivityTaskManager.supportsMultiWindow(context) && (context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_FREEFORM_WINDOW_MANAGEMENT) || freeformDevOption); } /** * Returns true if the running task represents the home task */ Loading
services/companion/java/com/android/server/companion/virtual/GenericWindowPolicyController.java +2 −1 Original line number Diff line number Diff line Loading @@ -316,7 +316,8 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController logActivityLaunchBlocked("Mirror virtual displays cannot contain activities."); return false; } if (!isWindowingModeSupported(windowingMode)) { if (!android.companion.virtualdevice.flags.Flags.gwpcAwareWindowingMode() && !isWindowingModeSupported(windowingMode)) { logActivityLaunchBlocked( "Virtual device doesn't support windowing mode " + windowingMode); return false; Loading
services/core/java/com/android/server/wm/ActivityRecord.java +6 −1 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED; import static android.app.WindowConfiguration.ROTATION_UNDEFINED; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; Loading Loading @@ -3224,7 +3225,11 @@ final class ActivityRecord extends WindowToken { * windowing mode if it is in the given {@link TaskDisplayArea}. */ boolean supportsFreeformInDisplayArea(@Nullable TaskDisplayArea tda) { return mAtmService.mSupportsFreeformWindowManagement return tda != null && tda.isWindowingModeSupported(WINDOWING_MODE_FREEFORM, mAtmService.mSupportsMultiWindow, mAtmService.mSupportsFreeformWindowManagement, mAtmService.mSupportsPictureInPicture) && supportsMultiWindowInDisplayArea(tda); } Loading