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

Commit 9dd39f8b authored by Yohei Yukawa's avatar Yohei Yukawa Committed by Android (Google) Code Review
Browse files

Merge "Shift+Meta+Space should reverse-rotate subtypes part 2." into nyc-dev

parents 1e07bda8 b1e2f4fc
Loading
Loading
Loading
Loading
+47 −4
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.internal.inputmethod;

import android.annotation.Nullable;
import android.content.Context;
import android.content.pm.PackageManager;
import android.text.TextUtils;
@@ -284,8 +285,22 @@ public class InputMethodSubtypeSwitchingController {
            return -1;
        }

        /**
         * Provides the basic operation to implement bi-directional IME rotation.
         * @param onlyCurrentIme {@code true} to limit the search space to IME subtypes that belong
         * to {@code imi}.
         * @param imi {@link InputMethodInfo} that will be used in conjunction with {@code subtype}
         * from which we find the adjacent IME subtype.
         * @param subtype {@link InputMethodSubtype} that will be used in conjunction with
         * {@code imi} from which we find the next IME subtype.  {@code null} if the input method
         * does not have a subtype.
         * @param forward {@code true} to do forward search the next IME subtype. Specify
         * {@code false} to do backward search.
         * @return The IME subtype found. {@code null} if no IME subtype is found.
         */
        @Nullable
        public ImeSubtypeListItem getNextInputMethodLocked(boolean onlyCurrentIme,
                InputMethodInfo imi, InputMethodSubtype subtype, boolean forward) {
                InputMethodInfo imi, @Nullable InputMethodSubtype subtype, boolean forward) {
            if (imi == null) {
                return null;
            }
@@ -298,7 +313,7 @@ public class InputMethodSubtypeSwitchingController {
            }
            final int N = mImeSubtypeList.size();
            for (int i = 1; i < N; ++i) {
                // Start searching the next IME/subtype from the next of the current index.
                // Start searching the next IME/subtype from +/- 1 indices.
                final int offset = forward ? i : N - i;
                final int candidateIndex = (currentIndex + offset) % N;
                final ImeSubtypeListItem candidate = mImeSubtypeList.get(candidateIndex);
@@ -371,8 +386,22 @@ public class InputMethodSubtypeSwitchingController {
            mUsageHistoryOfSubtypeListItemIndex[0] = currentItemIndex;
        }

        /**
         * Provides the basic operation to implement bi-directional IME rotation.
         * @param onlyCurrentIme {@code true} to limit the search space to IME subtypes that belong
         * to {@code imi}.
         * @param imi {@link InputMethodInfo} that will be used in conjunction with {@code subtype}
         * from which we find the adjacent IME subtype.
         * @param subtype {@link InputMethodSubtype} that will be used in conjunction with
         * {@code imi} from which we find the next IME subtype.  {@code null} if the input method
         * does not have a subtype.
         * @param forward {@code true} to do forward search the next IME subtype. Specify
         * {@code false} to do backward search.
         * @return The IME subtype found. {@code null} if no IME subtype is found.
         */
        @Nullable
        public ImeSubtypeListItem getNextInputMethodLocked(boolean onlyCurrentIme,
                InputMethodInfo imi, InputMethodSubtype subtype, boolean forward) {
                InputMethodInfo imi, @Nullable InputMethodSubtype subtype, boolean forward) {
            int currentUsageRank = getUsageRank(imi, subtype);
            if (currentUsageRank < 0) {
                if (DEBUG) {
@@ -456,8 +485,22 @@ public class InputMethodSubtypeSwitchingController {
            mSwitchingUnawareRotationList = switchingUnawareRotationList;
        }

        /**
         * Provides the basic operation to implement bi-directional IME rotation.
         * @param onlyCurrentIme {@code true} to limit the search space to IME subtypes that belong
         * to {@code imi}.
         * @param imi {@link InputMethodInfo} that will be used in conjunction with {@code subtype}
         * from which we find the adjacent IME subtype.
         * @param subtype {@link InputMethodSubtype} that will be used in conjunction with
         * {@code imi} from which we find the next IME subtype.  {@code null} if the input method
         * does not have a subtype.
         * @param forward {@code true} to do forward search the next IME subtype. Specify
         * {@code false} to do backward search.
         * @return The IME subtype found. {@code null} if no IME subtype is found.
         */
        @Nullable
        public ImeSubtypeListItem getNextInputMethod(boolean onlyCurrentIme, InputMethodInfo imi,
                InputMethodSubtype subtype, boolean forward) {
                @Nullable InputMethodSubtype subtype, boolean forward) {
            if (imi == null) {
                return null;
            }