Loading core/java/android/app/CameraCompatTaskInfo.java +12 −5 Original line number Diff line number Diff line Loading @@ -35,37 +35,43 @@ import java.lang.annotation.RetentionPolicy; * @hide */ public class CameraCompatTaskInfo implements Parcelable { /** * Undefined camera compat mode. */ public static final int CAMERA_COMPAT_FREEFORM_UNSPECIFIED = 0; /** * The value to use when no camera compat treatment should be applied to a windowed task. */ public static final int CAMERA_COMPAT_FREEFORM_NONE = 0; public static final int CAMERA_COMPAT_FREEFORM_NONE = 1; /** * The value to use when camera compat treatment should be applied to an activity requesting * portrait orientation, while a device is in landscape. Applies only to freeform tasks. */ public static final int CAMERA_COMPAT_FREEFORM_PORTRAIT_DEVICE_IN_LANDSCAPE = 1; public static final int CAMERA_COMPAT_FREEFORM_PORTRAIT_DEVICE_IN_LANDSCAPE = 2; /** * The value to use when camera compat treatment should be applied to an activity requesting * landscape orientation, while a device is in landscape. Applies only to freeform tasks. */ public static final int CAMERA_COMPAT_FREEFORM_LANDSCAPE_DEVICE_IN_LANDSCAPE = 2; public static final int CAMERA_COMPAT_FREEFORM_LANDSCAPE_DEVICE_IN_LANDSCAPE = 3; /** * The value to use when camera compat treatment should be applied to an activity requesting * portrait orientation, while a device is in portrait. Applies only to freeform tasks. */ public static final int CAMERA_COMPAT_FREEFORM_PORTRAIT_DEVICE_IN_PORTRAIT = 3; public static final int CAMERA_COMPAT_FREEFORM_PORTRAIT_DEVICE_IN_PORTRAIT = 4; /** * The value to use when camera compat treatment should be applied to an activity requesting * landscape orientation, while a device is in portrait. Applies only to freeform tasks. */ public static final int CAMERA_COMPAT_FREEFORM_LANDSCAPE_DEVICE_IN_PORTRAIT = 4; public static final int CAMERA_COMPAT_FREEFORM_LANDSCAPE_DEVICE_IN_PORTRAIT = 5; @Retention(RetentionPolicy.SOURCE) @IntDef(prefix = { "CAMERA_COMPAT_FREEFORM_" }, value = { CAMERA_COMPAT_FREEFORM_UNSPECIFIED, CAMERA_COMPAT_FREEFORM_NONE, CAMERA_COMPAT_FREEFORM_PORTRAIT_DEVICE_IN_LANDSCAPE, CAMERA_COMPAT_FREEFORM_LANDSCAPE_DEVICE_IN_LANDSCAPE, Loading Loading @@ -184,6 +190,7 @@ public class CameraCompatTaskInfo implements Parcelable { public static String freeformCameraCompatModeToString( @FreeformCameraCompatMode int freeformCameraCompatMode) { return switch (freeformCameraCompatMode) { case CAMERA_COMPAT_FREEFORM_UNSPECIFIED -> "undefined"; case CAMERA_COMPAT_FREEFORM_NONE -> "inactive"; case CAMERA_COMPAT_FREEFORM_PORTRAIT_DEVICE_IN_LANDSCAPE -> "app-portrait-device-landscape"; Loading services/core/java/com/android/server/wm/AppCompatUtils.java +1 −1 Original line number Diff line number Diff line Loading @@ -285,7 +285,7 @@ final class AppCompatUtils { info.topActivityLetterboxAppWidth = TaskInfo.PROPERTY_VALUE_UNSET; info.topActivityLetterboxBounds = null; info.cameraCompatTaskInfo.freeformCameraCompatMode = CameraCompatTaskInfo.CAMERA_COMPAT_FREEFORM_NONE; CameraCompatTaskInfo.CAMERA_COMPAT_FREEFORM_UNSPECIFIED; info.clearTopActivityFlags(); } } services/core/java/com/android/server/wm/CameraCompatFreeformPolicy.java +3 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static android.app.CameraCompatTaskInfo.CAMERA_COMPAT_FREEFORM_LANDSCAPE_ import static android.app.CameraCompatTaskInfo.CAMERA_COMPAT_FREEFORM_NONE; import static android.app.CameraCompatTaskInfo.CAMERA_COMPAT_FREEFORM_PORTRAIT_DEVICE_IN_LANDSCAPE; import static android.app.CameraCompatTaskInfo.CAMERA_COMPAT_FREEFORM_PORTRAIT_DEVICE_IN_PORTRAIT; import static android.app.CameraCompatTaskInfo.CAMERA_COMPAT_FREEFORM_UNSPECIFIED; import static android.app.WindowConfiguration.WINDOW_CONFIG_APP_BOUNDS; import static android.app.WindowConfiguration.WINDOW_CONFIG_DISPLAY_ROTATION; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LOCKED; Loading Loading @@ -235,7 +236,8 @@ final class CameraCompatFreeformPolicy implements CameraStateMonitor.CameraCompa } boolean isInFreeformCameraCompatMode(@NonNull ActivityRecord activity) { return getCameraCompatMode(activity) != CAMERA_COMPAT_FREEFORM_NONE; return getCameraCompatMode(activity) != CAMERA_COMPAT_FREEFORM_UNSPECIFIED && getCameraCompatMode(activity) != CAMERA_COMPAT_FREEFORM_NONE; } float getCameraCompatAspectRatio(@NonNull ActivityRecord activityRecord) { Loading Loading
core/java/android/app/CameraCompatTaskInfo.java +12 −5 Original line number Diff line number Diff line Loading @@ -35,37 +35,43 @@ import java.lang.annotation.RetentionPolicy; * @hide */ public class CameraCompatTaskInfo implements Parcelable { /** * Undefined camera compat mode. */ public static final int CAMERA_COMPAT_FREEFORM_UNSPECIFIED = 0; /** * The value to use when no camera compat treatment should be applied to a windowed task. */ public static final int CAMERA_COMPAT_FREEFORM_NONE = 0; public static final int CAMERA_COMPAT_FREEFORM_NONE = 1; /** * The value to use when camera compat treatment should be applied to an activity requesting * portrait orientation, while a device is in landscape. Applies only to freeform tasks. */ public static final int CAMERA_COMPAT_FREEFORM_PORTRAIT_DEVICE_IN_LANDSCAPE = 1; public static final int CAMERA_COMPAT_FREEFORM_PORTRAIT_DEVICE_IN_LANDSCAPE = 2; /** * The value to use when camera compat treatment should be applied to an activity requesting * landscape orientation, while a device is in landscape. Applies only to freeform tasks. */ public static final int CAMERA_COMPAT_FREEFORM_LANDSCAPE_DEVICE_IN_LANDSCAPE = 2; public static final int CAMERA_COMPAT_FREEFORM_LANDSCAPE_DEVICE_IN_LANDSCAPE = 3; /** * The value to use when camera compat treatment should be applied to an activity requesting * portrait orientation, while a device is in portrait. Applies only to freeform tasks. */ public static final int CAMERA_COMPAT_FREEFORM_PORTRAIT_DEVICE_IN_PORTRAIT = 3; public static final int CAMERA_COMPAT_FREEFORM_PORTRAIT_DEVICE_IN_PORTRAIT = 4; /** * The value to use when camera compat treatment should be applied to an activity requesting * landscape orientation, while a device is in portrait. Applies only to freeform tasks. */ public static final int CAMERA_COMPAT_FREEFORM_LANDSCAPE_DEVICE_IN_PORTRAIT = 4; public static final int CAMERA_COMPAT_FREEFORM_LANDSCAPE_DEVICE_IN_PORTRAIT = 5; @Retention(RetentionPolicy.SOURCE) @IntDef(prefix = { "CAMERA_COMPAT_FREEFORM_" }, value = { CAMERA_COMPAT_FREEFORM_UNSPECIFIED, CAMERA_COMPAT_FREEFORM_NONE, CAMERA_COMPAT_FREEFORM_PORTRAIT_DEVICE_IN_LANDSCAPE, CAMERA_COMPAT_FREEFORM_LANDSCAPE_DEVICE_IN_LANDSCAPE, Loading Loading @@ -184,6 +190,7 @@ public class CameraCompatTaskInfo implements Parcelable { public static String freeformCameraCompatModeToString( @FreeformCameraCompatMode int freeformCameraCompatMode) { return switch (freeformCameraCompatMode) { case CAMERA_COMPAT_FREEFORM_UNSPECIFIED -> "undefined"; case CAMERA_COMPAT_FREEFORM_NONE -> "inactive"; case CAMERA_COMPAT_FREEFORM_PORTRAIT_DEVICE_IN_LANDSCAPE -> "app-portrait-device-landscape"; Loading
services/core/java/com/android/server/wm/AppCompatUtils.java +1 −1 Original line number Diff line number Diff line Loading @@ -285,7 +285,7 @@ final class AppCompatUtils { info.topActivityLetterboxAppWidth = TaskInfo.PROPERTY_VALUE_UNSET; info.topActivityLetterboxBounds = null; info.cameraCompatTaskInfo.freeformCameraCompatMode = CameraCompatTaskInfo.CAMERA_COMPAT_FREEFORM_NONE; CameraCompatTaskInfo.CAMERA_COMPAT_FREEFORM_UNSPECIFIED; info.clearTopActivityFlags(); } }
services/core/java/com/android/server/wm/CameraCompatFreeformPolicy.java +3 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static android.app.CameraCompatTaskInfo.CAMERA_COMPAT_FREEFORM_LANDSCAPE_ import static android.app.CameraCompatTaskInfo.CAMERA_COMPAT_FREEFORM_NONE; import static android.app.CameraCompatTaskInfo.CAMERA_COMPAT_FREEFORM_PORTRAIT_DEVICE_IN_LANDSCAPE; import static android.app.CameraCompatTaskInfo.CAMERA_COMPAT_FREEFORM_PORTRAIT_DEVICE_IN_PORTRAIT; import static android.app.CameraCompatTaskInfo.CAMERA_COMPAT_FREEFORM_UNSPECIFIED; import static android.app.WindowConfiguration.WINDOW_CONFIG_APP_BOUNDS; import static android.app.WindowConfiguration.WINDOW_CONFIG_DISPLAY_ROTATION; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LOCKED; Loading Loading @@ -235,7 +236,8 @@ final class CameraCompatFreeformPolicy implements CameraStateMonitor.CameraCompa } boolean isInFreeformCameraCompatMode(@NonNull ActivityRecord activity) { return getCameraCompatMode(activity) != CAMERA_COMPAT_FREEFORM_NONE; return getCameraCompatMode(activity) != CAMERA_COMPAT_FREEFORM_UNSPECIFIED && getCameraCompatMode(activity) != CAMERA_COMPAT_FREEFORM_NONE; } float getCameraCompatAspectRatio(@NonNull ActivityRecord activityRecord) { Loading