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

Commit 462d7a9a authored by Wilson Wu's avatar Wilson Wu Committed by Android (Google) Code Review
Browse files

Merge "Fix delayed hide soft input when switch user" into sc-dev

parents d6a9853d 1de53e53
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -1626,6 +1626,10 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
            }
            mHandler.removeCallbacks(mUserSwitchHandlerTask);
        }
        // Hide soft input before user switch task since switch task may block main handler a while
        // and delayed the MSG_HIDE_SOFT_INPUT.
        hideCurrentInputLocked(
                mCurFocusedWindow, 0, null, SoftInputShowHideReason.HIDE_SWITCH_USER);
        final UserSwitchHandlerTask task = new UserSwitchHandlerTask(this, userId,
                clientToBeReset);
        mUserSwitchHandlerTask = task;
@@ -1751,11 +1755,8 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
        final boolean initialUserSwitch = TextUtils.isEmpty(defaultImiId);
        mLastSystemLocales = mRes.getConfiguration().getLocales();

        // TODO: Is it really possible that switchUserLocked() happens before system ready?
        if (mSystemReady) {
            hideCurrentInputLocked(
                    mCurFocusedWindow, 0, null, SoftInputShowHideReason.HIDE_SWITCH_USER);

        // The mSystemReady flag is set during boot phase,
        // and user switch would not happen at that time.
        resetCurrentMethodAndClient(UnbindReason.SWITCH_USER);
        buildInputMethodListLocked(initialUserSwitch);
        if (TextUtils.isEmpty(mSettings.getSelectedInputMethod())) {
@@ -1764,7 +1765,6 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
            resetDefaultImeLocked(mContext);
        }
        updateFromSettingsLocked(true);
        }

        if (initialUserSwitch) {
            InputMethodUtils.setNonSelectedSystemImesDisabledUntilUsed(mIPackageManager,