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

Commit faaa2cd9 authored by Yohei Yukawa's avatar Yohei Yukawa
Browse files

Restore the legacy protocol between IMMS and KeyboardLayoutManager

This is a follow up CL to my previous CL [1], which hooked up per-user
call flows in IMMS including the following methods.

 * setInputMethodLocked()
 * setSelectedInputMethodAndSubtypeLocked()

Let's see what went wrong.

InputManagerInternal has the following method so that IMMS can keep
notifying about what is the latest InptuMethodSubtype for each user.

  void onInputMethodSubtypeChangedForKeyboardLayoutMapping(
      @UserIdInt int userId,
      @Nullable InputMethodSubtypeHandle subtypeHandle,
      @Nullable InputMethodSubtype subtype)

Before my CL [1], IMMS had invoked the above method in two cases.

 A. when the current IME's subtype is updated
 B. when the current IME is switched from another user

It turns out that KeyboardLayoutManager has relied on the above
behavior, and it is not yet compatible with concurrent multi-user.

As a short term solution, with this CL both A and B are emulated in
the InputMethodManagerService side.

Longer term solutioins are going to be discussed at Bug 357663774.

 [1]: I9d4615e6da979204c21555e040a687163c1460ab
      fbeeb934

Fix: 356879517
Test: manually verified
Flag: EXEMPT bug fix
Change-Id: Iac268d3da463904a058ce44e403ca1cae691eedf
parent fc53eaec
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