Follow up change of I8b38e280 (DO NOT MERGE)
This is follow up change of I8b38e2803eb32469653484701882af35108eb69a This change fixes the following when "Voice input on symbols keyboard" option is selected. - LatinIME.onCreateInputView fails to show "123mic" icon. - Email and URL variation keyboard fails to show "123mic" icon. Bug: 3084022 Change-Id: Ia3929bb0cc5c5c8651af816718c21d1f20e8f016main
parent
179fa2c03e
commit
0661496ee0
|
@ -260,7 +260,8 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
|
||||||
mMode = mode;
|
mMode = mode;
|
||||||
mImeOptions = imeOptions;
|
mImeOptions = imeOptions;
|
||||||
if (enableVoice != mHasVoice) {
|
if (enableVoice != mHasVoice) {
|
||||||
setVoiceMode(mHasVoice, mVoiceOnPrimary);
|
// TODO clean up this unnecessary recursive call.
|
||||||
|
setVoiceMode(enableVoice, mVoiceOnPrimary);
|
||||||
}
|
}
|
||||||
mIsSymbols = isSymbols;
|
mIsSymbols = isSymbols;
|
||||||
|
|
||||||
|
|
|
@ -2329,8 +2329,8 @@ public class LatinIME extends InputMethodService
|
||||||
|
|
||||||
private boolean shouldShowVoiceButton(FieldContext fieldContext, EditorInfo attribute) {
|
private boolean shouldShowVoiceButton(FieldContext fieldContext, EditorInfo attribute) {
|
||||||
return ENABLE_VOICE_BUTTON && fieldCanDoVoice(fieldContext)
|
return ENABLE_VOICE_BUTTON && fieldCanDoVoice(fieldContext)
|
||||||
&& !(attribute != null && attribute.privateImeOptions != null
|
&& !(attribute != null
|
||||||
&& attribute.privateImeOptions.equals(IME_OPTION_NO_MICROPHONE))
|
&& IME_OPTION_NO_MICROPHONE.equals(attribute.privateImeOptions))
|
||||||
&& SpeechRecognizer.isRecognitionAvailable(this);
|
&& SpeechRecognizer.isRecognitionAvailable(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -336,7 +336,7 @@ public class LatinKeyboard extends Keyboard {
|
||||||
mMicIcon = mRes.getDrawable(R.drawable.sym_keyboard_mic);
|
mMicIcon = mRes.getDrawable(R.drawable.sym_keyboard_mic);
|
||||||
m123MicIcon = mRes.getDrawable(R.drawable.sym_keyboard_123_mic);
|
m123MicIcon = mRes.getDrawable(R.drawable.sym_keyboard_123_mic);
|
||||||
}
|
}
|
||||||
updateF1Key();
|
updateDynamicKeys();
|
||||||
if (mSpaceKey != null) {
|
if (mSpaceKey != null) {
|
||||||
updateSpaceBarForLocale(isAutoCompletion, isBlack);
|
updateSpaceBarForLocale(isAutoCompletion, isBlack);
|
||||||
}
|
}
|
||||||
|
@ -350,11 +350,11 @@ public class LatinKeyboard extends Keyboard {
|
||||||
public void setVoiceMode(boolean hasVoiceButton, boolean hasVoice) {
|
public void setVoiceMode(boolean hasVoiceButton, boolean hasVoice) {
|
||||||
mHasVoiceButton = hasVoiceButton;
|
mHasVoiceButton = hasVoiceButton;
|
||||||
mVoiceEnabled = hasVoice;
|
mVoiceEnabled = hasVoice;
|
||||||
updateF1Key();
|
updateDynamicKeys();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateF1Key() {
|
private void updateDynamicKeys() {
|
||||||
if (mF1Key == null) return;
|
// Update KEYCODE_MODE_CHANGE key only on alphabet mode, not on symbol mode.
|
||||||
if (m123Key != null && mIsAlphaKeyboard) {
|
if (m123Key != null && mIsAlphaKeyboard) {
|
||||||
if (mVoiceEnabled && !mHasVoiceButton) {
|
if (mVoiceEnabled && !mHasVoiceButton) {
|
||||||
m123Key.icon = m123MicIcon;
|
m123Key.icon = m123MicIcon;
|
||||||
|
@ -367,6 +367,8 @@ public class LatinKeyboard extends Keyboard {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Update KEYCODE_F1 key. Please note that some keyboard layout has no F1 key.
|
||||||
|
if (mF1Key != null) {
|
||||||
if (mHasVoiceButton && mVoiceEnabled) {
|
if (mHasVoiceButton && mVoiceEnabled) {
|
||||||
mF1Key.codes = new int[] { LatinKeyboardView.KEYCODE_VOICE };
|
mF1Key.codes = new int[] { LatinKeyboardView.KEYCODE_VOICE };
|
||||||
mF1Key.label = null;
|
mF1Key.label = null;
|
||||||
|
@ -378,14 +380,15 @@ public class LatinKeyboard extends Keyboard {
|
||||||
} else {
|
} else {
|
||||||
mF1Key.label = ",";
|
mF1Key.label = ",";
|
||||||
mF1Key.codes = new int[] { ',' };
|
mF1Key.codes = new int[] { ',' };
|
||||||
// HACK: draw only mF1HintIcon on offscreen buffer to adjust position of '...' to the
|
// HACK: draw only mF1HintIcon on offscreen buffer to adjust position of '...' to
|
||||||
// above synthesized icon
|
// the above synthesized icon
|
||||||
mF1Key.icon = new BitmapDrawable(mRes, drawSynthesizedSettingsHintImage(
|
mF1Key.icon = new BitmapDrawable(mRes, drawSynthesizedSettingsHintImage(
|
||||||
mF1Key.width, mF1Key.height + mVerticalGap, null, mF1HintIcon));
|
mF1Key.width, mF1Key.height + mVerticalGap, null, mF1HintIcon));
|
||||||
mF1Key.iconPreview = null;
|
mF1Key.iconPreview = null;
|
||||||
mF1Key.popupResId = R.xml.popup_comma;
|
mF1Key.popupResId = R.xml.popup_comma;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return a key which should be invalidated.
|
* @return a key which should be invalidated.
|
||||||
|
|
Loading…
Reference in New Issue