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

Commit 0d84770d authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Simplify InputMethodSubtypeSwitchingController a bit" into main

parents e7b1be60 1a8b94de
Loading
Loading
Loading
Loading
+6 −9
Original line number Diff line number Diff line
@@ -1296,8 +1296,7 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.

            final InputMethodSettings settings = InputMethodSettingsRepository.get(mCurrentUserId);

            mSwitchingController = new InputMethodSubtypeSwitchingController(context,
                    settings.getMethodMap(), settings.getUserId());
            mSwitchingController = new InputMethodSubtypeSwitchingController(context, settings);
            getUserData(mCurrentUserId).mHardwareKeyboardShortcutController.update(settings);
            mMenuController = new InputMethodMenuController(this);
            mVisibilityStateComputer = new ImeVisibilityStateComputer(this);
@@ -3042,10 +3041,9 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.

        // TODO: Instantiate mSwitchingController for each user.
        if (userId == mSwitchingController.getUserId()) {
            mSwitchingController.resetCircularListLocked(settings.getMethodMap());
            mSwitchingController.resetCircularListLocked(settings);
        } else {
            mSwitchingController = new InputMethodSubtypeSwitchingController(mContext,
                    settings.getMethodMap(), userId);
            mSwitchingController = new InputMethodSubtypeSwitchingController(mContext, settings);
        }
        getUserData(userId).mHardwareKeyboardShortcutController.update(settings);
        sendOnNavButtonFlagsChangedLocked();
@@ -4922,7 +4920,7 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
                    final List<ImeSubtypeListItem> imList = InputMethodSubtypeSwitchingController
                            .getSortedInputMethodAndSubtypeList(
                                    showAuxSubtypes, isScreenLocked, true /* forImeMenu */,
                                    mContext, settings.getMethodMap(), settings.getUserId());
                                    mContext, settings);
                    if (imList.isEmpty()) {
                        Slog.w(TAG, "Show switching menu failed, imList is empty,"
                                + " showAuxSubtypes: " + showAuxSubtypes
@@ -5312,10 +5310,9 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.

        // TODO: Instantiate mSwitchingController for each user.
        if (userId == mSwitchingController.getUserId()) {
            mSwitchingController.resetCircularListLocked(settings.getMethodMap());
            mSwitchingController.resetCircularListLocked(settings);
        } else {
            mSwitchingController = new InputMethodSubtypeSwitchingController(mContext,
                    settings.getMethodMap(), mCurrentUserId);
            mSwitchingController = new InputMethodSubtypeSwitchingController(mContext, settings);
        }
        getUserData(userId).mHardwareKeyboardShortcutController.update(settings);

+7 −8
Original line number Diff line number Diff line
@@ -163,13 +163,12 @@ final class InputMethodSubtypeSwitchingController {
    @NonNull
    static List<ImeSubtypeListItem> getSortedInputMethodAndSubtypeList(
            boolean includeAuxiliarySubtypes, boolean isScreenLocked, boolean forImeMenu,
            @NonNull Context context, @NonNull InputMethodMap methodMap,
            @UserIdInt int userId) {
            @NonNull Context context, @NonNull InputMethodSettings settings) {
        final int userId = settings.getUserId();
        final Context userAwareContext = context.getUserId() == userId
                ? context
                : context.createContextAsUser(UserHandle.of(userId), 0 /* flags */);
        final String mSystemLocaleStr = SystemLocaleWrapper.get(userId).get(0).toLanguageTag();
        final InputMethodSettings settings = InputMethodSettings.create(methodMap, userId);

        final ArrayList<InputMethodInfo> imis = settings.getEnabledInputMethodList();
        if (imis.isEmpty()) {
@@ -487,13 +486,13 @@ final class InputMethodSubtypeSwitchingController {
    private ControllerImpl mController;

    InputMethodSubtypeSwitchingController(@NonNull Context context,
            @NonNull InputMethodMap methodMap, @UserIdInt int userId) {
            @NonNull InputMethodSettings settings) {
        mContext = context;
        mUserId = userId;
        mUserId = settings.getUserId();
        mController = ControllerImpl.createFrom(null,
                getSortedInputMethodAndSubtypeList(
                        false /* includeAuxiliarySubtypes */, false /* isScreenLocked */,
                        false /* forImeMenu */, context, methodMap, userId));
                        false /* forImeMenu */, context, settings));
    }

    @AnyThread
@@ -507,11 +506,11 @@ final class InputMethodSubtypeSwitchingController {
        mController.onUserActionLocked(imi, subtype);
    }

    public void resetCircularListLocked(@NonNull InputMethodMap methodMap) {
    public void resetCircularListLocked(@NonNull InputMethodSettings settings) {
        mController = ControllerImpl.createFrom(mController,
                getSortedInputMethodAndSubtypeList(
                        false /* includeAuxiliarySubtypes */, false /* isScreenLocked */,
                        false /* forImeMenu */, mContext, methodMap, mUserId));
                        false /* forImeMenu */, mContext, settings));
    }

    @Nullable