From e6a20cb2ba81df5a9aaffaefca43cd58d2e4b780 Mon Sep 17 00:00:00 2001 From: Bill Lin Date: Fri, 16 Apr 2021 11:45:52 +0800 Subject: [PATCH] 2/ Implement Shortcut for One Handed mode feature - Define ONE_HANDED_COMPONENT_NAME - Define one handed mode string - Add one handed mode temp drawable - Add ToggleAllowListingFeatureTarget for OHM - Add ONE_HANDED_COMPONEMENT_NAME to featuresMap Test: manual enable shortcut of one handed mode Bug: 182425480 Change-Id: I5993cd8dbd3925efeebb9b75bb10d423c9a02601 --- .../AccessibilityShortcutController.java | 9 ++++++- .../dialog/AccessibilityTargetHelper.java | 12 +++++++++ .../drawable/ic_accessibility_one_handed.xml | 25 ++++++++++++++++++ ...ic_accessibility_one_handed_foreground.xml | 26 +++++++++++++++++++ core/res/res/values/strings.xml | 3 +++ core/res/res/values/symbols.xml | 3 +++ 6 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 core/res/res/drawable/ic_accessibility_one_handed.xml create mode 100644 core/res/res/drawable/ic_accessibility_one_handed_foreground.xml diff --git a/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java b/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java index 2b4e09d668517..83def0cc1fd6a 100644 --- a/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java +++ b/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java @@ -80,6 +80,8 @@ public class AccessibilityShortcutController { "com.android.server.accessibility.MagnificationController"; public static final ComponentName MAGNIFICATION_COMPONENT_NAME = new ComponentName("com.android.server.accessibility", "Magnification"); + public static final ComponentName ONE_HANDED_COMPONENT_NAME = + new ComponentName("com.android.server.accessibility", "OneHandedMode"); public static final ComponentName REDUCE_BRIGHT_COLORS_COMPONENT_NAME = new ComponentName("com.android.server.accessibility", "ReduceBrightColors"); @@ -117,7 +119,7 @@ public class AccessibilityShortcutController { public static Map getFrameworkShortcutFeaturesMap() { if (sFrameworkShortcutFeaturesMap == null) { - Map featuresMap = new ArrayMap<>(2); + Map featuresMap = new ArrayMap<>(4); featuresMap.put(COLOR_INVERSION_COMPONENT_NAME, new ToggleableFrameworkFeatureInfo( Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED, @@ -128,6 +130,11 @@ public class AccessibilityShortcutController { Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, "1" /* Value to enable */, "0" /* Value to disable */, R.string.color_correction_feature_name)); + featuresMap.put(ONE_HANDED_COMPONENT_NAME, + new ToggleableFrameworkFeatureInfo( + Settings.Secure.ONE_HANDED_MODE_ACTIVATED, + "1" /* Value to enable */, "0" /* Value to disable */, + R.string.one_handed_mode_feature_name)); featuresMap.put(REDUCE_BRIGHT_COLORS_COMPONENT_NAME, new ToggleableFrameworkFeatureInfo( Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, diff --git a/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java b/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java index f2d91ba308426..4a20ad0f33f5e 100644 --- a/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java +++ b/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java @@ -21,6 +21,7 @@ import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_BUTT import static com.android.internal.accessibility.AccessibilityShortcutController.COLOR_INVERSION_COMPONENT_NAME; import static com.android.internal.accessibility.AccessibilityShortcutController.DALTONIZER_COMPONENT_NAME; import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME; +import static com.android.internal.accessibility.AccessibilityShortcutController.ONE_HANDED_COMPONENT_NAME; import static com.android.internal.accessibility.AccessibilityShortcutController.REDUCE_BRIGHT_COLORS_COMPONENT_NAME; import static com.android.internal.accessibility.util.AccessibilityUtils.getAccessibilityServiceFragmentType; import static com.android.internal.accessibility.util.ShortcutUtils.isShortcutContained; @@ -230,6 +231,16 @@ public final class AccessibilityTargetHelper { context.getDrawable(R.drawable.ic_accessibility_color_inversion), Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED); + final ToggleAllowListingFeatureTarget oneHandedMode = + new ToggleAllowListingFeatureTarget(context, + shortcutType, + isShortcutContained(context, shortcutType, + ONE_HANDED_COMPONENT_NAME.flattenToString()), + ONE_HANDED_COMPONENT_NAME.flattenToString(), + context.getString(R.string.one_handed_mode_feature_name), + context.getDrawable(R.drawable.ic_accessibility_one_handed), + Settings.Secure.ONE_HANDED_MODE_ACTIVATED); + final ToggleAllowListingFeatureTarget reduceBrightColors = new ToggleAllowListingFeatureTarget(context, shortcutType, @@ -243,6 +254,7 @@ public final class AccessibilityTargetHelper { targets.add(magnification); targets.add(daltonizer); targets.add(colorInversion); + targets.add(oneHandedMode); targets.add(reduceBrightColors); return targets; diff --git a/core/res/res/drawable/ic_accessibility_one_handed.xml b/core/res/res/drawable/ic_accessibility_one_handed.xml new file mode 100644 index 0000000000000..0a469ba731eec --- /dev/null +++ b/core/res/res/drawable/ic_accessibility_one_handed.xml @@ -0,0 +1,25 @@ + + + + + + + + + \ No newline at end of file diff --git a/core/res/res/drawable/ic_accessibility_one_handed_foreground.xml b/core/res/res/drawable/ic_accessibility_one_handed_foreground.xml new file mode 100644 index 0000000000000..18e56187efb33 --- /dev/null +++ b/core/res/res/drawable/ic_accessibility_one_handed_foreground.xml @@ -0,0 +1,26 @@ + + + + + + + \ No newline at end of file diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 270b98ebebe36..94baee41306d0 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -4636,6 +4636,9 @@ shown in the warning dialog about the accessibility shortcut. --> Color Correction + + One-Handed mode + Extra dim diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 3fec918f7ac05..c48c53a52edfd 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -3409,9 +3409,12 @@ + + +