Merge "Enable large screen flag in the Settings app" into sc-v2-dev
diff --git a/services/core/java/com/android/server/camera/CameraServiceProxy.java b/services/core/java/com/android/server/camera/CameraServiceProxy.java
index 5ce72c2..9d2cff9 100644
--- a/services/core/java/com/android/server/camera/CameraServiceProxy.java
+++ b/services/core/java/com/android/server/camera/CameraServiceProxy.java
@@ -108,9 +108,8 @@
/**
* When enabled this change id forces the packages it is applied to override the default
- * camera rotate & crop behavior and always return CaptureRequest.SCALER_ROTATE_AND_CROP_NONE .
- * The default behavior along with all possible override combinations is discussed in the table
- * below.
+ * camera rotate & crop behavior. The default behavior along with all possible override
+ * combinations is discussed in the table below.
*/
@ChangeId
@Overridable
@@ -122,7 +121,9 @@
* When enabled this change id forces the packages it is applied to ignore the current value of
* 'android:resizeableActivity' as well as target SDK equal to or below M and consider the
* activity as non-resizeable. In this case, the value of camera rotate & crop will only depend
- * on the needed compensation considering the current display rotation.
+ * on potential mismatches between the orientation of the camera and the fixed orientation of
+ * the activity. You can check the table below for further details on the possible override
+ * combinations.
*/
@ChangeId
@Overridable
@@ -131,30 +132,67 @@
public static final long OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK = 191513214L; // buganizer id
/**
+ * This change id forces the packages it is applied to override the default camera rotate & crop
+ * behavior. Enabling it will set the crop & rotate parameter to
+ * {@link android.hardware.camera2.CaptureRequest#SCALER_ROTATE_AND_CROP_90} and disabling it
+ * will reset the parameter to
+ * {@link android.hardware.camera2.CaptureRequest#SCALER_ROTATE_AND_CROP_NONE} as long as camera
+ * clients include {@link android.hardware.camera2.CaptureRequest#SCALER_ROTATE_AND_CROP_AUTO}
+ * in their capture requests.
+ *
+ * This treatment only takes effect if OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS is also enabled.
+ * The table below includes further information about the possible override combinations.
+ */
+ @ChangeId
+ @Overridable
+ @Disabled
+ @TestApi
+ public static final long OVERRIDE_CAMERA_ROTATE_AND_CROP = 190069291L; //buganizer id
+
+ /**
* Possible override combinations
*
- * |OVERRIDE |OVERRIDE_
- * |CAMERA_ |CAMERA_
- * |ROTATE_ |RESIZEABLE_
- * |AND_CROP_ |AND_SDK_
- * |DEFAULTS |CHECK
- * _________________________________________________
- * Default Behavior | D |D
- * _________________________________________________
- * Ignore SDK&Resize | D |E
- * _________________________________________________
- * SCALER_ROTATE_AND_CROP_NONE | E |D, E
- * _________________________________________________
+ * |OVERRIDE | |OVERRIDE_
+ * |CAMERA_ |OVERRIDE |CAMERA_
+ * |ROTATE_ |CAMERA_ |RESIZEABLE_
+ * |AND_CROP_ |ROTATE_ |AND_SDK_
+ * |DEFAULTS |AND_CROP |CHECK
+ * ______________________________________________
+ * Default | | |
+ * Behavior | D |D |D
+ * ______________________________________________
+ * Ignore | | |
+ * SDK&Resize | D |D |E
+ * ______________________________________________
+ * Default | | |
+ * Behavior | D |E |D
+ * ______________________________________________
+ * Ignore | | |
+ * SDK&Resize | D |E |E
+ * ______________________________________________
+ * Rotate&Crop| | |
+ * disabled | E |D |D
+ * ______________________________________________
+ * Rotate&Crop| | |
+ * disabled | E |D |E
+ * ______________________________________________
+ * Rotate&Crop| | |
+ * enabled | E |E |D
+ * ______________________________________________
+ * Rotate&Crop| | |
+ * enabled | E |E |E
+ * ______________________________________________
* Where:
- * E -> Override enabled
- * D -> Override disabled
- * Default behavior -> Rotate&crop will be calculated depending on the required
- * compensation necessary for the current display rotation.
- * Additionally the app must either target M (or below)
- * or is declared as non-resizeable.
- * Ignore SDK&Resize -> The Rotate&crop value will depend on the required
- * compensation for the current display rotation.
- * SCALER_ROTATE_AND_CROP_NONE -> Always return CaptureRequest.SCALER_ROTATE_AND_CROP_NONE
+ * E -> Override enabled
+ * D -> Override disabled
+ * Default behavior -> Rotate&crop will be enabled only in cases
+ * where the fixed app orientation mismatches
+ * with the orientation of the camera.
+ * Additionally the app must either target M (or below)
+ * or is declared as non-resizeable.
+ * Ignore SDK&Resize -> Rotate&crop will be enabled only in cases
+ * where the fixed app orientation mismatches
+ * with the orientation of the camera.
*/
// Flags arguments to NFC adapter to enable/disable NFC
@@ -505,8 +543,14 @@
if ((taskInfo != null) && (CompatChanges.isChangeEnabled(
OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS, packageName,
UserHandle.getUserHandleForUid(taskInfo.userId)))) {
- Slog.v(TAG, "OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS enabled!");
+ if (CompatChanges.isChangeEnabled(OVERRIDE_CAMERA_ROTATE_AND_CROP, packageName,
+ UserHandle.getUserHandleForUid(taskInfo.userId))) {
+ Slog.v(TAG, "OVERRIDE_CAMERA_ROTATE_AND_CROP enabled!");
return CaptureRequest.SCALER_ROTATE_AND_CROP_NONE;
+ } else {
+ Slog.v(TAG, "OVERRIDE_CAMERA_ROTATE_AND_CROP disabled!");
+ return CaptureRequest.SCALER_ROTATE_AND_CROP_NONE;
+ }
}
boolean ignoreResizableAndSdkCheck = false;
if ((taskInfo != null) && (CompatChanges.isChangeEnabled(