Prepare to make InputMethodSubtypeSwitchingController per-user

Previously we have reused the same instance of

  InputMethodManagerService#mSwitchingController

across users, which is known to be an error prone especially when
loading resources from APKs.

With this CL a new instance of InputMethodSubtypeSwitchingController
will be recreated every time the current IME user is switching.  This
is an important milestone to keep maintaining multiple instances of
InputMethodSubtypeSwitchingController for each user.

Also there remain no class that holds a strong reference to

  InputMethodManagerService#mSettings

with this CL.

Strictly speaking this is not a mechanical refactoring CL, but if
there is any observable behavior change the new behavior should make
more sense than the previous one.

Bug: 309868254
Bug: 309837937
Test: presubmit
Change-Id: Ibcc03107665975f237f6d7e0ee098d82e49d54ba
2 files changed