Loading java/src/com/android/inputmethod/compat/SuggestionSpanUtils.java +16 −8 Original line number Diff line number Diff line Loading @@ -23,8 +23,10 @@ import android.content.Context; import android.text.Spannable; import android.text.SpannableString; import android.text.Spanned; import android.text.TextUtils; import java.lang.reflect.Constructor; import java.util.ArrayList; import java.util.Locale; public class SuggestionSpanUtils { Loading @@ -33,6 +35,7 @@ public class SuggestionSpanUtils { 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_HASHCODE = "hashcode"; public static final int SUGGESTION_MAX_SIZE = 5; private static final Class<?> CLASS_SuggestionSpan = CompatUtils .getClass("android.text.style.SuggestionSpan"); Loading @@ -48,8 +51,8 @@ public class SuggestionSpanUtils { public static CharSequence getTextWithSuggestionSpan(Context context, CharSequence suggestion, SuggestedWords suggestedWords) { if (CONSTRUCTOR_SuggestionSpan == null || suggestedWords == null || suggestedWords.size() == 0) { if (TextUtils.isEmpty(suggestion) || CONSTRUCTOR_SuggestionSpan == null || suggestedWords == null || suggestedWords.size() == 0) { return suggestion; } Loading @@ -59,14 +62,19 @@ public class SuggestionSpanUtils { } else { spannable = new SpannableString(suggestion); } // TODO: Use SUGGESTIONS_MAX_SIZE instead of 5. final int N = Math.min(5, suggestedWords.size()); final String[] suggestionsArray = new String[N]; for (int i = 0; i < N; ++i) { suggestionsArray[i] = suggestedWords.getWord(i).toString(); final ArrayList<String> suggestionsList = new ArrayList<String>(); for (int i = 0; i < suggestedWords.size(); ++i) { if (suggestionsList.size() >= SUGGESTION_MAX_SIZE) { break; } final CharSequence word = suggestedWords.getWord(i); if (!TextUtils.equals(suggestion, word)) { suggestionsList.add(word.toString()); } } final Object[] args = { context, null, suggestionsArray, 0, { context, null, suggestionsList.toArray(new String[suggestionsList.size()]), 0, (Class<?>) SuggestionSpanPickedNotificationReceiver.class }; final Object ss = CompatUtils.newInstance(CONSTRUCTOR_SuggestionSpan, args); if (ss == null) { Loading Loading
java/src/com/android/inputmethod/compat/SuggestionSpanUtils.java +16 −8 Original line number Diff line number Diff line Loading @@ -23,8 +23,10 @@ import android.content.Context; import android.text.Spannable; import android.text.SpannableString; import android.text.Spanned; import android.text.TextUtils; import java.lang.reflect.Constructor; import java.util.ArrayList; import java.util.Locale; public class SuggestionSpanUtils { Loading @@ -33,6 +35,7 @@ public class SuggestionSpanUtils { 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_HASHCODE = "hashcode"; public static final int SUGGESTION_MAX_SIZE = 5; private static final Class<?> CLASS_SuggestionSpan = CompatUtils .getClass("android.text.style.SuggestionSpan"); Loading @@ -48,8 +51,8 @@ public class SuggestionSpanUtils { public static CharSequence getTextWithSuggestionSpan(Context context, CharSequence suggestion, SuggestedWords suggestedWords) { if (CONSTRUCTOR_SuggestionSpan == null || suggestedWords == null || suggestedWords.size() == 0) { if (TextUtils.isEmpty(suggestion) || CONSTRUCTOR_SuggestionSpan == null || suggestedWords == null || suggestedWords.size() == 0) { return suggestion; } Loading @@ -59,14 +62,19 @@ public class SuggestionSpanUtils { } else { spannable = new SpannableString(suggestion); } // TODO: Use SUGGESTIONS_MAX_SIZE instead of 5. final int N = Math.min(5, suggestedWords.size()); final String[] suggestionsArray = new String[N]; for (int i = 0; i < N; ++i) { suggestionsArray[i] = suggestedWords.getWord(i).toString(); final ArrayList<String> suggestionsList = new ArrayList<String>(); for (int i = 0; i < suggestedWords.size(); ++i) { if (suggestionsList.size() >= SUGGESTION_MAX_SIZE) { break; } final CharSequence word = suggestedWords.getWord(i); if (!TextUtils.equals(suggestion, word)) { suggestionsList.add(word.toString()); } } final Object[] args = { context, null, suggestionsArray, 0, { context, null, suggestionsList.toArray(new String[suggestionsList.size()]), 0, (Class<?>) SuggestionSpanPickedNotificationReceiver.class }; final Object ss = CompatUtils.newInstance(CONSTRUCTOR_SuggestionSpan, args); if (ss == null) { Loading