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

Commit e15666d7 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Deliver hideInsets when target is removed" into rvc-dev am: bb6c1e09 am: 553b71a5

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12011265

Change-Id: If0084cc68f95aa0c8bdde84920977c4a2d6c685a
parents c6fe33fa 553b71a5
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -757,6 +757,12 @@
      "group": "WM_DEBUG_BOOT",
      "at": "com\/android\/server\/wm\/WindowManagerService.java"
    },
    "-547111355": {
      "message": "hideIme Control target: %s ",
      "level": "DEBUG",
      "group": "WM_DEBUG_IME",
      "at": "com\/android\/server\/wm\/WindowManagerService.java"
    },
    "-545190927": {
      "message": "<<< CLOSE TRANSACTION animate",
      "level": "INFO",
@@ -1087,6 +1093,12 @@
      "group": "WM_ERROR",
      "at": "com\/android\/server\/wm\/WindowManagerService.java"
    },
    "95216706": {
      "message": "hideIme target: %s ",
      "level": "DEBUG",
      "group": "WM_DEBUG_IME",
      "at": "com\/android\/server\/wm\/WindowManagerService.java"
    },
    "95281111": {
      "message": "Attempted to get IME flag of a display that does not exist: %d",
      "level": "WARN",
+3 −1
Original line number Diff line number Diff line
@@ -4047,7 +4047,9 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
                    // Send it to window manager to hide IME from IME target window.
                    // TODO(b/139861270): send to mCurClient.client once IMMS is aware of
                    // actual IME target.
                    mWindowManagerInternal.hideIme(mHideRequestWindowMap.get(windowToken));
                    mWindowManagerInternal.hideIme(
                            mHideRequestWindowMap.get(windowToken),
                            mCurClient.selfReportedDisplayId);
                }
            } else {
                // Send to window manager to show IME after IME layout finishes.
+2 −1
Original line number Diff line number Diff line
@@ -528,8 +528,9 @@ public abstract class WindowManagerInternal {
     * Hide IME using imeTargetWindow when requested.
     *
     * @param imeTargetWindowToken token of the (IME target) window on which IME should be hidden.
     * @param displayId the id of the display the IME is on.
     */
    public abstract void hideIme(IBinder imeTargetWindowToken);
    public abstract void hideIme(IBinder imeTargetWindowToken, int displayId);

    /**
     * Tell window manager about a package that should not be running with high refresh rate
+17 −14
Original line number Diff line number Diff line
@@ -90,6 +90,7 @@ import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_ADD_REMOVE;
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_BOOT;
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_FOCUS;
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_FOCUS_LIGHT;
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_IME;
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_KEEP_SCREEN_ON;
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_ORIENTATION;
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_SCREEN_ON;
@@ -7616,26 +7617,28 @@ public class WindowManagerService extends IWindowManager.Stub
        }

        @Override
        public void hideIme(IBinder imeTargetWindowToken) {
        public void hideIme(IBinder imeTargetWindowToken, int displayId) {
            synchronized (mGlobalLock) {
                WindowState imeTarget = mWindowMap.get(imeTargetWindowToken);
                if (imeTarget == null) {
                    // The target window no longer exists.
                    return;
                }
                ProtoLog.d(WM_DEBUG_IME, "hideIme target: %s ", imeTarget);
                DisplayContent dc = mRoot.getDisplayContent(displayId);
                if (imeTarget != null) {
                    imeTarget = imeTarget.getImeControlTarget().getWindow();
                final DisplayContent dc = imeTarget != null
                        ? imeTarget.getDisplayContent() : getDefaultDisplayContentLocked();
                    if (imeTarget != null) {
                        dc = imeTarget.getDisplayContent();
                    }
                    // If there was a pending IME show(), reset it as IME has been
                    // requested to be hidden.
                    dc.getInsetsStateController().getImeSourceProvider().abortShowImePostLayout();
                if (dc.mInputMethodControlTarget == null) {
                    return;
                }
                if (dc != null && dc.mInputMethodControlTarget != null) {
                    ProtoLog.d(WM_DEBUG_IME, "hideIme Control target: %s ",
                            dc.mInputMethodControlTarget);
                    dc.mInputMethodControlTarget.hideInsets(
                            WindowInsets.Type.ime(), true /* fromIme */);
                }
            }
        }

        @Override
        public boolean isUidAllowedOnDisplay(int displayId, int uid) {