Get rid of the reference to LatinKeyboard from LatinIME
Change-Id: I94286ecec0aa8dbfdfaa74d3a76b744c4a250370main
parent
3009310283
commit
1679432d1c
|
@ -306,8 +306,6 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
|
||||||
|
|
||||||
keyboard.onAutoCompletionStateChanged(mIsAutoCompletionActive);
|
keyboard.onAutoCompletionStateChanged(mIsAutoCompletionActive);
|
||||||
keyboard.setShifted(false);
|
keyboard.setShifted(false);
|
||||||
// TODO: delete this?
|
|
||||||
keyboard.setShiftLocked(keyboard.isShiftLocked());
|
|
||||||
return keyboard;
|
return keyboard;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -338,6 +336,38 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
|
||||||
return mCurrentId != null && mCurrentId.isAlphabetMode();
|
return mCurrentId != null && mCurrentId.isAlphabetMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isInputViewShown() {
|
||||||
|
return mInputView != null && mInputView.isShown();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isKeyboardAvailable() {
|
||||||
|
return mInputView != null && mInputView.getLatinKeyboard() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPreferredLetters(int[] frequencies) {
|
||||||
|
LatinKeyboard latinKeyboard;
|
||||||
|
if (mInputView != null && (latinKeyboard = mInputView.getLatinKeyboard()) != null)
|
||||||
|
latinKeyboard.setPreferredLetters(frequencies);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void keyReleased() {
|
||||||
|
LatinKeyboard latinKeyboard;
|
||||||
|
if (mInputView != null && (latinKeyboard = mInputView.getLatinKeyboard()) != null)
|
||||||
|
latinKeyboard.keyReleased();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isShifted() {
|
||||||
|
LatinKeyboard latinKeyboard;
|
||||||
|
return mInputView != null && (latinKeyboard = mInputView.getLatinKeyboard()) != null
|
||||||
|
&& latinKeyboard.isShifted();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isShiftLocked() {
|
||||||
|
LatinKeyboard latinKeyboard;
|
||||||
|
return mInputView != null && (latinKeyboard = mInputView.getLatinKeyboard()) != null
|
||||||
|
&& latinKeyboard.isShiftLocked();
|
||||||
|
}
|
||||||
|
|
||||||
public void setShifted(boolean shifted) {
|
public void setShifted(boolean shifted) {
|
||||||
if (mInputView == null) return;
|
if (mInputView == null) return;
|
||||||
LatinKeyboard latinKeyboard = mInputView.getLatinKeyboard();
|
LatinKeyboard latinKeyboard = mInputView.getLatinKeyboard();
|
||||||
|
|
|
@ -318,7 +318,7 @@ public class LatinIME extends InputMethodService
|
||||||
break;
|
break;
|
||||||
case MSG_START_TUTORIAL:
|
case MSG_START_TUTORIAL:
|
||||||
if (mTutorial == null) {
|
if (mTutorial == null) {
|
||||||
if (mKeyboardSwitcher.getInputView().isShown()) {
|
if (mKeyboardSwitcher.isInputViewShown()) {
|
||||||
mTutorial = new Tutorial(
|
mTutorial = new Tutorial(
|
||||||
LatinIME.this, mKeyboardSwitcher.getInputView());
|
LatinIME.this, mKeyboardSwitcher.getInputView());
|
||||||
mTutorial.start();
|
mTutorial.start();
|
||||||
|
@ -720,9 +720,9 @@ public class LatinIME extends InputMethodService
|
||||||
mVoiceInput.flushLogs();
|
mVoiceInput.flushLogs();
|
||||||
mVoiceInput.cancel();
|
mVoiceInput.cancel();
|
||||||
}
|
}
|
||||||
if (mKeyboardSwitcher.getInputView() != null) {
|
BaseKeyboardView inputView = mKeyboardSwitcher.getInputView();
|
||||||
mKeyboardSwitcher.getInputView().closing();
|
if (inputView != null)
|
||||||
}
|
inputView.closing();
|
||||||
if (mAutoDictionary != null) mAutoDictionary.flushPendingWrites();
|
if (mAutoDictionary != null) mAutoDictionary.flushPendingWrites();
|
||||||
if (mUserBigramDictionary != null) mUserBigramDictionary.flushPendingWrites();
|
if (mUserBigramDictionary != null) mUserBigramDictionary.flushPendingWrites();
|
||||||
}
|
}
|
||||||
|
@ -805,8 +805,7 @@ public class LatinIME extends InputMethodService
|
||||||
|
|
||||||
if (mReCorrectionEnabled) {
|
if (mReCorrectionEnabled) {
|
||||||
// Don't look for corrections if the keyboard is not visible
|
// Don't look for corrections if the keyboard is not visible
|
||||||
if (mKeyboardSwitcher != null && mKeyboardSwitcher.getInputView() != null
|
if (mKeyboardSwitcher.isInputViewShown()) {
|
||||||
&& mKeyboardSwitcher.getInputView().isShown()) {
|
|
||||||
// Check if we should go in or out of correction mode.
|
// Check if we should go in or out of correction mode.
|
||||||
if (isPredictionOn()
|
if (isPredictionOn()
|
||||||
&& mJustRevertedSeparator == null
|
&& mJustRevertedSeparator == null
|
||||||
|
@ -919,8 +918,8 @@ public class LatinIME extends InputMethodService
|
||||||
private void setCandidatesViewShownInternal(boolean shown, boolean needsInputViewShown) {
|
private void setCandidatesViewShownInternal(boolean shown, boolean needsInputViewShown) {
|
||||||
// TODO: Remove this if we support candidates with hard keyboard
|
// TODO: Remove this if we support candidates with hard keyboard
|
||||||
if (onEvaluateInputViewShown()) {
|
if (onEvaluateInputViewShown()) {
|
||||||
super.setCandidatesViewShown(shown && mKeyboardSwitcher.getInputView() != null
|
super.setCandidatesViewShown(shown
|
||||||
&& (needsInputViewShown ? mKeyboardSwitcher.getInputView().isShown() : true));
|
&& (needsInputViewShown ? mKeyboardSwitcher.isInputViewShown() : true));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -987,12 +986,8 @@ public class LatinIME extends InputMethodService
|
||||||
if (mTutorial != null) {
|
if (mTutorial != null) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
LatinKeyboardView inputView = mKeyboardSwitcher.getInputView();
|
|
||||||
if (inputView == null) break;
|
|
||||||
LatinKeyboard latinKeyboard = inputView.getLatinKeyboard();
|
|
||||||
if (latinKeyboard == null) break;
|
|
||||||
// Enable shift key and DPAD to do selections
|
// Enable shift key and DPAD to do selections
|
||||||
if (inputView.isShown() && latinKeyboard.isShifted()) {
|
if (mKeyboardSwitcher.isInputViewShown() && mKeyboardSwitcher.isShifted()) {
|
||||||
event = new KeyEvent(event.getDownTime(), event.getEventTime(),
|
event = new KeyEvent(event.getDownTime(), event.getEventTime(),
|
||||||
event.getAction(), event.getKeyCode(), event.getRepeatCount(),
|
event.getAction(), event.getKeyCode(), event.getRepeatCount(),
|
||||||
event.getDeviceId(), event.getScanCode(),
|
event.getDeviceId(), event.getScanCode(),
|
||||||
|
@ -1043,14 +1038,13 @@ public class LatinIME extends InputMethodService
|
||||||
|
|
||||||
public void updateShiftKeyState(EditorInfo attr) {
|
public void updateShiftKeyState(EditorInfo attr) {
|
||||||
InputConnection ic = getCurrentInputConnection();
|
InputConnection ic = getCurrentInputConnection();
|
||||||
LatinKeyboardView inputView = mKeyboardSwitcher.getInputView();
|
KeyboardSwitcher switcher = mKeyboardSwitcher;
|
||||||
if (inputView == null) return;
|
if (!switcher.isKeyboardAvailable())
|
||||||
LatinKeyboard latinKeyboard = inputView.getLatinKeyboard();
|
return;
|
||||||
if (latinKeyboard == null) return;
|
if (ic != null && attr != null && switcher.isAlphabetMode()
|
||||||
if (ic != null && attr != null && mKeyboardSwitcher.isAlphabetMode()
|
|
||||||
&& !mShiftKeyState.isIgnoring()) {
|
&& !mShiftKeyState.isIgnoring()) {
|
||||||
mKeyboardSwitcher.setShifted(mShiftKeyState.isMomentary()
|
switcher.setShifted(mShiftKeyState.isMomentary()
|
||||||
|| latinKeyboard.isShiftLocked() || getCursorCapsMode(ic, attr) != 0);
|
|| switcher.isShiftLocked() || getCursorCapsMode(ic, attr) != 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1362,14 +1356,12 @@ public class LatinIME extends InputMethodService
|
||||||
mHandler.removeMessages(MSG_UPDATE_SHIFT_STATE);
|
mHandler.removeMessages(MSG_UPDATE_SHIFT_STATE);
|
||||||
KeyboardSwitcher switcher = mKeyboardSwitcher;
|
KeyboardSwitcher switcher = mKeyboardSwitcher;
|
||||||
if (switcher.isAlphabetMode()) {
|
if (switcher.isAlphabetMode()) {
|
||||||
LatinKeyboardView inputView = switcher.getInputView();
|
if (!switcher.isKeyboardAvailable())
|
||||||
if (inputView == null) return;
|
return;
|
||||||
LatinKeyboard latinKeyboard = inputView.getLatinKeyboard();
|
if (switcher.isShiftLocked() || forceNormal) {
|
||||||
if (latinKeyboard == null) return;
|
|
||||||
if (latinKeyboard.isShiftLocked() || forceNormal) {
|
|
||||||
switcher.setShifted(false);
|
switcher.setShifted(false);
|
||||||
} else {
|
} else {
|
||||||
switcher.setShifted(!latinKeyboard.isShifted());
|
switcher.setShifted(!switcher.isShifted());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
switcher.toggleShift();
|
switcher.toggleShift();
|
||||||
|
@ -1380,16 +1372,14 @@ public class LatinIME extends InputMethodService
|
||||||
mHandler.removeMessages(MSG_UPDATE_SHIFT_STATE);
|
mHandler.removeMessages(MSG_UPDATE_SHIFT_STATE);
|
||||||
KeyboardSwitcher switcher = mKeyboardSwitcher;
|
KeyboardSwitcher switcher = mKeyboardSwitcher;
|
||||||
if (switcher.isAlphabetMode()) {
|
if (switcher.isAlphabetMode()) {
|
||||||
LatinKeyboardView inputView = switcher.getInputView();
|
if (!switcher.isKeyboardAvailable())
|
||||||
if (inputView == null) return;
|
return;
|
||||||
LatinKeyboard latinKeyboard = inputView.getLatinKeyboard();
|
if (switcher.isShiftLocked()) {
|
||||||
if (latinKeyboard == null) return;
|
// KeyboardSwitcher.setShifted(false) also disable shift locked state.
|
||||||
if (latinKeyboard.isShiftLocked()) {
|
|
||||||
// LatinKeyboard.setShifted(false) also disable shift locked state.
|
|
||||||
// Note: Caps lock LED is off when Key.on is false.
|
// Note: Caps lock LED is off when Key.on is false.
|
||||||
switcher.setShifted(false);
|
switcher.setShifted(false);
|
||||||
} else {
|
} else {
|
||||||
// LatinKeyboard.setShiftLocked(true) enable shift state too.
|
// KeyboardSwitcher.setShiftLocked(true) enable shift state too.
|
||||||
// Note: Caps lock LED is on when Key.on is true.
|
// Note: Caps lock LED is on when Key.on is true.
|
||||||
switcher.setShiftLocked(true);
|
switcher.setShiftLocked(true);
|
||||||
}
|
}
|
||||||
|
@ -1426,14 +1416,14 @@ public class LatinIME extends InputMethodService
|
||||||
mWord.reset();
|
mWord.reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
LatinKeyboard latinKeyboard = mKeyboardSwitcher.getInputView().getLatinKeyboard();
|
KeyboardSwitcher switcher = mKeyboardSwitcher;
|
||||||
if (latinKeyboard != null && latinKeyboard.isShifted()) {
|
if (switcher.isShifted()) {
|
||||||
if (keyCodes == null || keyCodes[0] < Character.MIN_CODE_POINT
|
if (keyCodes == null || keyCodes[0] < Character.MIN_CODE_POINT
|
||||||
|| keyCodes[0] > Character.MAX_CODE_POINT) {
|
|| keyCodes[0] > Character.MAX_CODE_POINT) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
primaryCode = keyCodes[0];
|
primaryCode = keyCodes[0];
|
||||||
if (mKeyboardSwitcher.isAlphabetMode() && Character.isLowerCase(primaryCode)) {
|
if (switcher.isAlphabetMode() && Character.isLowerCase(primaryCode)) {
|
||||||
int upperCaseCode = Character.toUpperCase(primaryCode);
|
int upperCaseCode = Character.toUpperCase(primaryCode);
|
||||||
if (upperCaseCode != primaryCode) {
|
if (upperCaseCode != primaryCode) {
|
||||||
primaryCode = upperCaseCode;
|
primaryCode = upperCaseCode;
|
||||||
|
@ -1446,9 +1436,7 @@ public class LatinIME extends InputMethodService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mPredicting) {
|
if (mPredicting) {
|
||||||
if (latinKeyboard != null && latinKeyboard.isShifted()
|
if (mComposing.length() == 0 && switcher.isAlphabetMode() && switcher.isShifted()) {
|
||||||
&& mKeyboardSwitcher.isAlphabetMode()
|
|
||||||
&& mComposing.length() == 0) {
|
|
||||||
mWord.setFirstCharCapitalized(true);
|
mWord.setFirstCharCapitalized(true);
|
||||||
}
|
}
|
||||||
mComposing.append((char) primaryCode);
|
mComposing.append((char) primaryCode);
|
||||||
|
@ -1547,12 +1535,9 @@ public class LatinIME extends InputMethodService
|
||||||
mVoiceInput.cancel();
|
mVoiceInput.cancel();
|
||||||
}
|
}
|
||||||
requestHideSelf(0);
|
requestHideSelf(0);
|
||||||
if (mKeyboardSwitcher != null) {
|
LatinKeyboardView inputView = mKeyboardSwitcher.getInputView();
|
||||||
LatinKeyboardView inputView = mKeyboardSwitcher.getInputView();
|
if (inputView != null)
|
||||||
if (inputView != null) {
|
inputView.closing();
|
||||||
inputView.closing();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
TextEntryState.endSession();
|
TextEntryState.endSession();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1605,7 +1590,7 @@ public class LatinIME extends InputMethodService
|
||||||
public void run() {
|
public void run() {
|
||||||
mRecognizing = false;
|
mRecognizing = false;
|
||||||
if (mKeyboardSwitcher.getInputView() != null) {
|
if (mKeyboardSwitcher.getInputView() != null) {
|
||||||
setInputView(mKeyboardSwitcher.getInputView());
|
setInputView(mKeyboardSwitcher.getInputView());
|
||||||
}
|
}
|
||||||
setCandidatesViewShown(isCandidateStripVisible());
|
setCandidatesViewShown(isCandidateStripVisible());
|
||||||
updateInputViewShown();
|
updateInputViewShown();
|
||||||
|
@ -1742,10 +1727,9 @@ public class LatinIME extends InputMethodService
|
||||||
switchToKeyboardView();
|
switchToKeyboardView();
|
||||||
|
|
||||||
final List<CharSequence> nBest = new ArrayList<CharSequence>();
|
final List<CharSequence> nBest = new ArrayList<CharSequence>();
|
||||||
|
KeyboardSwitcher switcher = mKeyboardSwitcher;
|
||||||
boolean capitalizeFirstWord = preferCapitalization()
|
boolean capitalizeFirstWord = preferCapitalization()
|
||||||
|| (mKeyboardSwitcher.isAlphabetMode()
|
|| (switcher.isAlphabetMode() && switcher.isShifted());
|
||||||
&& mKeyboardSwitcher.getInputView().getLatinKeyboard() != null
|
|
||||||
&& mKeyboardSwitcher.getInputView().getLatinKeyboard().isShifted());
|
|
||||||
for (String c : mVoiceResults.candidates) {
|
for (String c : mVoiceResults.candidates) {
|
||||||
if (capitalizeFirstWord) {
|
if (capitalizeFirstWord) {
|
||||||
c = Character.toUpperCase(c.charAt(0)) + c.substring(1, c.length());
|
c = Character.toUpperCase(c.charAt(0)) + c.substring(1, c.length());
|
||||||
|
@ -1796,11 +1780,7 @@ public class LatinIME extends InputMethodService
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateSuggestions() {
|
private void updateSuggestions() {
|
||||||
LatinKeyboardView inputView = mKeyboardSwitcher.getInputView();
|
mKeyboardSwitcher.setPreferredLetters(null);
|
||||||
LatinKeyboard latinKeyboard = inputView.getLatinKeyboard();
|
|
||||||
if (latinKeyboard != null) {
|
|
||||||
latinKeyboard.setPreferredLetters(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if we have a suggestion engine attached.
|
// Check if we have a suggestion engine attached.
|
||||||
if ((mSuggest == null || !isPredictionOn()) && !mVoiceInputHighlighted) {
|
if ((mSuggest == null || !isPredictionOn()) && !mVoiceInputHighlighted) {
|
||||||
|
@ -1821,11 +1801,8 @@ public class LatinIME extends InputMethodService
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showCorrections(WordAlternatives alternatives) {
|
private void showCorrections(WordAlternatives alternatives) {
|
||||||
|
mKeyboardSwitcher.setPreferredLetters(null);
|
||||||
List<CharSequence> stringList = alternatives.getAlternatives();
|
List<CharSequence> stringList = alternatives.getAlternatives();
|
||||||
LatinKeyboard latinKeyboard = mKeyboardSwitcher.getInputView().getLatinKeyboard();
|
|
||||||
if (latinKeyboard != null) {
|
|
||||||
latinKeyboard.setPreferredLetters(null);
|
|
||||||
}
|
|
||||||
showSuggestions(stringList, alternatives.getOriginalWord(), false, false);
|
showSuggestions(stringList, alternatives.getOriginalWord(), false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1840,11 +1817,7 @@ public class LatinIME extends InputMethodService
|
||||||
// Log.d("LatinIME","Suggest Total Time - " + (stopTime - startTime));
|
// Log.d("LatinIME","Suggest Total Time - " + (stopTime - startTime));
|
||||||
|
|
||||||
int[] nextLettersFrequencies = mSuggest.getNextLettersFrequencies();
|
int[] nextLettersFrequencies = mSuggest.getNextLettersFrequencies();
|
||||||
|
mKeyboardSwitcher.setPreferredLetters(nextLettersFrequencies);
|
||||||
LatinKeyboard latinKeyboard = mKeyboardSwitcher.getInputView().getLatinKeyboard();
|
|
||||||
if (latinKeyboard != null) {
|
|
||||||
latinKeyboard.setPreferredLetters(nextLettersFrequencies);
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean correctionAvailable = !mInputTypeNoAutoCorrect && mSuggest.hasMinimalCorrection();
|
boolean correctionAvailable = !mInputTypeNoAutoCorrect && mSuggest.hasMinimalCorrection();
|
||||||
//|| mCorrectionMode == mSuggest.CORRECTION_FULL;
|
//|| mCorrectionMode == mSuggest.CORRECTION_FULL;
|
||||||
|
@ -2015,10 +1988,8 @@ public class LatinIME extends InputMethodService
|
||||||
* word.
|
* word.
|
||||||
*/
|
*/
|
||||||
private void pickSuggestion(CharSequence suggestion, boolean correcting) {
|
private void pickSuggestion(CharSequence suggestion, boolean correcting) {
|
||||||
LatinKeyboardView inputView = mKeyboardSwitcher.getInputView();
|
if (!mKeyboardSwitcher.isKeyboardAvailable())
|
||||||
if (inputView == null) return;
|
return;
|
||||||
LatinKeyboard latinKeyboard = inputView.getLatinKeyboard();
|
|
||||||
if (latinKeyboard == null) return;
|
|
||||||
InputConnection ic = getCurrentInputConnection();
|
InputConnection ic = getCurrentInputConnection();
|
||||||
if (ic != null) {
|
if (ic != null) {
|
||||||
rememberReplacedWord(suggestion);
|
rememberReplacedWord(suggestion);
|
||||||
|
@ -2027,9 +1998,7 @@ public class LatinIME extends InputMethodService
|
||||||
saveWordInHistory(suggestion);
|
saveWordInHistory(suggestion);
|
||||||
mPredicting = false;
|
mPredicting = false;
|
||||||
mCommittedLength = suggestion.length();
|
mCommittedLength = suggestion.length();
|
||||||
if (latinKeyboard != null) {
|
mKeyboardSwitcher.setPreferredLetters(null);
|
||||||
latinKeyboard.setPreferredLetters(null);
|
|
||||||
}
|
|
||||||
// If we just corrected a word, then don't show punctuations
|
// If we just corrected a word, then don't show punctuations
|
||||||
if (!correcting) {
|
if (!correcting) {
|
||||||
setPunctuationSuggestions();
|
setPunctuationSuggestions();
|
||||||
|
@ -2316,15 +2285,14 @@ public class LatinIME extends InputMethodService
|
||||||
public void onPress(int primaryCode) {
|
public void onPress(int primaryCode) {
|
||||||
vibrate();
|
vibrate();
|
||||||
playKeyClick(primaryCode);
|
playKeyClick(primaryCode);
|
||||||
final boolean distinctMultiTouch = mKeyboardSwitcher.hasDistinctMultitouch();
|
KeyboardSwitcher switcher = mKeyboardSwitcher;
|
||||||
LatinKeyboardView inputView = mKeyboardSwitcher.getInputView();
|
if (!switcher.isKeyboardAvailable())
|
||||||
if (inputView == null) return;
|
return;
|
||||||
LatinKeyboard latinKeyboard = inputView.getLatinKeyboard();
|
final boolean distinctMultiTouch = switcher.hasDistinctMultitouch();
|
||||||
if (latinKeyboard == null) return;
|
|
||||||
if (distinctMultiTouch && primaryCode == BaseKeyboard.KEYCODE_SHIFT) {
|
if (distinctMultiTouch && primaryCode == BaseKeyboard.KEYCODE_SHIFT) {
|
||||||
// In alphabet mode, we call handleShift() to go into the shifted mode in this
|
// In alphabet mode, we call handleShift() to go into the shifted mode in this
|
||||||
// method, onPress(), only when we are in the small letter mode.
|
// method, onPress(), only when we are in the small letter mode.
|
||||||
if (mKeyboardSwitcher.isAlphabetMode() && latinKeyboard.isShifted()) {
|
if (switcher.isAlphabetMode() && switcher.isShifted()) {
|
||||||
mShiftKeyState.onPressOnShifted();
|
mShiftKeyState.onPressOnShifted();
|
||||||
} else {
|
} else {
|
||||||
mShiftKeyState.onPress();
|
mShiftKeyState.onPress();
|
||||||
|
@ -2339,26 +2307,22 @@ public class LatinIME extends InputMethodService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Bug - onRelease() could be dropped if the user slides finger out of the key. It's OK
|
|
||||||
// for general keys, but we need to obtain onRelease() for the shift key even in such case.
|
|
||||||
public void onRelease(int primaryCode) {
|
public void onRelease(int primaryCode) {
|
||||||
|
KeyboardSwitcher switcher = mKeyboardSwitcher;
|
||||||
|
if (!switcher.isKeyboardAvailable())
|
||||||
|
return;
|
||||||
// Reset any drag flags in the keyboard
|
// Reset any drag flags in the keyboard
|
||||||
LatinKeyboardView inputView = mKeyboardSwitcher.getInputView();
|
switcher.keyReleased();
|
||||||
if (inputView == null) return;
|
final boolean distinctMultiTouch = switcher.hasDistinctMultitouch();
|
||||||
LatinKeyboard latinKeyboard = inputView.getLatinKeyboard();
|
|
||||||
if (latinKeyboard == null) return;
|
|
||||||
latinKeyboard.keyReleased();
|
|
||||||
//vibrate();
|
|
||||||
final boolean distinctMultiTouch = mKeyboardSwitcher.hasDistinctMultitouch();
|
|
||||||
if (distinctMultiTouch && primaryCode == BaseKeyboard.KEYCODE_SHIFT) {
|
if (distinctMultiTouch && primaryCode == BaseKeyboard.KEYCODE_SHIFT) {
|
||||||
if (mShiftKeyState.isMomentary()) {
|
if (mShiftKeyState.isMomentary()) {
|
||||||
resetShift();
|
resetShift();
|
||||||
}
|
}
|
||||||
if (mKeyboardSwitcher.isAlphabetMode()) {
|
if (switcher.isAlphabetMode()) {
|
||||||
// In alphabet mode, we call handleShift() to go into the small letter mode in this
|
// In alphabet mode, we call handleShift() to go into the small letter mode in this
|
||||||
// method, onRelease(), only when we are in the shifted modes -- temporary shifted
|
// method, onRelease(), only when we are in the shifted modes -- temporary shifted
|
||||||
// mode or caps lock mode.
|
// mode or caps lock mode.
|
||||||
if (latinKeyboard.isShifted() && mShiftKeyState.isPressingOnShifted()) {
|
if (switcher.isShifted() && mShiftKeyState.isPressingOnShifted()) {
|
||||||
handleShift();
|
handleShift();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2441,8 +2405,9 @@ public class LatinIME extends InputMethodService
|
||||||
if (!mVibrateOn) {
|
if (!mVibrateOn) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (mKeyboardSwitcher.getInputView() != null) {
|
LatinKeyboardView inputView = mKeyboardSwitcher.getInputView();
|
||||||
mKeyboardSwitcher.getInputView().performHapticFeedback(
|
if (inputView != null) {
|
||||||
|
inputView.performHapticFeedback(
|
||||||
HapticFeedbackConstants.KEYBOARD_TAP,
|
HapticFeedbackConstants.KEYBOARD_TAP,
|
||||||
HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
|
HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
|
||||||
}
|
}
|
||||||
|
@ -2664,13 +2629,12 @@ public class LatinIME extends InputMethodService
|
||||||
}
|
}
|
||||||
|
|
||||||
private void changeKeyboardMode() {
|
private void changeKeyboardMode() {
|
||||||
mKeyboardSwitcher.toggleSymbols();
|
KeyboardSwitcher switcher = mKeyboardSwitcher;
|
||||||
LatinKeyboardView inputView = mKeyboardSwitcher.getInputView();
|
switcher.toggleSymbols();
|
||||||
if (inputView == null) return;
|
if (!switcher.isKeyboardAvailable())
|
||||||
LatinKeyboard latinKeyboard = inputView.getLatinKeyboard();
|
return;
|
||||||
if (latinKeyboard == null) return;
|
if (switcher.isShiftLocked() && switcher.isAlphabetMode()) {
|
||||||
if (latinKeyboard.isShiftLocked() && mKeyboardSwitcher.isAlphabetMode()) {
|
switcher.setShiftLocked(true);
|
||||||
mKeyboardSwitcher.setShiftLocked(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
updateShiftKeyState(getCurrentInputEditorInfo());
|
updateShiftKeyState(getCurrentInputEditorInfo());
|
||||||
|
|
Loading…
Reference in New Issue