From 1d120319ba5cb8383b9a2b0c1b2440ad0303ec43 Mon Sep 17 00:00:00 2001 From: Tyler Freeman Date: Wed, 25 Jan 2023 01:04:46 +0000 Subject: [PATCH] feat(#AlwaysOnMagnifier): add Setting for enabling Always On Magnification Bug: b/265086261 Test: manual Change-Id: I1b2d5797b9c6e7a2fe4349bc780668d0d226693b --- core/java/android/provider/Settings.java | 9 +++++++++ core/proto/android/providers/settings/secure.proto | 1 + .../android/provider/settings/backup/SecureSettings.java | 1 + .../settings/validators/SecureSettingsValidators.java | 1 + .../providers/settings/SettingsProtoDumpUtil.java | 4 ++++ 5 files changed, 16 insertions(+) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 190b73879f5cd..1a81ac2454389 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -10955,6 +10955,15 @@ public final class Settings { @TestApi public static final int ACCESSIBILITY_MAGNIFICATION_MODE_ALL = 0x3; + /** + * Whether the magnification always on feature is enabled. If true, the magnifier will not + * deactivate on Activity transitions; it will only zoom out to 100%. + * + * @hide + */ + public static final String ACCESSIBILITY_MAGNIFICATION_ALWAYS_ON_ENABLED = + "accessibility_magnification_always_on_enabled"; + /** * Whether the following typing focus feature for magnification is enabled. * @hide diff --git a/core/proto/android/providers/settings/secure.proto b/core/proto/android/providers/settings/secure.proto index e6f942e49565a..2d4d0e44f715f 100644 --- a/core/proto/android/providers/settings/secure.proto +++ b/core/proto/android/providers/settings/secure.proto @@ -89,6 +89,7 @@ message SecureSettingsProto { // Setting for accessibility magnification for following typing. optional SettingProto accessibility_magnification_follow_typing_enabled = 43 [ (android.privacy).dest = DEST_AUTOMATIC ]; optional SettingProto contrast_level = 44 [ (android.privacy).dest = DEST_AUTOMATIC ]; + optional SettingProto accessibility_magnification_always_on_enabled = 45 [ (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 90874bbacb0b0..ca0bd3b57832d 100644 --- a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java +++ b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java @@ -210,6 +210,7 @@ public class SecureSettings { Settings.Secure.ACCESSIBILITY_FLOATING_MENU_ICON_TYPE, Settings.Secure.ACCESSIBILITY_FLOATING_MENU_OPACITY, Settings.Secure.ACCESSIBILITY_FLOATING_MENU_FADE_ENABLED, + Settings.Secure.ACCESSIBILITY_MAGNIFICATION_ALWAYS_ON_ENABLED, Settings.Secure.ODI_CAPTIONS_VOLUME_UI_ENABLED, Settings.Secure.NOTIFICATION_BUBBLES, Settings.Secure.LOCATION_TIME_ZONE_DETECTION_ENABLED, diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java index 62f4c412506a9..61578ee32397b 100644 --- a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java +++ b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java @@ -295,6 +295,7 @@ public class SecureSettingsValidators { Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN, Secure.ACCESSIBILITY_MAGNIFICATION_MODE_ALL)); VALIDATORS.put(Secure.ACCESSIBILITY_MAGNIFICATION_FOLLOW_TYPING_ENABLED, BOOLEAN_VALIDATOR); + VALIDATORS.put(Secure.ACCESSIBILITY_MAGNIFICATION_ALWAYS_ON_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put( Secure.ACCESSIBILITY_BUTTON_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 8d4a35dc0d883..9d2c35a430220 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java @@ -1828,6 +1828,10 @@ class SettingsProtoDumpUtil { Settings.Secure.ACCESSIBILITY_MAGNIFICATION_FOLLOW_TYPING_ENABLED, SecureSettingsProto.Accessibility .ACCESSIBILITY_MAGNIFICATION_FOLLOW_TYPING_ENABLED); + dumpSetting(s, p, + Settings.Secure.ACCESSIBILITY_MAGNIFICATION_ALWAYS_ON_ENABLED, + SecureSettingsProto.Accessibility + .ACCESSIBILITY_MAGNIFICATION_ALWAYS_ON_ENABLED); p.end(accessibilityToken); final long adaptiveSleepToken = p.start(SecureSettingsProto.ADAPTIVE_SLEEP);