diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java index 19108a883d2cd..a63b95c204b4c 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java @@ -3349,15 +3349,16 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub @BinderThread @Override public void reportPerceptibleAsync(IBinder windowToken, boolean perceptible) { - Objects.requireNonNull(windowToken, "windowToken must not be null"); - synchronized (ImfLock.class) { - if (mCurFocusedWindow != windowToken || mCurPerceptible == perceptible) { - return; + Binder.withCleanCallingIdentity(() -> { + Objects.requireNonNull(windowToken, "windowToken must not be null"); + synchronized (ImfLock.class) { + if (mCurFocusedWindow != windowToken || mCurPerceptible == perceptible) { + return; + } + mCurPerceptible = perceptible; + updateSystemUiLocked(); } - mCurPerceptible = perceptible; - Binder.withCleanCallingIdentity(() -> - updateSystemUiLocked(mImeWindowVis, mBackDisposition)); - } + }); } @GuardedBy("ImfLock.class")