Add a private IME option to suppress the gesture floating preview text.
If the option defined by Constants.NO_FLOATING_GESTURE_PREVIEW is set for a text field via EditorInfo.privateImeOptions, the floating gesture preview will be suppressed regardless of the settings preference. Feature request: bug: 17325039 Change-Id: I1a1df194369e8f2d76abd9d84939a057f55f4a1cmain
parent
dec2c2d910
commit
95b7bd3ba5
|
@ -57,6 +57,13 @@ public final class Constants {
|
||||||
@SuppressWarnings("dep-ann")
|
@SuppressWarnings("dep-ann")
|
||||||
public static final String FORCE_ASCII = "forceAscii";
|
public static final String FORCE_ASCII = "forceAscii";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The private IME option used to suppress the floating gesture preview for a given text
|
||||||
|
* field. This overrides the corresponding keyboard settings preference.
|
||||||
|
* {@link com.android.inputmethod.latin.settings.SettingsValues#mGestureFloatingPreviewTextEnabled}
|
||||||
|
*/
|
||||||
|
public static final String NO_FLOATING_GESTURE_PREVIEW = "noGestureFloatingPreview";
|
||||||
|
|
||||||
private ImeOption() {
|
private ImeOption() {
|
||||||
// This utility class is not publicly instantiable.
|
// This utility class is not publicly instantiable.
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
package com.android.inputmethod.latin;
|
package com.android.inputmethod.latin;
|
||||||
|
|
||||||
|
import static com.android.inputmethod.latin.Constants.ImeOption.NO_FLOATING_GESTURE_PREVIEW;
|
||||||
import static com.android.inputmethod.latin.Constants.ImeOption.NO_MICROPHONE;
|
import static com.android.inputmethod.latin.Constants.ImeOption.NO_MICROPHONE;
|
||||||
import static com.android.inputmethod.latin.Constants.ImeOption.NO_MICROPHONE_COMPAT;
|
import static com.android.inputmethod.latin.Constants.ImeOption.NO_MICROPHONE_COMPAT;
|
||||||
|
|
||||||
|
@ -42,6 +43,12 @@ public final class InputAttributes {
|
||||||
final public boolean mApplicationSpecifiedCompletionOn;
|
final public boolean mApplicationSpecifiedCompletionOn;
|
||||||
final public boolean mShouldInsertSpacesAutomatically;
|
final public boolean mShouldInsertSpacesAutomatically;
|
||||||
final public boolean mShouldShowVoiceInputKey;
|
final public boolean mShouldShowVoiceInputKey;
|
||||||
|
/**
|
||||||
|
* Whether the floating gesture preview should be disabled. If true, this should override the
|
||||||
|
* corresponding keyboard settings preference, always suppressing the floating preview text.
|
||||||
|
* {@link com.android.inputmethod.latin.settings.SettingsValues#mGestureFloatingPreviewTextEnabled}
|
||||||
|
*/
|
||||||
|
final public boolean mDisableGestureFloatingPreviewText;
|
||||||
final private int mInputType;
|
final private int mInputType;
|
||||||
final private EditorInfo mEditorInfo;
|
final private EditorInfo mEditorInfo;
|
||||||
final private String mPackageNameForPrivateImeOptions;
|
final private String mPackageNameForPrivateImeOptions;
|
||||||
|
@ -76,6 +83,7 @@ public final class InputAttributes {
|
||||||
mApplicationSpecifiedCompletionOn = false;
|
mApplicationSpecifiedCompletionOn = false;
|
||||||
mShouldInsertSpacesAutomatically = false;
|
mShouldInsertSpacesAutomatically = false;
|
||||||
mShouldShowVoiceInputKey = false;
|
mShouldShowVoiceInputKey = false;
|
||||||
|
mDisableGestureFloatingPreviewText = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// inputClass == InputType.TYPE_CLASS_TEXT
|
// inputClass == InputType.TYPE_CLASS_TEXT
|
||||||
|
@ -107,6 +115,9 @@ public final class InputAttributes {
|
||||||
|| hasNoMicrophoneKeyOption();
|
|| hasNoMicrophoneKeyOption();
|
||||||
mShouldShowVoiceInputKey = !noMicrophone;
|
mShouldShowVoiceInputKey = !noMicrophone;
|
||||||
|
|
||||||
|
mDisableGestureFloatingPreviewText = InputAttributes.inPrivateImeOptions(
|
||||||
|
mPackageNameForPrivateImeOptions, NO_FLOATING_GESTURE_PREVIEW, editorInfo);
|
||||||
|
|
||||||
// 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.
|
||||||
|
|
|
@ -162,8 +162,8 @@ public class SettingsValues {
|
||||||
autoCorrectionThresholdRawValue);
|
autoCorrectionThresholdRawValue);
|
||||||
mGestureInputEnabled = Settings.readGestureInputEnabled(prefs, res);
|
mGestureInputEnabled = Settings.readGestureInputEnabled(prefs, res);
|
||||||
mGestureTrailEnabled = prefs.getBoolean(Settings.PREF_GESTURE_PREVIEW_TRAIL, true);
|
mGestureTrailEnabled = prefs.getBoolean(Settings.PREF_GESTURE_PREVIEW_TRAIL, true);
|
||||||
mGestureFloatingPreviewTextEnabled = prefs.getBoolean(
|
mGestureFloatingPreviewTextEnabled = !mInputAttributes.mDisableGestureFloatingPreviewText
|
||||||
Settings.PREF_GESTURE_FLOATING_PREVIEW_TEXT, true);
|
&& prefs.getBoolean(Settings.PREF_GESTURE_FLOATING_PREVIEW_TEXT, true);
|
||||||
mPhraseGestureEnabled = Settings.readPhraseGestureEnabled(prefs, res);
|
mPhraseGestureEnabled = Settings.readPhraseGestureEnabled(prefs, res);
|
||||||
mAutoCorrectionEnabledPerUserSettings = mAutoCorrectEnabled
|
mAutoCorrectionEnabledPerUserSettings = mAutoCorrectEnabled
|
||||||
&& !mInputAttributes.mInputTypeNoAutoCorrect;
|
&& !mInputAttributes.mInputTypeNoAutoCorrect;
|
||||||
|
|
Loading…
Reference in New Issue