diff --git a/core/java/android/view/ImeFocusController.java b/core/java/android/view/ImeFocusController.java index fc8885ba00ca6..4f2b62155c488 100644 --- a/core/java/android/view/ImeFocusController.java +++ b/core/java/android/view/ImeFocusController.java @@ -74,9 +74,10 @@ public final class ImeFocusController { } mHasImeFocus = hasImeFocus; if (mHasImeFocus) { - onPreWindowFocus(true /* hasWindowFocus */, windowAttribute); - onPostWindowFocus(mViewRootImpl.mView.findFocus(), true /* hasWindowFocus */, - windowAttribute); + getImmDelegate().onPreWindowGainedFocus(mViewRootImpl); + final View focusedView = mViewRootImpl.mView.findFocus(); + View viewForWindowFocus = focusedView != null ? focusedView : mViewRootImpl.mView; + getImmDelegate().onPostWindowGainedFocus(viewForWindowFocus, windowAttribute); } }