diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index a08be2af57e83..c61452204d849 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -8864,8 +8864,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 @@ -8886,6 +8886,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 d350d9df37b8c..10253c4ccb4b5 100644 --- a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java +++ b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java @@ -164,6 +164,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 4d33b627f4e20..1676ae067bc07 100644 --- a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java +++ b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java @@ -248,6 +248,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);