Properly resolve the userId when running on concurrent multi-user
In concurrent multi-user mode, `showSoftInput` and `hideSoftInput` derive the userId from the binder caller's user id. However, this fails when the caller is the system user (user 0), especially when `startInputOrWindowFocusGained` was previously called by the system user while while passing another user id for the `userId` parameter. This changelist modifies `showSoftInput` and `hideSoftInput` to instead resolve the userId from the display owner within the `client` parameter. The long-term solution involves implementing per-user and per-window IME binding in IMMS, and adding a `userId` parameter to both the showSoftInput and hideSoftInput methods (this will allow apps started by system user to specify another user when invoking these two methods). This changelist shouldn't introduce any breakage on phones or tablets. Test: presubmit Test: atest CtsInputMethodTestCases Bug: 358105425 Flag: EXEMPT bug fix Change-Id: I03f6f4b08470afc36eb8d7381b14556804d6b2c2
Loading
Please register or sign in to comment