summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ameer Armaly <aarmaly@google.com> 2024-04-29 22:20:47 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-04-29 22:20:47 +0000
commit1879c01031b54b29cd15def541063f5a3ba9e498 (patch)
tree31d3ee3f0a6c5d59aa99329049002d2f91a630cd
parente7d03a3683b1fbc6ebb9efcc6a4401399d6037a0 (diff)
parenta2455364499033c517fb02c675febf7b5c69a501 (diff)
Merge "Fix screenshot shortcut when accessibility is enabled." into main
-rw-r--r--services/accessibility/accessibility.aconfig10
-rw-r--r--services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java15
2 files changed, 23 insertions, 2 deletions
diff --git a/services/accessibility/accessibility.aconfig b/services/accessibility/accessibility.aconfig
index 0448f6df1fb3..e66fe1b9452c 100644
--- a/services/accessibility/accessibility.aconfig
+++ b/services/accessibility/accessibility.aconfig
@@ -49,6 +49,16 @@ flag {
}
flag {
+ name: "do_not_reset_key_event_state"
+ namespace: "accessibility"
+ description: "Don't reset the event stream state when receiving an event without policy flag FLAG_PASS_TO_USER. Just pass it through the pipeline."
+ bug: "331900630"
+ metadata {
+ purpose: PURPOSE_BUGFIX
+ }
+}
+
+flag {
name: "enable_a11y_checker_logging"
namespace: "accessibility"
description: "Whether to identify and log app a11y issues."
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
index 54e545d6d73a..5fb60e75cf85 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
@@ -347,8 +347,13 @@ class AccessibilityInputFilter extends InputFilter implements EventStreamTransfo
final int eventSource = event.getSource();
final int displayId = event.getDisplayId();
if ((policyFlags & WindowManagerPolicy.FLAG_PASS_TO_USER) == 0) {
- state.reset();
- clearEventStreamHandler(displayId, eventSource);
+ if (!Flags.doNotResetKeyEventState()) {
+ state.reset();
+ clearEventStreamHandler(displayId, eventSource);
+ }
+ if (DEBUG) {
+ Slog.d(TAG, "Not processing event " + event);
+ }
super.onInputEvent(event, policyFlags);
return;
}
@@ -503,9 +508,15 @@ class AccessibilityInputFilter extends InputFilter implements EventStreamTransfo
private void processKeyEvent(EventStreamState state, KeyEvent event, int policyFlags) {
if (!state.shouldProcessKeyEvent(event)) {
+ if (DEBUG) {
+ Slog.d(TAG, "processKeyEvent: not processing: " + event);
+ }
super.onInputEvent(event, policyFlags);
return;
}
+ if (DEBUG) {
+ Slog.d(TAG, "processKeyEvent: " + event);
+ }
// Since the display id of KeyEvent always would be -1 and there is only one
// KeyboardInterceptor for all display, pass KeyEvent to the mEventHandler of
// DEFAULT_DISPLAY to handle.