diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index fdce49cfcb3b2..aa51b69a8b2d2 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -8867,8 +8867,8 @@ public final class Settings { public static final String WINDOW_MAGNIFICATION = "window_magnification"; /** - * Controls magnification mode when magnification is enabled via a system-wide - * triple tap gesture or the accessibility shortcut. + * Controls magnification mode when magnification is enabled via a system-wide triple tap + * gesture or the accessibility shortcut. * * @see#ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN * @see#ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW @@ -8889,6 +8889,25 @@ public final class Settings { */ public static final int ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW = 0x2; + /** + * Magnification mode value that is capable of magnifying whole display and particular + * region in a window. + * @hide + */ + public static final int ACCESSIBILITY_MAGNIFICATION_MODE_ALL = 0x3; + + /** + * Controls magnification capability. Accessibility magnification is capable of at least one + * of the magnification modes. + * + * @see#ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN + * @see#ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW + * @see#ACCESSIBILITY_MAGNIFICATION_MODE_ALL + * @hide + */ + public static final String ACCESSIBILITY_MAGNIFICATION_CAPABILITY = + "accessibility_magnification_capability"; + /** * Keys we no longer back up under the current schema, but want to continue to * process when restoring historical backup datasets. diff --git a/core/proto/android/providers/settings/secure.proto b/core/proto/android/providers/settings/secure.proto index a3313b21131dd..c7f49b9d0936f 100644 --- a/core/proto/android/providers/settings/secure.proto +++ b/core/proto/android/providers/settings/secure.proto @@ -75,9 +75,11 @@ message SecureSettingsProto { // Settings for accessibility timeout optional SettingProto non_interactive_ui_timeout_ms = 32 [ (android.privacy).dest = DEST_AUTOMATIC ]; optional SettingProto interactive_ui_timeout_ms = 33 [ (android.privacy).dest = DEST_AUTOMATIC ]; - // Settings for magnification mode + // Settings for accessibility magnification. optional SettingProto accessibility_magnification_mode = 34 [ (android.privacy).dest = DEST_AUTOMATIC ]; - optional SettingProto button_long_press_targets = 35 [ (android.privacy).dest = DEST_AUTOMATIC ]; + optional SettingProto accessibility_magnification_capability = 35 [ (android.privacy).dest = DEST_AUTOMATIC ]; + optional SettingProto button_long_press_targets = 36 [ (android.privacy).dest = DEST_AUTOMATIC ]; + } optional Accessibility accessibility = 2; diff --git a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java index 8fa98c85fc330..4dd7186154f4e 100644 --- a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java +++ b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java @@ -162,6 +162,7 @@ public class SecureSettings { Settings.Secure.AWARE_TAP_PAUSE_TOUCH_COUNT, Settings.Secure.PEOPLE_STRIP, Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE, + Settings.Secure.ACCESSIBILITY_MAGNIFICATION_CAPABILITY, Settings.Secure.ACCESSIBILITY_BUTTON_LONG_PRESS_TARGETS, }; } diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java index 75c5f95818203..4442779755b78 100644 --- a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java +++ b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java @@ -245,6 +245,10 @@ public class SecureSettingsValidators { new InclusiveIntegerRangeValidator( Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN, Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW)); + VALIDATORS.put(Secure.ACCESSIBILITY_MAGNIFICATION_CAPABILITY, + new InclusiveIntegerRangeValidator( + Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN, + Secure.ACCESSIBILITY_MAGNIFICATION_MODE_ALL)); VALIDATORS.put( Secure.ACCESSIBILITY_BUTTON_LONG_PRESS_TARGETS, ACCESSIBILITY_SHORTCUT_TARGET_LIST_VALIDATOR); diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java index af74121a11c98..cd5271e0eff87 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java @@ -1813,6 +1813,9 @@ class SettingsProtoDumpUtil { dumpSetting(s, p, Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE, SecureSettingsProto.Accessibility.ACCESSIBILITY_MAGNIFICATION_MODE); + dumpSetting(s, p, + Settings.Secure.ACCESSIBILITY_MAGNIFICATION_CAPABILITY, + SecureSettingsProto.Accessibility.ACCESSIBILITY_MAGNIFICATION_CAPABILITY); dumpSetting(s, p, Settings.Secure.ACCESSIBILITY_BUTTON_LONG_PRESS_TARGETS, SecureSettingsProto.Accessibility.BUTTON_LONG_PRESS_TARGETS);