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

Skip to content
Commit 36bbba20 authored by Antonio Kantek's avatar Antonio Kantek
Browse files

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
parent 5228fb35
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment