diff options
author | Tyler Freeman <fuego@google.com> | 2023-08-29 13:20:02 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-10-19 00:08:20 +0000 |
commit | 35a86388147937889e55fb847f7b0f27ef1e051c (patch) | |
tree | b1fbc9c8b8be752472b039d7b25762c88559c80f | |
parent | e38d01f4d5505e08f28e3e1fc22cc154b90e5e11 (diff) | |
download | base-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.java | 8 |
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); } |