am 845d829d
: Merge "Get rid of direct reference to KeyboardId from KeyboardLayoutState"
* commit '845d829d47aca3d03b6d7ac0f2d0ac97433cbabd': Get rid of direct reference to KeyboardId from KeyboardLayoutState
This commit is contained in:
commit
08ea7dfdd6
1 changed files with 24 additions and 26 deletions
|
@ -106,6 +106,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
|
||||||
|
|
||||||
private static final KeyboardSwitcher sInstance = new KeyboardSwitcher();
|
private static final KeyboardSwitcher sInstance = new KeyboardSwitcher();
|
||||||
|
|
||||||
|
// TODO: Move this to KeyboardState.
|
||||||
private class KeyboardLayoutState {
|
private class KeyboardLayoutState {
|
||||||
private boolean mIsValid;
|
private boolean mIsValid;
|
||||||
private boolean mIsAlphabetMode;
|
private boolean mIsAlphabetMode;
|
||||||
|
@ -113,43 +114,39 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
|
||||||
private boolean mIsShifted;
|
private boolean mIsShifted;
|
||||||
|
|
||||||
public void save() {
|
public void save() {
|
||||||
if (mCurrentId == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
mIsAlphabetMode = isAlphabetMode();
|
mIsAlphabetMode = isAlphabetMode();
|
||||||
if (mIsAlphabetMode) {
|
if (mIsAlphabetMode) {
|
||||||
mIsShiftLocked = mState.isShiftLocked();
|
mIsShiftLocked = mState.isShiftLocked();
|
||||||
mIsShifted = !mIsShiftLocked && mState.isShiftedOrShiftLocked();
|
mIsShifted = !mIsShiftLocked && mState.isShiftedOrShiftLocked();
|
||||||
} else {
|
} else {
|
||||||
mIsShiftLocked = false;
|
mIsShiftLocked = false;
|
||||||
mIsShifted = mCurrentId.equals(mSymbolsShiftedKeyboardId);
|
mIsShifted = isSymbolShifted();
|
||||||
}
|
}
|
||||||
mIsValid = true;
|
mIsValid = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public KeyboardId getKeyboardId() {
|
public void restore(boolean forceRestore) {
|
||||||
if (!mIsValid) return mMainKeyboardId;
|
if (!mIsValid) {
|
||||||
|
if (forceRestore) {
|
||||||
if (mIsAlphabetMode) {
|
setAlphabetKeyboard();
|
||||||
return mMainKeyboardId;
|
|
||||||
} else {
|
|
||||||
return mIsShifted ? mSymbolsShiftedKeyboardId : mSymbolsKeyboardId;
|
|
||||||
}
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void restore() {
|
|
||||||
if (!mIsValid) return;
|
|
||||||
mIsValid = false;
|
mIsValid = false;
|
||||||
|
|
||||||
if (mIsAlphabetMode) {
|
if (mIsAlphabetMode) {
|
||||||
final boolean isAlphabetMode = isAlphabetMode();
|
setAlphabetKeyboard();
|
||||||
final boolean isShiftLocked = isAlphabetMode && mState.isShiftLocked();
|
if (mIsShiftLocked) {
|
||||||
final boolean isShifted = !isShiftLocked && mState.isShiftedOrShiftLocked();
|
setShiftLocked(true);
|
||||||
if (mIsShiftLocked != isShiftLocked) {
|
}
|
||||||
toggleCapsLock();
|
if (mIsShifted) {
|
||||||
} else if (mIsShifted != isShifted) {
|
setShifted(MANUAL_SHIFT);
|
||||||
onPressShift(false);
|
}
|
||||||
onReleaseShift(false);
|
} else {
|
||||||
|
if (mIsShifted) {
|
||||||
|
setSymbolsShiftedKeyboard();
|
||||||
|
} else {
|
||||||
|
setSymbolsKeyboard();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -207,8 +204,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
|
||||||
mSymbolsShiftedKeyboardId = getKeyboardId(editorInfo, true, true, settingsValues);
|
mSymbolsShiftedKeyboardId = getKeyboardId(editorInfo, true, true, settingsValues);
|
||||||
mState.onLoadKeyboard();
|
mState.onLoadKeyboard();
|
||||||
mLayoutSwitchBackSymbols = mResources.getString(R.string.layout_switch_back_symbols);
|
mLayoutSwitchBackSymbols = mResources.getString(R.string.layout_switch_back_symbols);
|
||||||
setKeyboard(getKeyboard(mSavedKeyboardState.getKeyboardId()));
|
mSavedKeyboardState.restore(mCurrentId == null);
|
||||||
mSavedKeyboardState.restore();
|
|
||||||
} catch (RuntimeException e) {
|
} catch (RuntimeException e) {
|
||||||
Log.w(TAG, "loading keyboard failed: " + mMainKeyboardId, e);
|
Log.w(TAG, "loading keyboard failed: " + mMainKeyboardId, e);
|
||||||
LatinImeLogger.logOnException(mMainKeyboardId.toString(), e);
|
LatinImeLogger.logOnException(mMainKeyboardId.toString(), e);
|
||||||
|
@ -216,8 +212,10 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveKeyboardState() {
|
public void saveKeyboardState() {
|
||||||
|
if (mCurrentId != null) {
|
||||||
mSavedKeyboardState.save();
|
mSavedKeyboardState.save();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void onFinishInputView() {
|
public void onFinishInputView() {
|
||||||
mIsAutoCorrectionActive = false;
|
mIsAutoCorrectionActive = false;
|
||||||
|
|
Loading…
Reference in a new issue