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

Commit 59377cab authored by Yohei Yukawa's avatar Yohei Yukawa
Browse files

Fix a wrong UID can be logged

This is a prepartion for fixing Bug 34838583

Currently Binder.clearCallingIdentity() is called too early, which
ends up always blaming the system UID when calledWithValidToken()
fails in InputMethodManagerService#updateStatusIcon().

Test: Compile
Bug: 34838583
Change-Id: Id69da24de8269c0c7e31ea9ef3c595c3d69fe40e
parent fa49c000
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
@@ -1660,8 +1660,6 @@ public class InputMethodManagerService extends IInputMethodManager.Stub

    @Override
    public void updateStatusIcon(IBinder token, String packageName, int iconId) {
        long ident = Binder.clearCallingIdentity();
        try {
        synchronized (mMethodMap) {
            if (!calledWithValidToken(token)) {
                final int uid = Binder.getCallingUid();
@@ -1669,6 +1667,8 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
                        + " token:" + token);
                return;
            }
            final long ident = Binder.clearCallingIdentity();
            try {
                if (iconId == 0) {
                    if (DEBUG) Slog.d(TAG, "hide the small icon for the input method");
                    if (mStatusBar != null) {
@@ -1693,11 +1693,11 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
                        mStatusBar.setIconVisibility(mSlotIme, true);
                    }
                }
            }
            } finally {
                Binder.restoreCallingIdentity(ident);
            }
        }
    }

    private boolean shouldShowImeSwitcherLocked(int visibility) {
        if (!mShowOngoingImeSwitcherForPhones) return false;