Optimize IMMS#setAdditionalInputMethodSubtypes() a bit for bg users
This is a follow up CL to my previous CL, which enabled background
users to call
InputMethodManager#setAdditionalInputMethodSubtypes().
One this this CL tries to optimize is the fact that its implementation
is currently invoking
AdditionalSubtypeUtils.load()
twice when called for background usres. The double-call is happening
in
InputMethodManagerService#setAdditionalInputMethodSubtypes()
itseif and inside
InputMethodManagerService#queryMethodMapForUser() [2].
With this CL, the load operation should be happen only once.
There should be no developer-observable behavior change.
[1]: Iac778d95846843504f6e00b3b939ef0794013b02
0b169d04c1
[2]: I4187468076705ac597d680f2f5dc32d7b166da1f
b5f3d34def
Bug: 234882948
Test: presubmit
Change-Id: I6eb4201ebd69ca8821cbe74fc69356f68f9bcb5e
This commit is contained in:
@@ -4186,12 +4186,15 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub
|
||||
return;
|
||||
}
|
||||
|
||||
final ArrayMap<String, InputMethodInfo> methodMap = queryMethodMapForUser(userId);
|
||||
final InputMethodSettings settings = new InputMethodSettings(mContext, methodMap,
|
||||
userId, false);
|
||||
final ArrayMap<String, InputMethodInfo> methodMap = new ArrayMap<>();
|
||||
final ArrayList<InputMethodInfo> methodList = new ArrayList<>();
|
||||
final ArrayMap<String, List<InputMethodSubtype>> additionalSubtypeMap =
|
||||
new ArrayMap<>();
|
||||
AdditionalSubtypeUtils.load(additionalSubtypeMap, userId);
|
||||
queryInputMethodServicesInternal(mContext, userId, additionalSubtypeMap, methodMap,
|
||||
methodList, DirectBootAwareness.AUTO);
|
||||
final InputMethodSettings settings = new InputMethodSettings(mContext, methodMap,
|
||||
userId, false);
|
||||
settings.setAdditionalInputMethodSubtypes(imiId, toBeAdded, additionalSubtypeMap,
|
||||
mPackageManagerInternal, callingUid);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user