Use the right user's spell checker in InputMethodUtils
This CL fixes a regression that was introduced when TextServicesManagerService (TSMS) was updated to support multiple users [1]. Now TextServicesManager#getCurrentSpellChecker() always returns a result for the calling user, if it is called from the system server process it always returns the result for the main user (user ID = 0), unless the caller is in the middle of IPC transaction. InputMethodUtils#setNonSelectedSystemImesDisabledUntilUsed() had this issue. To make it correctly work, we need a special version of getCurrentSpellChecker() that takes user ID as a parameter. Luckily InputMethodUtils is guaranteed to be running in the system server process [2], we can simply rely on TextServicesManagerInternal instead of adding @hide APIs into TextServicesManager. [1]: I06c27ef834203a21cc445dc126602c799384527b 06a26240 [2]: I37594096151d77adb6741a41d7985a4506f96ccb e6b6e0e7 Bug: 63041121 Test: manually done Change-Id: I278fce6d8c588aaa5a12936fcab45be29a6c3a0b
Loading
Please register or sign in to comment