aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorKen Wakasa <kwakasa@google.com>2012-11-06 16:45:44 +0900
committerKen Wakasa <kwakasa@google.com>2012-11-07 01:09:26 +0900
commit5d2556b93286f5f1d7d829b586b84a8b7ae55743 (patch)
treed47d1f3479b12d440cbe257838b8b3be638685b3 /java/src
parent60dea36dafc4a567b948b5175bcca776b08fdfad (diff)
downloadlatinime-5d2556b93286f5f1d7d829b586b84a8b7ae55743.tar.gz
latinime-5d2556b93286f5f1d7d829b586b84a8b7ae55743.tar.xz
latinime-5d2556b93286f5f1d7d829b586b84a8b7ae55743.zip
Reset the IME if requested by the app.
Specifically, reset the KeyboardState to the main Alphabet layout in LatinIME.onStartInputViewInternal() if a keyboard layout set doesn't get reloaded in the method. Please note TextView.setText() calls up resetInput(), then the IME should reset with it. bug: 7482086 Note that bug: 6851364 needs to be revisited. Change-Id: I5d448c10963d3dd952dd13cb587085ec7b014e69
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java6
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java25
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java4
3 files changed, 35 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index 38025e8e4..de8097b55 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -200,6 +200,12 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
mState.onUpdateShiftState(mLatinIME.getCurrentAutoCapsState());
}
+ // TODO: Remove this method. Come up with a more comprehensive way to reset the keyboard layout
+ // when a keyboard layout set doesn't get reloaded in LatinIME.onStartInputViewInternal().
+ public void resetKeyboardStateToAlphabet() {
+ mState.onResetKeyboardStateToAlphabet();
+ }
+
public void onPressKey(int code) {
if (isVibrateAndSoundFeedbackRequired()) {
mLatinIME.hapticAndAudioFeedback(code);
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
index 58cc8972a..5e111fb9a 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
@@ -254,6 +254,22 @@ public final class KeyboardState {
}
}
+ // TODO: Remove this method. Come up with a more comprehensive way to reset the keyboard layout
+ // when a keyboard layout set doesn't get reloaded in LatinIME.onStartInputViewInternal().
+ private void resetKeyboardStateToAlphabet() {
+ if (DEBUG_ACTION) {
+ Log.d(TAG, "resetKeyboardStateToAlphabet: " + this);
+ }
+ if (mIsAlphabetMode) return;
+
+ mPrevSymbolsKeyboardWasShifted = mIsSymbolShifted;
+ setAlphabetKeyboard();
+ if (mPrevMainKeyboardWasShiftLocked) {
+ setShiftLocked(true);
+ }
+ mPrevMainKeyboardWasShiftLocked = false;
+ }
+
private void toggleShiftInSymbols() {
if (mIsSymbolShifted) {
setSymbolsKeyboard();
@@ -380,6 +396,15 @@ public final class KeyboardState {
updateAlphabetShiftState(autoCaps);
}
+ // TODO: Remove this method. Come up with a more comprehensive way to reset the keyboard layout
+ // when a keyboard layout set doesn't get reloaded in LatinIME.onStartInputViewInternal().
+ public void onResetKeyboardStateToAlphabet() {
+ if (DEBUG_EVENT) {
+ Log.d(TAG, "onResetKeyboardStateToAlphabet: " + this);
+ }
+ resetKeyboardStateToAlphabet();
+ }
+
private void updateAlphabetShiftState(int autoCaps) {
if (!mIsAlphabetMode) return;
if (!mShiftKeyState.isReleasing()) {
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 8ac0cd4ca..cf7eea70b 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -732,6 +732,10 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
}
switcher.loadKeyboard(editorInfo, mCurrentSettings);
+ } else if (restarting) {
+ // TODO: Come up with a more comprehensive way to reset the keyboard layout when
+ // a keyboard layout set doesn't get reloaded in this method.
+ switcher.resetKeyboardStateToAlphabet();
}
setSuggestionStripShownInternal(
isSuggestionsStripVisible(), /* needsInputViewShown */ false);