summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Freeman <fuego@google.com>2023-08-29 13:20:02 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-10-19 00:08:20 +0000
commit35a86388147937889e55fb847f7b0f27ef1e051c (patch)
treeb1fbc9c8b8be752472b039d7b25762c88559c80f
parente38d01f4d5505e08f28e3e1fc22cc154b90e5e11 (diff)
downloadbase-35a86388147937889e55fb847f7b0f27ef1e051c.tar.gz
fix(magnifier): avoid crash when smashing magnifier shortcut button repeatedly
This avoids a race condition where we start receiving events and trying to send them to the input filter before it's been installed. Fix: 290271948 Test: manual: 1. Turn on magnification shortcut button 2. Tap it repeatedly quickly for like 30 seconds 3. Should not crash. (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:f509803cad6652c79871bb0a7b509ba2d1054b67) (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:6bf1032b01bbbe6956623ae501f96d9964d0e39b) Merged-In: I24f0eafb2479ac7427ba28077e45ba26a9127cc8 Change-Id: I24f0eafb2479ac7427ba28077e45ba26a9127cc8
-rw-r--r--services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java8
1 files changed, 8 insertions, 0 deletions
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
index 8e7d27795c07..2519f4e7f3e3 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
@@ -388,11 +388,19 @@ class AccessibilityInputFilter extends InputFilter implements EventStreamTransfo
@Override
public void onMotionEvent(MotionEvent transformedEvent, MotionEvent rawEvent,
int policyFlags) {
+ if (!mInstalled) {
+ Slog.w(TAG, "onMotionEvent called before input filter installed!");
+ return;
+ }
sendInputEvent(transformedEvent, policyFlags);
}
@Override
public void onKeyEvent(KeyEvent event, int policyFlags) {
+ if (!mInstalled) {
+ Slog.w(TAG, "onKeyEvent called before input filter installed!");
+ return;
+ }
sendInputEvent(event, policyFlags);
}