diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java index 0a20d930ef5a5..ce3abfd1586b2 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java @@ -3350,15 +3350,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")