diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index d97244a2b9d0e..2992076dcbc27 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -8514,6 +8514,12 @@ public final class Settings { public static final String SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED = "swipe_bottom_to_notification_enabled"; + /** + * Controls whether One-Handed mode is currently activated. + * @hide + */ + public static final String ONE_HANDED_MODE_ACTIVATED = "one_handed_mode_activated"; + /** * For user preference if One-Handed Mode enabled. * @hide diff --git a/core/proto/android/providers/settings/secure.proto b/core/proto/android/providers/settings/secure.proto index ae6dcfdc2817b..1bba12ff7fa6a 100644 --- a/core/proto/android/providers/settings/secure.proto +++ b/core/proto/android/providers/settings/secure.proto @@ -430,6 +430,7 @@ message SecureSettingsProto { optional SettingProto one_handed_mode_enabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ]; optional SettingProto one_handed_mode_timeout = 2 [ (android.privacy).dest = DEST_AUTOMATIC ]; optional SettingProto taps_app_to_exit = 3 [ (android.privacy).dest = DEST_AUTOMATIC ]; + optional SettingProto one_handed_mode_activated = 4 [ (android.privacy).dest = DEST_AUTOMATIC ]; } optional OneHanded onehanded = 80; diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml index fbb84fdfcedcc..ccbcb8920de37 100644 --- a/packages/SettingsProvider/res/values/defaults.xml +++ b/packages/SettingsProvider/res/values/defaults.xml @@ -256,4 +256,7 @@ 1 + + false + diff --git a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java index 72fb23797f0dd..1cfdff8e24ed2 100644 --- a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java +++ b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java @@ -173,6 +173,7 @@ public class SecureSettings { Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE, Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS, Settings.Secure.ACCESSIBILITY_MAGNIFICATION_CAPABILITY, + Settings.Secure.ONE_HANDED_MODE_ACTIVATED, Settings.Secure.ONE_HANDED_MODE_ENABLED, Settings.Secure.ONE_HANDED_MODE_TIMEOUT, Settings.Secure.TAPS_APP_TO_EXIT, diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java index 4872aa4820fff..36f5dba613557 100644 --- a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java +++ b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java @@ -262,6 +262,7 @@ public class SecureSettingsValidators { VALIDATORS.put( Secure.ACCESSIBILITY_BUTTON_TARGETS, ACCESSIBILITY_SHORTCUT_TARGET_LIST_VALIDATOR); + VALIDATORS.put(Secure.ONE_HANDED_MODE_ACTIVATED, BOOLEAN_VALIDATOR); VALIDATORS.put(Secure.ONE_HANDED_MODE_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(Secure.ONE_HANDED_MODE_TIMEOUT, ANY_INTEGER_VALIDATOR); VALIDATORS.put(Secure.TAPS_APP_TO_EXIT, BOOLEAN_VALIDATOR); diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java index 2e90d369a8838..941f47f525510 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -3401,7 +3401,7 @@ public class SettingsProvider extends ContentProvider { } private final class UpgradeController { - private static final int SETTINGS_VERSION = 201; + private static final int SETTINGS_VERSION = 202; private final int mUserId; @@ -4959,6 +4959,22 @@ public class SettingsProvider extends ContentProvider { currentVersion = 201; } + if (currentVersion == 201) { + // Version 201: Set the default value for Secure Settings: + final SettingsState secureSettings = getSecureSettingsLocked(userId); + final Setting oneHandedModeActivated = secureSettings.getSettingLocked( + Secure.ONE_HANDED_MODE_ACTIVATED); + if (oneHandedModeActivated.isNull()) { + final boolean defOneHandedModeActivated = getContext().getResources() + .getBoolean(R.bool.def_one_handed_mode_activated); + secureSettings.insertSettingLocked( + Secure.ONE_HANDED_MODE_ACTIVATED, + defOneHandedModeActivated ? "1" : "0", null, true, + SettingsState.SYSTEM_PACKAGE_NAME); + } + currentVersion = 202; + } + // vXXX: Add new settings above this point. if (currentVersion != newVersion) {