Merge "Avoid calling switchToLastInputMethod when other IMEs are in effect"
commit
c3aea8ea9f
|
@ -1219,22 +1219,25 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
|
||||||
mConnection.performEditorAction(actionId);
|
mConnection.performEditorAction(actionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Revise the language switch key behavior to make it much smarter and more reasonable.
|
||||||
private void handleLanguageSwitchKey() {
|
private void handleLanguageSwitchKey() {
|
||||||
final boolean includesOtherImes = mCurrentSettings.mIncludesOtherImesInLanguageSwitchList;
|
|
||||||
final IBinder token = getWindow().getWindow().getAttributes().token;
|
final IBinder token = getWindow().getWindow().getAttributes().token;
|
||||||
|
if (mCurrentSettings.mIncludesOtherImesInLanguageSwitchList) {
|
||||||
|
mImm.switchToNextInputMethod(token, false /* onlyCurrentIme */);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (mShouldSwitchToLastSubtype) {
|
if (mShouldSwitchToLastSubtype) {
|
||||||
final InputMethodSubtype lastSubtype = mImm.getLastInputMethodSubtype();
|
final InputMethodSubtype lastSubtype = mImm.getLastInputMethodSubtype();
|
||||||
final boolean lastSubtypeBelongsToThisIme =
|
final boolean lastSubtypeBelongsToThisIme =
|
||||||
ImfUtils.checkIfSubtypeBelongsToThisImeAndEnabled(this, lastSubtype);
|
ImfUtils.checkIfSubtypeBelongsToThisImeAndEnabled(this, lastSubtype);
|
||||||
if ((includesOtherImes || lastSubtypeBelongsToThisIme)
|
if (lastSubtypeBelongsToThisIme && mImm.switchToLastInputMethod(token)) {
|
||||||
&& mImm.switchToLastInputMethod(token)) {
|
|
||||||
mShouldSwitchToLastSubtype = false;
|
mShouldSwitchToLastSubtype = false;
|
||||||
} else {
|
} else {
|
||||||
mImm.switchToNextInputMethod(token, !includesOtherImes);
|
mImm.switchToNextInputMethod(token, true /* onlyCurrentIme */);
|
||||||
mShouldSwitchToLastSubtype = true;
|
mShouldSwitchToLastSubtype = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
mImm.switchToNextInputMethod(token, !includesOtherImes);
|
mImm.switchToNextInputMethod(token, true /* onlyCurrentIme */);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue