am d89a34b0: Merge "Hide voice input key from URI, Email, Number, and Phone layout"

* commit 'd89a34b0a1e7b5df7526e42027f8379a25baa291':
  Hide voice input key from URI, Email, Number, and Phone layout
This commit is contained in:
Tadashi G. Takaoka 2014-06-19 01:49:36 +00:00 committed by Android Git Automerger
commit 5e7af7077c
2 changed files with 10 additions and 3 deletions

View file

@ -41,6 +41,7 @@ public final class InputAttributes {
final public boolean mShouldShowSuggestions; final public boolean mShouldShowSuggestions;
final public boolean mApplicationSpecifiedCompletionOn; final public boolean mApplicationSpecifiedCompletionOn;
final public boolean mShouldInsertSpacesAutomatically; final public boolean mShouldInsertSpacesAutomatically;
final public boolean mShouldShowVoiceInputKey;
final private int mInputType; final private int mInputType;
final private EditorInfo mEditorInfo; final private EditorInfo mEditorInfo;
final private String mPackageNameForPrivateImeOptions; final private String mPackageNameForPrivateImeOptions;
@ -74,6 +75,7 @@ public final class InputAttributes {
mInputTypeNoAutoCorrect = false; mInputTypeNoAutoCorrect = false;
mApplicationSpecifiedCompletionOn = false; mApplicationSpecifiedCompletionOn = false;
mShouldInsertSpacesAutomatically = false; mShouldInsertSpacesAutomatically = false;
mShouldShowVoiceInputKey = false;
return; return;
} }
// inputClass == InputType.TYPE_CLASS_TEXT // inputClass == InputType.TYPE_CLASS_TEXT
@ -99,6 +101,12 @@ public final class InputAttributes {
mShouldInsertSpacesAutomatically = InputTypeUtils.isAutoSpaceFriendlyType(inputType); mShouldInsertSpacesAutomatically = InputTypeUtils.isAutoSpaceFriendlyType(inputType);
final boolean noMicrophone = mIsPasswordField
|| InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS == variation
|| InputType.TYPE_TEXT_VARIATION_URI == variation
|| hasNoMicrophoneKeyOption();
mShouldShowVoiceInputKey = !noMicrophone;
// If it's a browser edit field and auto correct is not ON explicitly, then // If it's a browser edit field and auto correct is not ON explicitly, then
// disable auto correction, but keep suggestions on. // disable auto correction, but keep suggestions on.
// If NO_SUGGESTIONS is set, don't do prediction. // If NO_SUGGESTIONS is set, don't do prediction.
@ -119,7 +127,7 @@ public final class InputAttributes {
return editorInfo.inputType == mInputType; return editorInfo.inputType == mInputType;
} }
public boolean hasNoMicrophoneKeyOption() { private boolean hasNoMicrophoneKeyOption() {
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
final boolean deprecatedNoMicrophone = InputAttributes.inPrivateImeOptions( final boolean deprecatedNoMicrophone = InputAttributes.inPrivateImeOptions(
null, NO_MICROPHONE_COMPAT, mEditorInfo); null, NO_MICROPHONE_COMPAT, mEditorInfo);

View file

@ -125,8 +125,7 @@ public final class SettingsValues {
mSlidingKeyInputPreviewEnabled = prefs.getBoolean( mSlidingKeyInputPreviewEnabled = prefs.getBoolean(
DebugSettings.PREF_SLIDING_KEY_INPUT_PREVIEW, true); DebugSettings.PREF_SLIDING_KEY_INPUT_PREVIEW, true);
mShowsVoiceInputKey = needsToShowVoiceInputKey(prefs, res) mShowsVoiceInputKey = needsToShowVoiceInputKey(prefs, res)
&& !mInputAttributes.mIsPasswordField && mInputAttributes.mShouldShowVoiceInputKey
&& !mInputAttributes.hasNoMicrophoneKeyOption()
&& SubtypeSwitcher.getInstance().isShortcutImeEnabled(); && SubtypeSwitcher.getInstance().isShortcutImeEnabled();
final String autoCorrectionThresholdRawValue = prefs.getString( final String autoCorrectionThresholdRawValue = prefs.getString(
Settings.PREF_AUTO_CORRECTION_THRESHOLD, Settings.PREF_AUTO_CORRECTION_THRESHOLD,