am 845d829d: Merge "Get rid of direct reference to KeyboardId from KeyboardLayoutState"

* commit '845d829d47aca3d03b6d7ac0f2d0ac97433cbabd':
  Get rid of direct reference to KeyboardId from KeyboardLayoutState
main
Tadashi G. Takaoka 2011-12-07 01:42:13 -08:00 committed by Android Git Automerger
commit 08ea7dfdd6
1 changed files with 24 additions and 26 deletions

View File

@ -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() {