Optimized getSmileyText to decrease message display time
This commit is contained in:
parent
3ff74418e9
commit
97983fab60
1 changed files with 13 additions and 16 deletions
|
@ -114,7 +114,8 @@ public class BubbleChat {
|
||||||
Spanned text = null;
|
Spanned text = null;
|
||||||
if (message != null) {
|
if (message != null) {
|
||||||
if (context.getResources().getBoolean(R.bool.emoticons_in_messages)) {
|
if (context.getResources().getBoolean(R.bool.emoticons_in_messages)) {
|
||||||
text = getSmiledText(context, getTextWithHttpLinks(message));
|
text = getSmiledText(context, getTextWithHttpLinks(message), message);
|
||||||
|
//text = getTextWithHttpLinks(message);
|
||||||
} else {
|
} else {
|
||||||
text = getTextWithHttpLinks(message);
|
text = getTextWithHttpLinks(message);
|
||||||
}
|
}
|
||||||
|
@ -245,23 +246,19 @@ public class BubbleChat {
|
||||||
cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR));
|
cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Spannable getSmiledText(Context context, Spanned text) {
|
public static Spannable getSmiledText(Context context, Spanned spanned, String text) {
|
||||||
SpannableStringBuilder builder = new SpannableStringBuilder(text);
|
SpannableStringBuilder builder = new SpannableStringBuilder(spanned);
|
||||||
int index;
|
|
||||||
|
|
||||||
for (index = 0; index < builder.length(); index++) {
|
|
||||||
for (Entry<String, Integer> entry : emoticons.entrySet()) {
|
for (Entry<String, Integer> entry : emoticons.entrySet()) {
|
||||||
int length = entry.getKey().length();
|
String key = entry.getKey();
|
||||||
if (index + length > builder.length())
|
int indexOf = text.indexOf(key);
|
||||||
continue;
|
while (indexOf >= 0) {
|
||||||
if (builder.subSequence(index, index + length).toString().equals(entry.getKey())) {
|
int end = indexOf + key.length();
|
||||||
builder.setSpan(new ImageSpan(context, entry.getValue()), index, index + length,
|
builder.setSpan(new ImageSpan(context, entry.getValue()), indexOf, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||||
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
indexOf = text.indexOf(key, end);
|
||||||
index += length - 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue