am d5a6b910: Purge keyboard only when voice input will be invoked
* commit 'd5a6b910e83de6dea3c5813cbf5e219abaccdf8a': Purge keyboard only when voice input will be invokedmain
commit
e02cf10964
|
@ -161,9 +161,10 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
|
|||
final Keyboard oldKeyboard = mInputView.getKeyboard();
|
||||
loadKeyboardInternal(mode, imeOptions, voiceKeyEnabled, voiceButtonOnPrimary, false);
|
||||
final Keyboard newKeyboard = mInputView.getKeyboard();
|
||||
if (newKeyboard.isAlphaKeyboard() && (oldKeyboard == null
|
||||
|| !newKeyboard.mId.mLocale.equals(oldKeyboard.mId.mLocale))) {
|
||||
mInputMethodService.mHandler.startDisplayLanguageOnSpacebar();
|
||||
if (newKeyboard.isAlphaKeyboard()) {
|
||||
final boolean localeChanged = (oldKeyboard == null)
|
||||
|| !newKeyboard.mId.mLocale.equals(oldKeyboard.mId.mLocale);
|
||||
mInputMethodService.mHandler.startDisplayLanguageOnSpacebar(localeChanged);
|
||||
}
|
||||
} catch (RuntimeException e) {
|
||||
Log.w(TAG, e);
|
||||
|
|
|
@ -1404,11 +1404,15 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
|
|||
dismissPopupKeyboard();
|
||||
mBuffer = null;
|
||||
mCanvas = null;
|
||||
mKeyboard = null;
|
||||
mMiniKeyboardCache.clear();
|
||||
requestLayout();
|
||||
}
|
||||
|
||||
public void purgeKeyboardAndClosing() {
|
||||
mKeyboard = null;
|
||||
closing();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow();
|
||||
|
|
|
@ -154,7 +154,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
private boolean mConfigSwipeDownDismissKeyboardEnabled;
|
||||
private int mConfigDelayBeforeFadeoutLanguageOnSpacebar;
|
||||
private int mConfigDurationOfFadeoutLanguageOnSpacebar;
|
||||
private float mConfigFinalFadeoutFactorOfLanugageOnSpacebar;
|
||||
private float mConfigFinalFadeoutFactorOfLanguageOnSpacebar;
|
||||
|
||||
private int mCorrectionMode;
|
||||
private int mCommittedLength;
|
||||
|
@ -269,7 +269,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
case MSG_FADEOUT_LANGUAGE_ON_SPACEBAR:
|
||||
if (inputView != null)
|
||||
inputView.setSpacebarTextFadeFactor(
|
||||
(1.0f + mConfigFinalFadeoutFactorOfLanugageOnSpacebar) / 2,
|
||||
(1.0f + mConfigFinalFadeoutFactorOfLanguageOnSpacebar) / 2,
|
||||
(LatinKeyboard)msg.obj);
|
||||
sendMessageDelayed(obtainMessage(MSG_DISMISS_LANGUAGE_ON_SPACEBAR, msg.obj),
|
||||
mConfigDurationOfFadeoutLanguageOnSpacebar);
|
||||
|
@ -277,7 +277,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
case MSG_DISMISS_LANGUAGE_ON_SPACEBAR:
|
||||
if (inputView != null)
|
||||
inputView.setSpacebarTextFadeFactor(
|
||||
mConfigFinalFadeoutFactorOfLanugageOnSpacebar, (LatinKeyboard)msg.obj);
|
||||
mConfigFinalFadeoutFactorOfLanguageOnSpacebar, (LatinKeyboard)msg.obj);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -318,7 +318,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
sendMessage(obtainMessage(MSG_VOICE_RESULTS));
|
||||
}
|
||||
|
||||
public void startDisplayLanguageOnSpacebar() {
|
||||
public void startDisplayLanguageOnSpacebar(boolean localeChanged) {
|
||||
removeMessages(MSG_FADEOUT_LANGUAGE_ON_SPACEBAR);
|
||||
removeMessages(MSG_DISMISS_LANGUAGE_ON_SPACEBAR);
|
||||
final LatinKeyboardView inputView = mKeyboardSwitcher.getInputView();
|
||||
|
@ -326,9 +326,10 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
final LatinKeyboard keyboard = inputView.getLatinKeyboard();
|
||||
// The language is never displayed when the delay is zero.
|
||||
if (mConfigDelayBeforeFadeoutLanguageOnSpacebar != 0)
|
||||
inputView.setSpacebarTextFadeFactor(1.0f, keyboard);
|
||||
inputView.setSpacebarTextFadeFactor(localeChanged ? 1.0f
|
||||
: mConfigFinalFadeoutFactorOfLanguageOnSpacebar, keyboard);
|
||||
// The language is always displayed when the delay is negative.
|
||||
if (mConfigDelayBeforeFadeoutLanguageOnSpacebar > 0) {
|
||||
if (localeChanged && mConfigDelayBeforeFadeoutLanguageOnSpacebar > 0) {
|
||||
sendMessageDelayed(obtainMessage(MSG_FADEOUT_LANGUAGE_ON_SPACEBAR, keyboard),
|
||||
mConfigDelayBeforeFadeoutLanguageOnSpacebar);
|
||||
}
|
||||
|
@ -360,7 +361,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
R.integer.config_delay_before_fadeout_language_on_spacebar);
|
||||
mConfigDurationOfFadeoutLanguageOnSpacebar = res.getInteger(
|
||||
R.integer.config_duration_of_fadeout_language_on_spacebar);
|
||||
mConfigFinalFadeoutFactorOfLanugageOnSpacebar = res.getInteger(
|
||||
mConfigFinalFadeoutFactorOfLanguageOnSpacebar = res.getInteger(
|
||||
R.integer.config_final_fadeout_percentage_of_language_on_spacebar) / 100.0f;
|
||||
|
||||
Utils.GCUtils.getInstance().reset();
|
||||
|
|
|
@ -631,7 +631,7 @@ public class VoiceIMEConnector implements VoiceInput.UiListener {
|
|||
if (mSubtypeSwitcher.isVoiceMode() && token != null) {
|
||||
// Close keyboard view if it is been shown.
|
||||
if (KeyboardSwitcher.getInstance().isInputViewShown())
|
||||
KeyboardSwitcher.getInstance().getInputView().closing();
|
||||
KeyboardSwitcher.getInstance().getInputView().purgeKeyboardAndClosing();
|
||||
startListening(false, token, false);
|
||||
}
|
||||
// If we have no token, onAttachedToWindow will take care of showing dialog and start
|
||||
|
|
Loading…
Reference in New Issue