diff --git a/core/java/android/view/ImeFocusController.java b/core/java/android/view/ImeFocusController.java index 3fc9f6bcbdeb3..b48b5258237f0 100644 --- a/core/java/android/view/ImeFocusController.java +++ b/core/java/android/view/ImeFocusController.java @@ -54,13 +54,11 @@ public final class ImeFocusController { @NonNull private InputMethodManagerDelegate getImmDelegate() { - InputMethodManagerDelegate delegate = mDelegate; - if (delegate != null) { - return delegate; + if (mDelegate == null) { + mDelegate = mViewRootImpl.mContext.getSystemService( + InputMethodManager.class).getDelegate(); } - delegate = mViewRootImpl.mContext.getSystemService(InputMethodManager.class).getDelegate(); - mDelegate = delegate; - return delegate; + return mDelegate; } /** Called when the view root is moved to a different display. */ 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);