Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1c668cf2 authored by Yabin Huang's avatar Yabin Huang Committed by Android (Google) Code Review
Browse files

Merge "Update IMMI#onImeParentChanged() to take the display ID" into main

parents 8cae90d7 0c09232b
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -167,8 +167,10 @@ public abstract class InputMethodManagerInternal {

    /**
     * Indicates that the IME window has re-parented to the new target when the IME control changed.
     *
     * @param displayId the display hosting the IME window
     */
    public abstract void onImeParentChanged();
    public abstract void onImeParentChanged(int displayId);

    /**
     * Destroys the IME surface for the given display.
@@ -300,7 +302,7 @@ public abstract class InputMethodManagerInternal {
                }

                @Override
                public void onImeParentChanged() {
                public void onImeParentChanged(int displayId) {
                }

                @Override
+1 −1
Original line number Diff line number Diff line
@@ -5671,7 +5671,7 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub
        }

        @Override
        public void onImeParentChanged() {
        public void onImeParentChanged(int displayId) {
            synchronized (ImfLock.class) {
                // Hide the IME method menu only when the IME surface parent is changed by the
                // input target changed, in case seeing the dialog dismiss flickering during
+2 −1
Original line number Diff line number Diff line
@@ -4794,7 +4794,8 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
            assignRelativeLayerForIme(getSyncTransaction(), true /* forceUpdate */);
            scheduleAnimation();

            mWmService.mH.post(() -> InputMethodManagerInternal.get().onImeParentChanged());
            mWmService.mH.post(
                    () -> InputMethodManagerInternal.get().onImeParentChanged(getDisplayId()));
        } else if (mImeControlTarget != null && mImeControlTarget == mImeLayeringTarget) {
            // Even if the IME surface parent is not changed, the layer target belonging to the
            // parent may have changes. Then attempt to reassign if the IME control target is