Skip to content
Snippets Groups Projects
Commit e968ad8a authored by satok's avatar satok Committed by Android (Google) Code Review
Browse files

Merge "Remove the original text from SuggestionSpan"

parents 1ddb4897 064e21bb
No related branches found
No related tags found
No related merge requests found
...@@ -23,8 +23,10 @@ import android.content.Context; ...@@ -23,8 +23,10 @@ import android.content.Context;
import android.text.Spannable; import android.text.Spannable;
import android.text.SpannableString; import android.text.SpannableString;
import android.text.Spanned; import android.text.Spanned;
import android.text.TextUtils;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.Locale; import java.util.Locale;
public class SuggestionSpanUtils { public class SuggestionSpanUtils {
...@@ -33,6 +35,7 @@ public class SuggestionSpanUtils { ...@@ -33,6 +35,7 @@ public class SuggestionSpanUtils {
public static final String SUGGESTION_SPAN_PICKED_AFTER = "after"; public static final String SUGGESTION_SPAN_PICKED_AFTER = "after";
public static final String SUGGESTION_SPAN_PICKED_BEFORE = "before"; public static final String SUGGESTION_SPAN_PICKED_BEFORE = "before";
public static final String SUGGESTION_SPAN_PICKED_HASHCODE = "hashcode"; public static final String SUGGESTION_SPAN_PICKED_HASHCODE = "hashcode";
public static final int SUGGESTION_MAX_SIZE = 5;
private static final Class<?> CLASS_SuggestionSpan = CompatUtils private static final Class<?> CLASS_SuggestionSpan = CompatUtils
.getClass("android.text.style.SuggestionSpan"); .getClass("android.text.style.SuggestionSpan");
...@@ -48,8 +51,8 @@ public class SuggestionSpanUtils { ...@@ -48,8 +51,8 @@ public class SuggestionSpanUtils {
public static CharSequence getTextWithSuggestionSpan(Context context, public static CharSequence getTextWithSuggestionSpan(Context context,
CharSequence suggestion, SuggestedWords suggestedWords) { CharSequence suggestion, SuggestedWords suggestedWords) {
if (CONSTRUCTOR_SuggestionSpan == null || suggestedWords == null if (TextUtils.isEmpty(suggestion) || CONSTRUCTOR_SuggestionSpan == null
|| suggestedWords.size() == 0) { || suggestedWords == null || suggestedWords.size() == 0) {
return suggestion; return suggestion;
} }
...@@ -59,14 +62,19 @@ public class SuggestionSpanUtils { ...@@ -59,14 +62,19 @@ public class SuggestionSpanUtils {
} else { } else {
spannable = new SpannableString(suggestion); spannable = new SpannableString(suggestion);
} }
// TODO: Use SUGGESTIONS_MAX_SIZE instead of 5. final ArrayList<String> suggestionsList = new ArrayList<String>();
final int N = Math.min(5, suggestedWords.size()); for (int i = 0; i < suggestedWords.size(); ++i) {
final String[] suggestionsArray = new String[N]; if (suggestionsList.size() >= SUGGESTION_MAX_SIZE) {
for (int i = 0; i < N; ++i) { break;
suggestionsArray[i] = suggestedWords.getWord(i).toString(); }
final CharSequence word = suggestedWords.getWord(i);
if (!TextUtils.equals(suggestion, word)) {
suggestionsList.add(word.toString());
}
} }
final Object[] args = final Object[] args =
{ context, null, suggestionsArray, 0, { context, null, suggestionsList.toArray(new String[suggestionsList.size()]), 0,
(Class<?>) SuggestionSpanPickedNotificationReceiver.class }; (Class<?>) SuggestionSpanPickedNotificationReceiver.class };
final Object ss = CompatUtils.newInstance(CONSTRUCTOR_SuggestionSpan, args); final Object ss = CompatUtils.newInstance(CONSTRUCTOR_SuggestionSpan, args);
if (ss == null) { if (ss == null) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment