From 816e991f386ac6a385d4ab0f48cd85f4dbff4acb Mon Sep 17 00:00:00 2001 From: Tyler Freeman Date: Tue, 29 Aug 2023 13:20:02 +0000 Subject: 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) Merged-In: I24f0eafb2479ac7427ba28077e45ba26a9127cc8 Change-Id: I24f0eafb2479ac7427ba28077e45ba26a9127cc8 --- .../android/server/accessibility/AccessibilityInputFilter.java | 8 ++++++++ 1 file changed, 8 insertions(+) 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); } -- cgit v1.2.3-59-g8ed1b