From 7048af68642ca0ef1e715f4e1538d1f67d1e3b7c Mon Sep 17 00:00:00 2001 From: ryanlwlin Date: Thu, 19 Dec 2019 18:15:57 +0800 Subject: [PATCH] Added key Magnification Mode To support window magnification, we use this key to store magnification mode. Bug: 145780606 Test: SettingsBackupTest Change-Id: Id2e4104b1f9bbf994b83b73a165d87e4fd161413 --- core/java/android/provider/Settings.java | 23 +++++++++++++++++++ .../android/providers/settings/secure.proto | 2 ++ .../settings/backup/SecureSettings.java | 1 + .../validators/SecureSettingsValidators.java | 4 ++++ .../settings/SettingsProtoDumpUtil.java | 3 +++ 5 files changed, 33 insertions(+) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 462627e08520d..b4a58193672ac 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -8473,6 +8473,29 @@ 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. + * + * @see#ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN + * @see#ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW + * @hide + */ + public static final String ACCESSIBILITY_MAGNIFICATION_MODE = + "accessibility_magnification_mode"; + + /** + * Magnification mode value that magnifies whole display. + * @hide + */ + public static final int ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN = 0x1; + + /** + * Magnification mode value that magnifies magnify particular region in a window + * @hide + */ + public static final int ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW = 0x2; + /** * 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 6a1ec6c849c8e..7835016439e03 100644 --- a/core/proto/android/providers/settings/secure.proto +++ b/core/proto/android/providers/settings/secure.proto @@ -75,6 +75,8 @@ 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 + optional SettingProto accessibility_magnification_mode = 34 [ (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 22d843b1dc90a..049b9f0e903e9 100644 --- a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java +++ b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java @@ -159,5 +159,6 @@ public class SecureSettings { Settings.Secure.AWARE_TAP_PAUSE_GESTURE_COUNT, Settings.Secure.AWARE_TAP_PAUSE_TOUCH_COUNT, Settings.Secure.PEOPLE_STRIP, + Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE, }; } diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java index 4b10557e34d93..ed06fa71cff11 100644 --- a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java +++ b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java @@ -239,5 +239,9 @@ public class SecureSettingsValidators { VALIDATORS.put(Secure.DISPLAY_DENSITY_FORCED, NON_NEGATIVE_INTEGER_VALIDATOR); VALIDATORS.put(Secure.TAP_GESTURE, BOOLEAN_VALIDATOR); VALIDATORS.put(Secure.PEOPLE_STRIP, BOOLEAN_VALIDATOR); + VALIDATORS.put(Secure.ACCESSIBILITY_MAGNIFICATION_MODE, + new InclusiveIntegerRangeValidator( + Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN, + Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW)); } } diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java index 016896f52a758..0e3f81b81e02e 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java @@ -1820,6 +1820,9 @@ class SettingsProtoDumpUtil { dumpSetting(s, p, Settings.Secure.ACCESSIBILITY_INTERACTIVE_UI_TIMEOUT_MS, SecureSettingsProto.Accessibility.INTERACTIVE_UI_TIMEOUT_MS); + dumpSetting(s, p, + Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE, + SecureSettingsProto.Accessibility.ACCESSIBILITY_MAGNIFICATION_MODE); p.end(accessibilityToken); dumpSetting(s, p,