summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/inputmethod/InputMethodManagerService.java15
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));
}
}