From 107035849e9f28c7ba96af0cb1caaa7bed80fd76 Mon Sep 17 00:00:00 2001 From: Nikolas Havrikov Date: Fri, 18 Feb 2022 14:33:01 +0100 Subject: [PATCH] Fix showSoftInput crashing when no IME is enabled This CL adds a shortcut for bindCurrentMethod in InputMethodBindingController to return NO_IME instead of crashing in the rare case when no IME is enabled in the system. Bug: 220125769 Test: atest InputMethodServiceTest#testShowSoftInput_whenAllImesDisabled Change-Id: I7da6ed7f2b80331c469751b7091c340422df40a8 --- .../server/inputmethod/InputMethodBindingController.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/services/core/java/com/android/server/inputmethod/InputMethodBindingController.java b/services/core/java/com/android/server/inputmethod/InputMethodBindingController.java index b2f500a59ba96..d2d80ffde5328 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodBindingController.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodBindingController.java @@ -408,6 +408,11 @@ final class InputMethodBindingController { @GuardedBy("ImfLock.class") @NonNull InputBindResult bindCurrentMethod() { + if (mSelectedMethodId == null) { + Slog.e(TAG, "mSelectedMethodId is null!"); + return InputBindResult.NO_IME; + } + InputMethodInfo info = mMethodMap.get(mSelectedMethodId); if (info == null) { throw new IllegalArgumentException("Unknown id: " + mSelectedMethodId);