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")
|
||||
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() {
|
||||
// This utility class is not publicly instantiable.
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
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_COMPAT;
|
||||
|
||||
|
@ -42,6 +43,12 @@ public final class InputAttributes {
|
|||
final public boolean mApplicationSpecifiedCompletionOn;
|
||||
final public boolean mShouldInsertSpacesAutomatically;
|
||||
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 EditorInfo mEditorInfo;
|
||||
final private String mPackageNameForPrivateImeOptions;
|
||||
|
@ -76,6 +83,7 @@ public final class InputAttributes {
|
|||
mApplicationSpecifiedCompletionOn = false;
|
||||
mShouldInsertSpacesAutomatically = false;
|
||||
mShouldShowVoiceInputKey = false;
|
||||
mDisableGestureFloatingPreviewText = false;
|
||||
return;
|
||||
}
|
||||
// inputClass == InputType.TYPE_CLASS_TEXT
|
||||
|
@ -107,6 +115,9 @@ public final class InputAttributes {
|
|||
|| hasNoMicrophoneKeyOption();
|
||||
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
|
||||
// disable auto correction, but keep suggestions on.
|
||||
// If NO_SUGGESTIONS is set, don't do prediction.
|
||||
|
|
|
@ -162,8 +162,8 @@ public class SettingsValues {
|
|||
autoCorrectionThresholdRawValue);
|
||||
mGestureInputEnabled = Settings.readGestureInputEnabled(prefs, res);
|
||||
mGestureTrailEnabled = prefs.getBoolean(Settings.PREF_GESTURE_PREVIEW_TRAIL, true);
|
||||
mGestureFloatingPreviewTextEnabled = prefs.getBoolean(
|
||||
Settings.PREF_GESTURE_FLOATING_PREVIEW_TEXT, true);
|
||||
mGestureFloatingPreviewTextEnabled = !mInputAttributes.mDisableGestureFloatingPreviewText
|
||||
&& prefs.getBoolean(Settings.PREF_GESTURE_FLOATING_PREVIEW_TEXT, true);
|
||||
mPhraseGestureEnabled = Settings.readPhraseGestureEnabled(prefs, res);
|
||||
mAutoCorrectionEnabledPerUserSettings = mAutoCorrectEnabled
|
||||
&& !mInputAttributes.mInputTypeNoAutoCorrect;
|
||||
|
|
Loading…
Reference in New Issue