aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2011-12-07 01:41:05 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-12-07 01:41:05 -0800
commit845d829d47aca3d03b6d7ac0f2d0ac97433cbabd (patch)
treea424abeefeca3b6d7e9d6e37cb7d610080b752ad /java/src
parentbc56e0442586ecfcbd18cbdd138996b17ea79b6b (diff)
parent2e263b70d5769b52cba4a002e44dbf81db5de7f8 (diff)
downloadlatinime-845d829d47aca3d03b6d7ac0f2d0ac97433cbabd.tar.gz
latinime-845d829d47aca3d03b6d7ac0f2d0ac97433cbabd.tar.xz
latinime-845d829d47aca3d03b6d7ac0f2d0ac97433cbabd.zip
Merge "Get rid of direct reference to KeyboardId from KeyboardLayoutState"
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java50
1 files changed, 24 insertions, 26 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index 5ae044802..0d9f20d4d 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -106,6 +106,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
private static final KeyboardSwitcher sInstance = new KeyboardSwitcher();
+ // TODO: Move this to KeyboardState.
private class KeyboardLayoutState {
private boolean mIsValid;
private boolean mIsAlphabetMode;
@@ -113,43 +114,39 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
private boolean mIsShifted;
public void save() {
- if (mCurrentId == null) {
- return;
- }
mIsAlphabetMode = isAlphabetMode();
if (mIsAlphabetMode) {
mIsShiftLocked = mState.isShiftLocked();
mIsShifted = !mIsShiftLocked && mState.isShiftedOrShiftLocked();
} else {
mIsShiftLocked = false;
- mIsShifted = mCurrentId.equals(mSymbolsShiftedKeyboardId);
+ mIsShifted = isSymbolShifted();
}
mIsValid = true;
}
- public KeyboardId getKeyboardId() {
- if (!mIsValid) return mMainKeyboardId;
-
- if (mIsAlphabetMode) {
- return mMainKeyboardId;
- } else {
- return mIsShifted ? mSymbolsShiftedKeyboardId : mSymbolsKeyboardId;
+ public void restore(boolean forceRestore) {
+ if (!mIsValid) {
+ if (forceRestore) {
+ setAlphabetKeyboard();
+ }
+ return;
}
- }
-
- public void restore() {
- if (!mIsValid) return;
mIsValid = false;
if (mIsAlphabetMode) {
- final boolean isAlphabetMode = isAlphabetMode();
- final boolean isShiftLocked = isAlphabetMode && mState.isShiftLocked();
- final boolean isShifted = !isShiftLocked && mState.isShiftedOrShiftLocked();
- if (mIsShiftLocked != isShiftLocked) {
- toggleCapsLock();
- } else if (mIsShifted != isShifted) {
- onPressShift(false);
- onReleaseShift(false);
+ setAlphabetKeyboard();
+ if (mIsShiftLocked) {
+ setShiftLocked(true);
+ }
+ if (mIsShifted) {
+ setShifted(MANUAL_SHIFT);
+ }
+ } else {
+ if (mIsShifted) {
+ setSymbolsShiftedKeyboard();
+ } else {
+ setSymbolsKeyboard();
}
}
}
@@ -207,8 +204,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
mSymbolsShiftedKeyboardId = getKeyboardId(editorInfo, true, true, settingsValues);
mState.onLoadKeyboard();
mLayoutSwitchBackSymbols = mResources.getString(R.string.layout_switch_back_symbols);
- setKeyboard(getKeyboard(mSavedKeyboardState.getKeyboardId()));
- mSavedKeyboardState.restore();
+ mSavedKeyboardState.restore(mCurrentId == null);
} catch (RuntimeException e) {
Log.w(TAG, "loading keyboard failed: " + mMainKeyboardId, e);
LatinImeLogger.logOnException(mMainKeyboardId.toString(), e);
@@ -216,7 +212,9 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
}
public void saveKeyboardState() {
- mSavedKeyboardState.save();
+ if (mCurrentId != null) {
+ mSavedKeyboardState.save();
+ }
}
public void onFinishInputView() {