aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2012-01-09 22:25:37 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-01-09 22:25:37 -0800
commit33e2813d0964a0c7accfbef1bbca957d083cba1b (patch)
treec02c19cfc575717f095d9d581e781f22640de950 /java/src/com/android
parentcc39125e8e79a374cd626399120eb4f5f75e22b3 (diff)
parentee4be6e3c6eed719683fd3019d48365ba76790e2 (diff)
downloadlatinime-33e2813d0964a0c7accfbef1bbca957d083cba1b.tar.gz
latinime-33e2813d0964a0c7accfbef1bbca957d083cba1b.tar.xz
latinime-33e2813d0964a0c7accfbef1bbca957d083cba1b.zip
Merge "Call KeyboardState.onUpdateShiftState from onCodeInput if code is a normal letter"
Diffstat (limited to 'java/src/com/android')
-rw-r--r--java/src/com/android/inputmethod/keyboard/Keyboard.java12
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java20
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java2
4 files changed, 26 insertions, 10 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java
index 3540577ca..fad12cc1f 100644
--- a/java/src/com/android/inputmethod/keyboard/Keyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java
@@ -67,7 +67,9 @@ import java.util.Set;
public class Keyboard {
private static final String TAG = Keyboard.class.getSimpleName();
- /** Some common keys code. These should be aligned with values/keycodes.xml */
+ /** Some common keys code. Must be positive.
+ * These should be aligned with values/keycodes.xml
+ */
public static final int CODE_ENTER = '\n';
public static final int CODE_TAB = '\t';
public static final int CODE_SPACE = ' ';
@@ -85,7 +87,9 @@ public class Keyboard {
public static final int CODE_DIGIT0 = '0';
public static final int CODE_PLUS = '+';
- /** Special keys code. These should be aligned with values/keycodes.xml */
+ /** Special keys code. Must be non-positive.
+ * These should be aligned with values/keycodes.xml
+ */
public static final int CODE_DUMMY = 0;
public static final int CODE_SHIFT = -1;
public static final int CODE_SWITCH_ALPHA_SYMBOL = -2;
@@ -248,6 +252,10 @@ public class Keyboard {
return label;
}
+ public static boolean isLetterCode(int code) {
+ return code > CODE_DUMMY;
+ }
+
public static class Params {
public KeyboardId mId;
public int mThemeId;
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index fa073b671..e5097152b 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -332,7 +332,7 @@ public class KeyboardSwitcher implements KeyboardState.SwitchActions,
* Updates state machine to figure out when to automatically snap back to the previous mode.
*/
public void onCodeInput(int code) {
- mState.onCodeInput(code, isSinglePointer());
+ mState.onCodeInput(code, isSinglePointer(), mInputMethodService.getCurrentAutoCapsState());
}
public LatinKeyboardView getKeyboardView() {
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
index 623cab303..c0adf970a 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
@@ -29,9 +29,10 @@ import com.android.inputmethod.keyboard.Keyboard;
*
* The input events are {@link #onLoadKeyboard(String, boolean)}, {@link #onSaveKeyboardState()},
* {@link #onPressShift(boolean)}, {@link #onReleaseShift(boolean)}, {@link #onPressSymbol()},
- * {@link #onReleaseSymbol()}, {@link #onOtherKeyPressed()}, {@link #onCodeInput(int, boolean)},
- * {@link #onCancelInput(boolean)}, {@link #onUpdateShiftState(boolean)}, {@link #onToggleShift()},
- * {@link #onToggleCapsLock()}, and {@link #onToggleAlphabetAndSymbols()}.
+ * {@link #onReleaseSymbol()}, {@link #onOtherKeyPressed()},
+ * {@link #onCodeInput(int, boolean, boolean)}, {@link #onCancelInput(boolean)},
+ * {@link #onUpdateShiftState(boolean)}, {@link #onToggleShift()}, {@link #onToggleCapsLock()},
+ * and {@link #onToggleAlphabetAndSymbols()}.
*
* The actions are {@link SwitchActions}'s methods.
*/
@@ -267,6 +268,10 @@ public class KeyboardState {
if (DEBUG_STATE) {
Log.d(TAG, "onUpdateShiftState: autoCaps=" + autoCaps + " " + this);
}
+ onUpdateShiftStateInternal(autoCaps);
+ }
+
+ private void onUpdateShiftStateInternal(boolean autoCaps) {
if (mIsAlphabetMode) {
if (!mKeyboardShiftState.isShiftLocked() && !mShiftKeyState.isIgnoring()) {
if (mShiftKeyState.isReleasing() && autoCaps) {
@@ -381,10 +386,10 @@ public class KeyboardState {
return false;
}
- public void onCodeInput(int code, boolean isSinglePointer) {
+ public void onCodeInput(int code, boolean isSinglePointer, boolean autoCaps) {
if (DEBUG_STATE) {
Log.d(TAG, "onCodeInput: code=" + code + " isSinglePointer=" + isSinglePointer
- + " " + this);
+ + " autoCaps=" + autoCaps + " " + this);
}
switch (mSwitchState) {
case SWITCH_STATE_MOMENTARY_ALPHA_AND_SYMBOL:
@@ -446,6 +451,11 @@ public class KeyboardState {
}
break;
}
+
+ // If the code is a letter, update keyboard shift state.
+ if (Keyboard.isLetterCode(code)) {
+ onUpdateShiftStateInternal(autoCaps);
+ }
}
public void onToggleShift() {
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index d2b1e9bca..e6478b683 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1496,7 +1496,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
if (null != ic) swapSwapperAndSpaceWhileInBatchEdit(ic);
}
- switcher.updateShiftState();
if (mSettingsValues.isWordSeparator(code)) {
Utils.Stats.onSeparator((char)code, x, y);
} else {
@@ -1581,7 +1580,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
Utils.Stats.onSeparator((char)primaryCode, x, y);
- mKeyboardSwitcher.updateShiftState();
if (ic != null) {
ic.endBatchEdit();
}