diff options
author | 2011-12-07 01:42:13 -0800 | |
---|---|---|
committer | 2011-12-07 01:42:13 -0800 | |
commit | 08ea7dfdd66d48b36a9cc8122a5211c23b4b6afa (patch) | |
tree | a424abeefeca3b6d7e9d6e37cb7d610080b752ad /java/src | |
parent | b8185a7ec28955922efe86a91d94738b5651f162 (diff) | |
parent | 845d829d47aca3d03b6d7ac0f2d0ac97433cbabd (diff) | |
download | latinime-08ea7dfdd66d48b36a9cc8122a5211c23b4b6afa.tar.gz latinime-08ea7dfdd66d48b36a9cc8122a5211c23b4b6afa.tar.xz latinime-08ea7dfdd66d48b36a9cc8122a5211c23b4b6afa.zip |
am 845d829d: Merge "Get rid of direct reference to KeyboardId from KeyboardLayoutState"
* commit '845d829d47aca3d03b6d7ac0f2d0ac97433cbabd':
Get rid of direct reference to KeyboardId from KeyboardLayoutState
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java | 50 |
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() { |