Shift+Meta+Space should reverse-rotate subtypes part 2.

This CL adds JavaDoc to clarify what previous CL [1] wanted to do.
No behavior change is intended in this CL.

 [1]: I3694edd80be6dfe18b90360e24ae4d451b331928
      d39ae85482

Bug: 25753404
Bug: 28103839
Change-Id: I246223c0856382d68323f22987b998cd1613e98c
This commit is contained in:
Yohei Yukawa
2016-04-11 13:13:57 -07:00
parent 0e2e7806b7
commit b1e2f4fc3a

View File

@@ -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;
}