diff options
| author | 2022-09-10 08:57:58 +0900 | |
|---|---|---|
| committer | 2022-09-10 08:57:58 +0900 | |
| commit | 89025ff06e71f9e37b4bb6f94e43ff50f246d581 (patch) | |
| tree | c21e9c613784665fc8e3cde2df40dfd6f4e512a9 | |
| parent | 1eaf0fadf2046b644f62bbd502fd9ec2079a14e7 (diff) | |
Fix a background NPE in A11yIME
This is a follow up CL to my previous CL [1], which aimed to clean up
A11yIME without changing any semantics. One thing I overlooked is that
android.accessibilityservice.InputMethod#mStartedInputConnection
can be set to null at any time (on the UI thread) and
InputMethod.SessionImpl#invalidateInput()
needs to gracefully do early-exit as needed.
[1]: I5ff2e804cbcf90828370a0612ff54111130bdff4
c60176c1f315e10c95f3eec0019149d7b7932aa9
Fix: 245973012
Test: atest CtsInputMethodTestCases:AccessibilityInputMethodTest
Test: atest CtsAccessibilityServiceTestCases:AccessibilityInputConnectionTest
Test: atest CtsAccessibilityServiceTestCases:AccessibilityImeTest
Change-Id: I3bacff7772d20660bfdbeff724a0d19b5f0e6fe4
| -rw-r--r-- | core/java/android/accessibilityservice/InputMethod.java | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/core/java/android/accessibilityservice/InputMethod.java b/core/java/android/accessibilityservice/InputMethod.java index 1585f99759cd..93888ef5ba6f 100644 --- a/core/java/android/accessibilityservice/InputMethod.java +++ b/core/java/android/accessibilityservice/InputMethod.java @@ -517,7 +517,8 @@ public class InputMethod { @Override public void invalidateInput(EditorInfo editorInfo, IRemoteAccessibilityInputConnection connection, int sessionId) { - if (!mStartedInputConnection.isSameConnection(connection)) { + if (!mEnabled || mStartedInputConnection == null + || !mStartedInputConnection.isSameConnection(connection)) { // This is not an error, and can be safely ignored. return; } |