diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java index af95b4f54eb42..5318848d6a17d 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java @@ -4360,7 +4360,8 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub im.registerInputDeviceListener(new InputManager.InputDeviceListener() { @Override public void onInputDeviceAdded(int deviceId) { - if (isStylusDevice(im.getInputDevice(deviceId))) { + InputDevice device = im.getInputDevice(deviceId); + if (device != null && isStylusDevice(device)) { add(deviceId); } } @@ -4372,7 +4373,11 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub @Override public void onInputDeviceChanged(int deviceId) { - if (isStylusDevice(im.getInputDevice(deviceId))) { + InputDevice device = im.getInputDevice(deviceId); + if (device == null) { + return; + } + if (isStylusDevice(device)) { add(deviceId); } else { remove(deviceId); @@ -4471,8 +4476,8 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub if (!im.isInputDeviceEnabled(id)) { continue; } - InputDevice inputDevice = im.getInputDevice(id); - if (isStylusDevice(inputDevice)) { + InputDevice device = im.getInputDevice(id); + if (device != null && isStylusDevice(device)) { stylusIds.add(id); } }