Loading library/TokenAutoComplete/src/main/java/com/tokenautocomplete/TokenCompleteTextView.java +2 −26 Original line number Diff line number Diff line Loading @@ -66,7 +66,6 @@ public abstract class TokenCompleteTextView<T> extends AppCompatAutoCompleteText private Layout lastLayout = null; private boolean initialized = false; private boolean performBestGuess = true; private boolean preventFreeFormText = true; private boolean savingState = false; private boolean shouldFocusNext = false; private boolean allowCollapse = true; Loading Loading @@ -147,9 +146,7 @@ public abstract class TokenCompleteTextView<T> extends AppCompatAutoCompleteText //Detect split characters, remove them and complete the current token instead if (tokenizer.containsTokenTerminator(source)) { //Only perform completion if we don't allow free form text, or if there's enough //content to believe this should be a token if (preventFreeFormText || currentCompletionText().length() > 0) { if (currentCompletionText().length() > 0) { performCompletion(); return ""; } Loading Loading @@ -256,18 +253,6 @@ public abstract class TokenCompleteTextView<T> extends AppCompatAutoCompleteText performBestGuess = guess; } /** * If set to true, the only content in this view will be the tokens and the current completion * text. Use this setting to create things like lists of email addresses. If false, it the view * will allow text in addition to tokens. Use this if you want to use the token search to find * things like user names or hash tags to put in with text. * * @param prevent true to prevent non-token text. Defaults to true. */ public void preventFreeFormText(boolean prevent) { preventFreeFormText = prevent; } /** * Set whether the view should collapse to a single line when it loses focus. * Loading Loading @@ -637,8 +622,7 @@ public abstract class TokenCompleteTextView<T> extends AppCompatAutoCompleteText //Ellipsize copies spans, so we need to stop listening to span changes here text.removeSpan(spanWatcher); CountSpan temp = preventFreeFormText ? countSpan : null; Spanned ellipsized = SpanUtils.ellipsizeWithSpans(temp, getObjects().size(), Spanned ellipsized = SpanUtils.ellipsizeWithSpans(countSpan, getObjects().size(), lastLayout.getPaint(), text, maxTextWidth()); if (ellipsized != null) { Loading Loading @@ -848,9 +832,6 @@ public abstract class TokenCompleteTextView<T> extends AppCompatAutoCompleteText * Set the count span the current number of hidden objects */ private void updateCountSpan() { //No count span with free form text if (!preventFreeFormText) { return; } Editable text = getText(); int visibleCount = getText().getSpans(0, getText().length(), TokenImageSpan.class).length; Loading Loading @@ -1094,7 +1075,6 @@ public abstract class TokenCompleteTextView<T> extends AppCompatAutoCompleteText state.allowCollapse = allowCollapse; state.performBestGuess = performBestGuess; state.preventFreeFormText = preventFreeFormText; Class parameterizedClass = reifyParameterizedTypeClass(); //Our core array is Parcelable, so use that interface if (Parcelable.class.isAssignableFrom(parameterizedClass)) { Loading Loading @@ -1131,7 +1111,6 @@ public abstract class TokenCompleteTextView<T> extends AppCompatAutoCompleteText allowCollapse = ss.allowCollapse; performBestGuess = ss.performBestGuess; preventFreeFormText = ss.preventFreeFormText; tokenizer = ss.tokenizer; addListeners(); Loading Loading @@ -1167,7 +1146,6 @@ public abstract class TokenCompleteTextView<T> extends AppCompatAutoCompleteText boolean allowCollapse; boolean performBestGuess; boolean preventFreeFormText; String parcelableClassName; List<?> baseObjects; String tokenizerClassName; Loading @@ -1178,7 +1156,6 @@ public abstract class TokenCompleteTextView<T> extends AppCompatAutoCompleteText super(in); allowCollapse = in.readInt() != 0; performBestGuess = in.readInt() != 0; preventFreeFormText = in.readInt() != 0; parcelableClassName = in.readString(); if (SERIALIZABLE_PLACEHOLDER.equals(parcelableClassName)) { baseObjects = (ArrayList)in.readSerializable(); Loading Loading @@ -1210,7 +1187,6 @@ public abstract class TokenCompleteTextView<T> extends AppCompatAutoCompleteText super.writeToParcel(out, flags); out.writeInt(allowCollapse ? 1 : 0); out.writeInt(performBestGuess ? 1 : 0); out.writeInt(preventFreeFormText ? 1 : 0); if (SERIALIZABLE_PLACEHOLDER.equals(parcelableClassName)) { out.writeString(SERIALIZABLE_PLACEHOLDER); out.writeSerializable((Serializable)baseObjects); Loading Loading
library/TokenAutoComplete/src/main/java/com/tokenautocomplete/TokenCompleteTextView.java +2 −26 Original line number Diff line number Diff line Loading @@ -66,7 +66,6 @@ public abstract class TokenCompleteTextView<T> extends AppCompatAutoCompleteText private Layout lastLayout = null; private boolean initialized = false; private boolean performBestGuess = true; private boolean preventFreeFormText = true; private boolean savingState = false; private boolean shouldFocusNext = false; private boolean allowCollapse = true; Loading Loading @@ -147,9 +146,7 @@ public abstract class TokenCompleteTextView<T> extends AppCompatAutoCompleteText //Detect split characters, remove them and complete the current token instead if (tokenizer.containsTokenTerminator(source)) { //Only perform completion if we don't allow free form text, or if there's enough //content to believe this should be a token if (preventFreeFormText || currentCompletionText().length() > 0) { if (currentCompletionText().length() > 0) { performCompletion(); return ""; } Loading Loading @@ -256,18 +253,6 @@ public abstract class TokenCompleteTextView<T> extends AppCompatAutoCompleteText performBestGuess = guess; } /** * If set to true, the only content in this view will be the tokens and the current completion * text. Use this setting to create things like lists of email addresses. If false, it the view * will allow text in addition to tokens. Use this if you want to use the token search to find * things like user names or hash tags to put in with text. * * @param prevent true to prevent non-token text. Defaults to true. */ public void preventFreeFormText(boolean prevent) { preventFreeFormText = prevent; } /** * Set whether the view should collapse to a single line when it loses focus. * Loading Loading @@ -637,8 +622,7 @@ public abstract class TokenCompleteTextView<T> extends AppCompatAutoCompleteText //Ellipsize copies spans, so we need to stop listening to span changes here text.removeSpan(spanWatcher); CountSpan temp = preventFreeFormText ? countSpan : null; Spanned ellipsized = SpanUtils.ellipsizeWithSpans(temp, getObjects().size(), Spanned ellipsized = SpanUtils.ellipsizeWithSpans(countSpan, getObjects().size(), lastLayout.getPaint(), text, maxTextWidth()); if (ellipsized != null) { Loading Loading @@ -848,9 +832,6 @@ public abstract class TokenCompleteTextView<T> extends AppCompatAutoCompleteText * Set the count span the current number of hidden objects */ private void updateCountSpan() { //No count span with free form text if (!preventFreeFormText) { return; } Editable text = getText(); int visibleCount = getText().getSpans(0, getText().length(), TokenImageSpan.class).length; Loading Loading @@ -1094,7 +1075,6 @@ public abstract class TokenCompleteTextView<T> extends AppCompatAutoCompleteText state.allowCollapse = allowCollapse; state.performBestGuess = performBestGuess; state.preventFreeFormText = preventFreeFormText; Class parameterizedClass = reifyParameterizedTypeClass(); //Our core array is Parcelable, so use that interface if (Parcelable.class.isAssignableFrom(parameterizedClass)) { Loading Loading @@ -1131,7 +1111,6 @@ public abstract class TokenCompleteTextView<T> extends AppCompatAutoCompleteText allowCollapse = ss.allowCollapse; performBestGuess = ss.performBestGuess; preventFreeFormText = ss.preventFreeFormText; tokenizer = ss.tokenizer; addListeners(); Loading Loading @@ -1167,7 +1146,6 @@ public abstract class TokenCompleteTextView<T> extends AppCompatAutoCompleteText boolean allowCollapse; boolean performBestGuess; boolean preventFreeFormText; String parcelableClassName; List<?> baseObjects; String tokenizerClassName; Loading @@ -1178,7 +1156,6 @@ public abstract class TokenCompleteTextView<T> extends AppCompatAutoCompleteText super(in); allowCollapse = in.readInt() != 0; performBestGuess = in.readInt() != 0; preventFreeFormText = in.readInt() != 0; parcelableClassName = in.readString(); if (SERIALIZABLE_PLACEHOLDER.equals(parcelableClassName)) { baseObjects = (ArrayList)in.readSerializable(); Loading Loading @@ -1210,7 +1187,6 @@ public abstract class TokenCompleteTextView<T> extends AppCompatAutoCompleteText super.writeToParcel(out, flags); out.writeInt(allowCollapse ? 1 : 0); out.writeInt(performBestGuess ? 1 : 0); out.writeInt(preventFreeFormText ? 1 : 0); if (SERIALIZABLE_PLACEHOLDER.equals(parcelableClassName)) { out.writeString(SERIALIZABLE_PLACEHOLDER); out.writeSerializable((Serializable)baseObjects); Loading