diff options
| author | 2011-05-23 16:28:47 -0700 | |
|---|---|---|
| committer | 2011-05-23 17:15:20 -0700 | |
| commit | f3a135bfbae0e64cf32dcb21714420ec974b1cab (patch) | |
| tree | c0e0766cfb24b3b8598af7187b8e987dacfbc78b | |
| parent | 37cd57772b27bb286aeec915cfaced4fa08508bd (diff) | |
Added a new flag in TextView to disable Suggestions.
This is needed for specific TextEdit (such as AutoCompleteTextField)
which do not want to display the "No suggestions available" message.
Bug 4443830
Change-Id: Ic228b56bacfdf2765e70eb24952ab087556c1f93
| -rw-r--r-- | api/current.txt | 3 | ||||
| -rw-r--r-- | core/java/android/widget/TextView.java | 42 | ||||
| -rwxr-xr-x | core/res/res/values/attrs.xml | 6 | ||||
| -rw-r--r-- | core/res/res/values/public.xml | 1 |
4 files changed, 47 insertions, 5 deletions
diff --git a/api/current.txt b/api/current.txt index 3339497a2f2c..3558451e2961 100644 --- a/api/current.txt +++ b/api/current.txt @@ -866,6 +866,7 @@ package android { field public static final int subtitleTextStyle = 16843513; // 0x10102f9 field public static final int suggestActionMsg = 16843228; // 0x10101dc field public static final int suggestActionMsgColumn = 16843229; // 0x10101dd + field public static final int suggestionsEnabled = 16843630; // 0x101036e field public static final int summary = 16843241; // 0x10101e9 field public static final int summaryColumn = 16843426; // 0x10102a2 field public static final int summaryOff = 16843248; // 0x10101f0 @@ -25227,6 +25228,7 @@ package android.widget { method public android.text.style.URLSpan[] getUrls(); method public boolean hasSelection(); method public boolean isInputMethodTarget(); + method public boolean isSuggestionsEnabled(); method public boolean isTextSelectable(); method public int length(); method public boolean moveCursorToVisibleOffset(); @@ -25298,6 +25300,7 @@ package android.widget { method public void setSingleLine(); method public void setSingleLine(boolean); method public final void setSpannableFactory(android.text.Spannable.Factory); + method public void setSuggestionsEnabled(boolean); method public final void setText(java.lang.CharSequence); method public void setText(java.lang.CharSequence, android.widget.TextView.BufferType); method public final void setText(char[], int, int); diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index d58c72b4a846..8fcf6025ad36 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -16,11 +16,6 @@ package android.widget; -import com.android.internal.util.FastMath; -import com.android.internal.widget.EditableInputConnection; - -import org.xmlpull.v1.XmlPullParserException; - import android.R; import android.content.ClipData; import android.content.ClipData.Item; @@ -129,6 +124,11 @@ import android.view.inputmethod.InputConnection; import android.view.inputmethod.InputMethodManager; import android.widget.RemoteViews.RemoteView; +import com.android.internal.util.FastMath; +import com.android.internal.widget.EditableInputConnection; + +import org.xmlpull.v1.XmlPullParserException; + import java.io.IOException; import java.lang.ref.WeakReference; import java.text.BreakIterator; @@ -320,6 +320,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener private int mTextEditSuggestionItemLayout; private SuggestionsPopupWindow mSuggestionsPopupWindow; private SuggestionRangeSpan mSuggestionRangeSpan; + private boolean mSuggestionsEnabled = true; private int mCursorDrawableRes; private final Drawable[] mCursorDrawable = new Drawable[2]; @@ -806,6 +807,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener case com.android.internal.R.styleable.TextView_textIsSelectable: mTextIsSelectable = a.getBoolean(attr, false); break; + + case com.android.internal.R.styleable.TextView_suggestionsEnabled: + mSuggestionsEnabled = a.getBoolean(attr, true); + break; } } a.recycle(); @@ -8601,6 +8606,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } void showSuggestions() { + if (!mSuggestionsEnabled || !isTextEditable()) return; + if (mSuggestionsPopupWindow == null) { mSuggestionsPopupWindow = new SuggestionsPopupWindow(); } @@ -8615,6 +8622,31 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } /** + * Some parts of the text can have alternate suggestion text attached. This is typically done by + * the IME by adding {@link SuggestionSpan}s to the text. + * + * When suggestions are enabled (default), this list of suggestions will be displayed when the + * user double taps on these parts of the text. No suggestions are displayed when this value is + * false. Use {@link #setSuggestionsEnabled(boolean)} to change this value. + * + * @return true if the suggestions popup window is enabled. + * + * @attr ref android.R.styleable#TextView_suggestionsEnabled + */ + public boolean isSuggestionsEnabled() { + return mSuggestionsEnabled; + } + + /** + * Enables or disables the suggestion popup. See {@link #isSuggestionsEnabled()}. + * + * @param enabled Whether or not suggestions are enabled. + */ + public void setSuggestionsEnabled(boolean enabled) { + mSuggestionsEnabled = enabled; + } + + /** * If provided, this ActionMode.Callback will be used to create the ActionMode when text * selection is initiated in this View. * diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index 6c18089b5332..ebb70e38dc0a 100755 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -823,6 +823,10 @@ Default value is false. EditText content is always selectable. --> <attr name="textIsSelectable" format="boolean" /> + <!-- When true, IME suggestions will be displayed when the user double taps on editable text. + The default value is true. --> + <attr name="suggestionsEnabled" format="boolean" /> + <!-- Where to ellipsize text. --> <attr name="ellipsize"> <enum name="none" value="0" /> @@ -2877,6 +2881,8 @@ <!-- Indicates that the content of a non-editable text can be selected. --> <attr name="textIsSelectable" /> + <!-- Suggestions will be displayed when the user double taps on editable text. --> + <attr name="suggestionsEnabled" /> </declare-styleable> <!-- An <code>input-extras</code> is a container for extra data to supply to an input method. Contains diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml index 8ad8f674d7cc..1957b2a0a7f0 100644 --- a/core/res/res/values/public.xml +++ b/core/res/res/values/public.xml @@ -1670,5 +1670,6 @@ <public type="attr" name="horizontalDirection" /> <public type="attr" name="fullBackupAgent" /> + <public type="attr" name="suggestionsEnabled" /> </resources> |