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

Commit 9ddd4cd8 authored by Yohei Yukawa's avatar Yohei Yukawa
Browse files

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
      0b169d04
 [2]: I4187468076705ac597d680f2f5dc32d7b166da1f
      b5f3d34d

Bug: 234882948
Test: presubmit
Change-Id: I6eb4201ebd69ca8821cbe74fc69356f68f9bcb5e
parent 66fa8931
Loading
Loading
Loading
Loading
+6 −3
Original line number Original line Diff line number Diff line
@@ -4186,12 +4186,15 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub
                return;
                return;
            }
            }


            final ArrayMap<String, InputMethodInfo> methodMap = queryMethodMapForUser(userId);
            final ArrayMap<String, InputMethodInfo> methodMap = new ArrayMap<>();
            final InputMethodSettings settings = new InputMethodSettings(mContext, methodMap,
            final ArrayList<InputMethodInfo> methodList = new ArrayList<>();
                    userId, false);
            final ArrayMap<String, List<InputMethodSubtype>> additionalSubtypeMap =
            final ArrayMap<String, List<InputMethodSubtype>> additionalSubtypeMap =
                    new ArrayMap<>();
                    new ArrayMap<>();
            AdditionalSubtypeUtils.load(additionalSubtypeMap, userId);
            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,
            settings.setAdditionalInputMethodSubtypes(imiId, toBeAdded, additionalSubtypeMap,
                    mPackageManagerInternal, callingUid);
                    mPackageManagerInternal, callingUid);
        }
        }