diff options
| -rw-r--r-- | core/api/test-current.txt | 2 | ||||
| -rw-r--r-- | core/java/android/hardware/input/InputSettings.java | 62 |
2 files changed, 64 insertions, 0 deletions
diff --git a/core/api/test-current.txt b/core/api/test-current.txt index 2ca9f2e8cdd6..44c4ab4e1b57 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -1796,8 +1796,10 @@ package android.hardware.input { public class InputSettings { method @FlaggedApi("com.android.hardware.input.keyboard_a11y_bounce_keys_flag") public static int getAccessibilityBounceKeysThreshold(@NonNull android.content.Context); method @FlaggedApi("com.android.hardware.input.keyboard_a11y_slow_keys_flag") public static int getAccessibilitySlowKeysThreshold(@NonNull android.content.Context); + method @FlaggedApi("com.android.hardware.input.keyboard_a11y_mouse_keys") public static boolean isAccessibilityMouseKeysEnabled(@NonNull android.content.Context); method @FlaggedApi("com.android.hardware.input.keyboard_a11y_sticky_keys_flag") public static boolean isAccessibilityStickyKeysEnabled(@NonNull android.content.Context); method @FlaggedApi("com.android.hardware.input.keyboard_a11y_bounce_keys_flag") @RequiresPermission(android.Manifest.permission.WRITE_SETTINGS) public static void setAccessibilityBounceKeysThreshold(@NonNull android.content.Context, int); + method @FlaggedApi("com.android.hardware.input.keyboard_a11y_mouse_keys") @RequiresPermission(android.Manifest.permission.WRITE_SETTINGS) public static void setAccessibilityMouseKeysEnabled(@NonNull android.content.Context, boolean); method @FlaggedApi("com.android.hardware.input.keyboard_a11y_slow_keys_flag") @RequiresPermission(android.Manifest.permission.WRITE_SETTINGS) public static void setAccessibilitySlowKeysThreshold(@NonNull android.content.Context, int); method @FlaggedApi("com.android.hardware.input.keyboard_a11y_sticky_keys_flag") @RequiresPermission(android.Manifest.permission.WRITE_SETTINGS) public static void setAccessibilityStickyKeysEnabled(@NonNull android.content.Context, boolean); method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public static void setMaximumObscuringOpacityForTouch(@NonNull android.content.Context, @FloatRange(from=0, to=1) float); diff --git a/core/java/android/hardware/input/InputSettings.java b/core/java/android/hardware/input/InputSettings.java index 4c5ebe786b24..bec1c9ef8059 100644 --- a/core/java/android/hardware/input/InputSettings.java +++ b/core/java/android/hardware/input/InputSettings.java @@ -17,11 +17,13 @@ package android.hardware.input; import static com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_BOUNCE_KEYS_FLAG; +import static com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_MOUSE_KEYS; import static com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_SLOW_KEYS_FLAG; import static com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_STICKY_KEYS_FLAG; import static com.android.hardware.input.Flags.keyboardA11yBounceKeysFlag; import static com.android.hardware.input.Flags.keyboardA11ySlowKeysFlag; import static com.android.hardware.input.Flags.keyboardA11yStickyKeysFlag; +import static com.android.hardware.input.Flags.keyboardA11yMouseKeys; import static com.android.hardware.input.Flags.touchpadTapDragging; import static com.android.input.flags.Flags.enableInputFilterRustImpl; @@ -662,4 +664,64 @@ public class InputSettings { UserHandle.USER_CURRENT); } + /** + * Whether Accessibility mouse keys feature flag is enabled. + * + * <p> + * ‘Mouse keys’ is an accessibility feature to aid users who have physical disabilities, + * that allows the user to use the keys on the keyboard to control the mouse pointer and + * other perform other mouse functionality. + * </p> + * + * @hide + */ + public static boolean isAccessibilityMouseKeysFeatureFlagEnabled() { + return keyboardA11yMouseKeys(); + } + + /** + * Whether Accessibility mouse keys is enabled. + * + * <p> + * ‘Mouse keys’ is an accessibility feature to aid users who have physical disabilities, + * that allows the user to use the keys on the keyboard to control the mouse pointer and + * other perform other mouse functionality. + * </p> + * + * @hide + */ + @TestApi + @FlaggedApi(FLAG_KEYBOARD_A11Y_MOUSE_KEYS) + public static boolean isAccessibilityMouseKeysEnabled(@NonNull Context context) { + if (!isAccessibilityMouseKeysFeatureFlagEnabled()) { + return false; + } + return Settings.Secure.getIntForUser(context.getContentResolver(), + Settings.Secure.ACCESSIBILITY_MOUSE_KEYS_ENABLED, 0, UserHandle.USER_CURRENT) + != 0; + } + + /** + * Set Accessibility mouse keys feature enabled/disabled. + * + * <p> + * ‘Mouse keys’ is an accessibility feature to aid users who have physical disabilities, + * that allows the user to use the keys on the keyboard to control the mouse pointer and + * other perform other mouse functionality. + * </p> + * + * @hide + */ + @TestApi + @FlaggedApi(FLAG_KEYBOARD_A11Y_MOUSE_KEYS) + @RequiresPermission(Manifest.permission.WRITE_SETTINGS) + public static void setAccessibilityMouseKeysEnabled(@NonNull Context context, + boolean enabled) { + if (!isAccessibilityMouseKeysFeatureFlagEnabled()) { + return; + } + Settings.Secure.putIntForUser(context.getContentResolver(), + Settings.Secure.ACCESSIBILITY_MOUSE_KEYS_ENABLED, enabled ? 1 : 0, + UserHandle.USER_CURRENT); + } } |