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

Commit a0dde9c9 authored by Ming-Shin Lu's avatar Ming-Shin Lu
Browse files

Fix an errorprone for GuardedBy warning

Moving all logic of IMMS#reportPerceptibleAsync into
Binder.withCleanCallingIdentity() runnable parameter to ensure it
can be guarded by ImfLock in the same code block.

To avoid a false alarm lint error caught in CL[1] that the
static analysis checker not be aware in runnable inner called
updateSystemUiLocked has guarded by the ImfLock
with running on the same thread outside the runnable.

[1]: I12d99c15ae0d8965a21406d2495ce5cb18afaea0

Bug: 246309664
Test: make RUN_ERROR_PRONE=true services
Change-Id: Ic7bc9227ce57a3a7c0c3c9726625cd6d0d6a1939
parent 5975f9dc
Loading
Loading
Loading
Loading
+9 −8
Original line number Diff line number Diff line
@@ -3349,15 +3349,16 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub
    @BinderThread
    @Override
    public void reportPerceptibleAsync(IBinder windowToken, boolean perceptible) {
        Binder.withCleanCallingIdentity(() -> {
            Objects.requireNonNull(windowToken, "windowToken must not be null");
            synchronized (ImfLock.class) {
                if (mCurFocusedWindow != windowToken || mCurPerceptible == perceptible) {
                    return;
                }
                mCurPerceptible = perceptible;
            Binder.withCleanCallingIdentity(() ->
                    updateSystemUiLocked(mImeWindowVis, mBackDisposition));
                updateSystemUiLocked();
            }
        });
    }

    @GuardedBy("ImfLock.class")