diff options
| -rw-r--r-- | services/core/java/com/android/server/inputmethod/InputMethodManagerService.java | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java index 4886e6e14c17..1366177ea6ab 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java @@ -3430,19 +3430,12 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub public void reportPerceptibleAsync(IBinder windowToken, boolean perceptible) { Objects.requireNonNull(windowToken, "windowToken must not be null"); synchronized (ImfLock.class) { - if (!calledFromValidUserLocked()) { + if (mCurFocusedWindow != windowToken || mCurPerceptible == perceptible) { return; } - final long ident = Binder.clearCallingIdentity(); - try { - if (mCurFocusedWindow == windowToken - && mCurPerceptible != perceptible) { - mCurPerceptible = perceptible; - updateSystemUiLocked(mImeWindowVis, mBackDisposition); - } - } finally { - Binder.restoreCallingIdentity(ident); - } + mCurPerceptible = perceptible; + Binder.withCleanCallingIdentity(() -> + updateSystemUiLocked(mImeWindowVis, mBackDisposition)); } } |