From 2e533939d49c2d02246702f070ac38fce57e856b Mon Sep 17 00:00:00 2001 From: Yi Jiang Date: Tue, 26 Jan 2021 12:28:54 -0800 Subject: [PATCH] Adds smart autorotate setting to the system. Also adds a config flag for the smart autorotate to indicate whether the feature is enabled. Test: make RunSettingsRoboTests Bug: 172370409 Change-Id: I23ff3247827dca188e10d0bd8f00c37e2cd0b920 --- core/java/android/provider/Settings.java | 7 +++++++ core/proto/android/providers/settings/secure.proto | 7 ++++++- core/res/res/values/config.xml | 3 +++ core/res/res/values/symbols.xml | 1 + .../android/provider/settings/backup/SecureSettings.java | 1 + .../settings/validators/SecureSettingsValidators.java | 1 + .../android/providers/settings/SettingsProtoDumpUtil.java | 6 ++++++ 7 files changed, 25 insertions(+), 1 deletion(-) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index f6ef8a3d8dae1..a29fcb17b083f 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -5930,6 +5930,13 @@ public final class Settings { */ public static final String ADAPTIVE_SLEEP = "adaptive_sleep"; + /** + * Setting key to indicate whether camera-based autorotate is enabled. + * + * @hide + */ + public static final String CAMERA_AUTOROTATE = "camera_autorotate"; + /** * @deprecated Use {@link android.provider.Settings.Global#DEVELOPMENT_SETTINGS_ENABLED} * instead diff --git a/core/proto/android/providers/settings/secure.proto b/core/proto/android/providers/settings/secure.proto index f5aa17d45fa92..632d372bf7ab8 100644 --- a/core/proto/android/providers/settings/secure.proto +++ b/core/proto/android/providers/settings/secure.proto @@ -518,6 +518,11 @@ message SecureSettingsProto { } optional Search search = 48; + message CameraAutorotate { + optional SettingProto enabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ]; + } + optional CameraAutorotate camera_autorotate = 88; + message SpellChecker { option (android.msg_privacy).dest = DEST_EXPLICIT; @@ -642,5 +647,5 @@ message SecureSettingsProto { // Please insert fields in alphabetical order and group them into messages // if possible (to avoid reaching the method limit). - // Next tag = 88; + // Next tag = 89; } diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 01b8efafa2fd1..5d14328aae324 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -517,6 +517,9 @@ false + + false + 180 diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 815330ff18515..527fab5f3b9b9 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -1881,6 +1881,7 @@ + diff --git a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java index 60620bd70a155..e92591d78e92d 100644 --- a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java +++ b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java @@ -38,6 +38,7 @@ public class SecureSettings { Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, Settings.Secure.ADAPTIVE_SLEEP, + Settings.Secure.CAMERA_AUTOROTATE, Settings.Secure.AUTOFILL_SERVICE, Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE, Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java index 3f462628c7153..ed2b6c92530b2 100644 --- a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java +++ b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java @@ -57,6 +57,7 @@ public class SecureSettingsValidators { VALIDATORS.put( Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(Secure.ADAPTIVE_SLEEP, BOOLEAN_VALIDATOR); + VALIDATORS.put(Secure.CAMERA_AUTOROTATE, BOOLEAN_VALIDATOR); VALIDATORS.put(Secure.AUTOFILL_SERVICE, NULLABLE_COMPONENT_NAME_VALIDATOR); VALIDATORS.put( Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE, diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java index 83ded43b13d42..1ce738ef065cb 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java @@ -1969,6 +1969,12 @@ class SettingsProtoDumpUtil { Settings.Secure.BLUETOOTH_ON_WHILE_DRIVING, SecureSettingsProto.BLUETOOTH_ON_WHILE_DRIVING); + final long smartAutoRotateToken = p.start(SecureSettingsProto.CAMERA_AUTOROTATE); + dumpSetting(s, p, + Settings.Secure.CAMERA_AUTOROTATE, + SecureSettingsProto.CameraAutorotate.ENABLED); + p.end(smartAutoRotateToken); + final long cameraToken = p.start(SecureSettingsProto.CAMERA); dumpSetting(s, p, Settings.Secure.CAMERA_GESTURE_DISABLED,