Loading core/java/android/hardware/input/input_framework.aconfig +8 −1 Original line number Diff line number Diff line Loading @@ -141,7 +141,7 @@ flag { flag { name: "keyboard_a11y_shortcut_control" namespace: "input" description: "Adds shortcuts to toggle and control a11y features" description: "Adds shortcuts to toggle and control a11y keyboard features" bug: "373458181" } Loading @@ -165,3 +165,10 @@ flag { description: "Turns three-finger touchpad taps into a customizable shortcut." bug: "365063048" } flag { name: "enable_talkback_and_magnifier_key_gestures" namespace: "input" description: "Adds key gestures for talkback and magnifier" bug: "375277034" } No newline at end of file services/core/java/com/android/server/input/InputGestureManager.java +7 −5 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package com.android.server.input; import static android.hardware.input.InputGestureData.createKeyTrigger; import static com.android.hardware.input.Flags.enableTalkbackAndMagnifierKeyGestures; import static com.android.hardware.input.Flags.keyboardA11yShortcutControl; import static com.android.server.flags.Flags.newBugreportKeyboardShortcut; import static com.android.window.flags.Flags.enableMoveToNextDisplayShortcut; Loading Loading @@ -209,12 +211,12 @@ final class InputGestureManager { KeyGestureEvent.KEY_GESTURE_TYPE_MOVE_TO_NEXT_DISPLAY )); } if (keyboardA11yShortcutControl()) { systemShortcuts.add(createKeyGesture( KeyEvent.KEYCODE_T, if (enableTalkbackAndMagnifierKeyGestures()) { systemShortcuts.add(createKeyGesture(KeyEvent.KEYCODE_T, KeyEvent.META_META_ON | KeyEvent.META_ALT_ON, KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_TALKBACK )); KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_TALKBACK)); } if (keyboardA11yShortcutControl()) { if (InputSettings.isAccessibilityBounceKeysFeatureEnabled()) { systemShortcuts.add(createKeyGesture( KeyEvent.KEYCODE_3, Loading services/core/java/com/android/server/policy/PhoneWindowManager.java +4 −3 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ import static android.view.WindowManagerGlobal.ADD_PERMISSION_DENIED; import static android.view.contentprotection.flags.Flags.createAccessibilityOverlayAppOpEnabled; import static com.android.hardware.input.Flags.emojiAndScreenshotKeycodesAvailable; import static com.android.hardware.input.Flags.enableTalkbackAndMagnifierKeyGestures; import static com.android.hardware.input.Flags.keyboardA11yShortcutControl; import static com.android.hardware.input.Flags.modifierShortcutDump; import static com.android.hardware.input.Flags.useKeyGestureEventHandler; Loading Loading @@ -3612,7 +3613,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } break; case KeyEvent.KEYCODE_T: if (keyboardA11yShortcutControl()) { if (enableTalkbackAndMagnifierKeyGestures()) { if (firstDown && event.isMetaPressed() && event.isAltPressed()) { mTalkbackShortcutController.toggleTalkback(mCurrentUserId, TalkbackShortcutController.ShortcutSource.KEYBOARD); Loading Loading @@ -4112,7 +4113,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { return mDefaultDisplayPolicy.isAwake() && mAccessibilityShortcutController .isAccessibilityShortcutAvailable(false); case KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_TALKBACK: return keyboardA11yShortcutControl(); return enableTalkbackAndMagnifierKeyGestures(); case KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_SLOW_KEYS: return InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled() && keyboardA11yShortcutControl(); Loading Loading @@ -4345,7 +4346,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } return true; case KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_TALKBACK: if (keyboardA11yShortcutControl()) { if (enableTalkbackAndMagnifierKeyGestures()) { if (complete) { mTalkbackShortcutController.toggleTalkback(mCurrentUserId, TalkbackShortcutController.ShortcutSource.KEYBOARD); Loading services/tests/wmtests/src/com/android/server/policy/KeyGestureEventTests.java +2 −2 Original line number Diff line number Diff line Loading @@ -397,7 +397,7 @@ public class KeyGestureEventTests extends ShortcutKeyTestBase { } @Test @EnableFlags(Flags.FLAG_KEYBOARD_A11Y_SHORTCUT_CONTROL) @EnableFlags(Flags.FLAG_ENABLE_TALKBACK_AND_MAGNIFIER_KEY_GESTURES) @DisableFlags(com.android.hardware.input.Flags.FLAG_USE_KEY_GESTURE_EVENT_HANDLER) public void testToggleTalkbackPress() { testShortcutInternal("Meta + Alt + T -> Toggle talkback", Loading Loading @@ -745,7 +745,7 @@ public class KeyGestureEventTests extends ShortcutKeyTestBase { } @Test @EnableFlags(com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_SHORTCUT_CONTROL) @EnableFlags(com.android.hardware.input.Flags.FLAG_ENABLE_TALKBACK_AND_MAGNIFIER_KEY_GESTURES) public void testKeyGestureToggleTalkback() { Assert.assertTrue( sendKeyGestureEventComplete(KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_TALKBACK)); Loading Loading
core/java/android/hardware/input/input_framework.aconfig +8 −1 Original line number Diff line number Diff line Loading @@ -141,7 +141,7 @@ flag { flag { name: "keyboard_a11y_shortcut_control" namespace: "input" description: "Adds shortcuts to toggle and control a11y features" description: "Adds shortcuts to toggle and control a11y keyboard features" bug: "373458181" } Loading @@ -165,3 +165,10 @@ flag { description: "Turns three-finger touchpad taps into a customizable shortcut." bug: "365063048" } flag { name: "enable_talkback_and_magnifier_key_gestures" namespace: "input" description: "Adds key gestures for talkback and magnifier" bug: "375277034" } No newline at end of file
services/core/java/com/android/server/input/InputGestureManager.java +7 −5 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package com.android.server.input; import static android.hardware.input.InputGestureData.createKeyTrigger; import static com.android.hardware.input.Flags.enableTalkbackAndMagnifierKeyGestures; import static com.android.hardware.input.Flags.keyboardA11yShortcutControl; import static com.android.server.flags.Flags.newBugreportKeyboardShortcut; import static com.android.window.flags.Flags.enableMoveToNextDisplayShortcut; Loading Loading @@ -209,12 +211,12 @@ final class InputGestureManager { KeyGestureEvent.KEY_GESTURE_TYPE_MOVE_TO_NEXT_DISPLAY )); } if (keyboardA11yShortcutControl()) { systemShortcuts.add(createKeyGesture( KeyEvent.KEYCODE_T, if (enableTalkbackAndMagnifierKeyGestures()) { systemShortcuts.add(createKeyGesture(KeyEvent.KEYCODE_T, KeyEvent.META_META_ON | KeyEvent.META_ALT_ON, KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_TALKBACK )); KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_TALKBACK)); } if (keyboardA11yShortcutControl()) { if (InputSettings.isAccessibilityBounceKeysFeatureEnabled()) { systemShortcuts.add(createKeyGesture( KeyEvent.KEYCODE_3, Loading
services/core/java/com/android/server/policy/PhoneWindowManager.java +4 −3 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ import static android.view.WindowManagerGlobal.ADD_PERMISSION_DENIED; import static android.view.contentprotection.flags.Flags.createAccessibilityOverlayAppOpEnabled; import static com.android.hardware.input.Flags.emojiAndScreenshotKeycodesAvailable; import static com.android.hardware.input.Flags.enableTalkbackAndMagnifierKeyGestures; import static com.android.hardware.input.Flags.keyboardA11yShortcutControl; import static com.android.hardware.input.Flags.modifierShortcutDump; import static com.android.hardware.input.Flags.useKeyGestureEventHandler; Loading Loading @@ -3612,7 +3613,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } break; case KeyEvent.KEYCODE_T: if (keyboardA11yShortcutControl()) { if (enableTalkbackAndMagnifierKeyGestures()) { if (firstDown && event.isMetaPressed() && event.isAltPressed()) { mTalkbackShortcutController.toggleTalkback(mCurrentUserId, TalkbackShortcutController.ShortcutSource.KEYBOARD); Loading Loading @@ -4112,7 +4113,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { return mDefaultDisplayPolicy.isAwake() && mAccessibilityShortcutController .isAccessibilityShortcutAvailable(false); case KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_TALKBACK: return keyboardA11yShortcutControl(); return enableTalkbackAndMagnifierKeyGestures(); case KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_SLOW_KEYS: return InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled() && keyboardA11yShortcutControl(); Loading Loading @@ -4345,7 +4346,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } return true; case KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_TALKBACK: if (keyboardA11yShortcutControl()) { if (enableTalkbackAndMagnifierKeyGestures()) { if (complete) { mTalkbackShortcutController.toggleTalkback(mCurrentUserId, TalkbackShortcutController.ShortcutSource.KEYBOARD); Loading
services/tests/wmtests/src/com/android/server/policy/KeyGestureEventTests.java +2 −2 Original line number Diff line number Diff line Loading @@ -397,7 +397,7 @@ public class KeyGestureEventTests extends ShortcutKeyTestBase { } @Test @EnableFlags(Flags.FLAG_KEYBOARD_A11Y_SHORTCUT_CONTROL) @EnableFlags(Flags.FLAG_ENABLE_TALKBACK_AND_MAGNIFIER_KEY_GESTURES) @DisableFlags(com.android.hardware.input.Flags.FLAG_USE_KEY_GESTURE_EVENT_HANDLER) public void testToggleTalkbackPress() { testShortcutInternal("Meta + Alt + T -> Toggle talkback", Loading Loading @@ -745,7 +745,7 @@ public class KeyGestureEventTests extends ShortcutKeyTestBase { } @Test @EnableFlags(com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_SHORTCUT_CONTROL) @EnableFlags(com.android.hardware.input.Flags.FLAG_ENABLE_TALKBACK_AND_MAGNIFIER_KEY_GESTURES) public void testKeyGestureToggleTalkback() { Assert.assertTrue( sendKeyGestureEventComplete(KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_TALKBACK)); Loading