From cfefe9a0bd156ee1c0afac3ea5eac94ba3ad239d Mon Sep 17 00:00:00 2001 From: lookshe Date: Sat, 15 Aug 2015 23:45:43 +0200 Subject: Merged https://github.com/ankushsachdeva/emojicon/pull/16 --- .../ankushsachdeva/emojicon/EmojiconsPopup.java | 28 ++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) (limited to 'libs/emojicon') diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconsPopup.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconsPopup.java index 12bc16e0..b5d26047 100644 --- a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconsPopup.java +++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconsPopup.java @@ -29,16 +29,21 @@ import java.util.List; import android.app.Activity; import android.content.Context; +import android.content.res.Resources; import android.graphics.Rect; +import android.os.Build; import android.os.Handler; import android.os.SystemClock; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.view.Gravity; +import android.view.KeyCharacterMap; +import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; +import android.view.ViewConfiguration; import android.view.ViewGroup; import android.view.ViewTreeObserver.OnGlobalLayoutListener; import android.view.WindowManager.LayoutParams; @@ -155,13 +160,28 @@ public class EmojiconsPopup extends PopupWindow implements ViewPager.OnPageChang .getHeight(); int heightDifference = screenHeight - (r.bottom - r.top); - int resourceId = mContext.getResources() + Resources resources = mContext.getResources(); + int statusBarId = resources .getIdentifier("status_bar_height", "dimen", "android"); - if (resourceId > 0) { - heightDifference -= mContext.getResources() - .getDimensionPixelSize(resourceId); + if (statusBarId > 0) { + heightDifference -= resources + .getDimensionPixelSize(statusBarId); } + + //Resolved using http://stackoverflow.com/a/16608481/2853322 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { + int navBarId = resources.getIdentifier("navigation_bar_height", "dimen", "android"); + boolean hasMenuKey; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { + hasMenuKey = ViewConfiguration.get(mContext).hasPermanentMenuKey(); + } else hasMenuKey = true; //Skip has menu key below ICS + boolean hasBackKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK); + if (navBarId > 0 && !hasMenuKey && !hasBackKey) { + heightDifference -= resources.getDimensionPixelSize(navBarId); + } + } + if (heightDifference > 100) { keyBoardHeight = heightDifference; setSize(LayoutParams.MATCH_PARENT, keyBoardHeight); -- cgit v1.2.3 From ea1debd8f72903bfbcc631713d803c27be433f20 Mon Sep 17 00:00:00 2001 From: lookshe Date: Sun, 16 Aug 2015 17:30:06 +0200 Subject: Fixes FS#12 - Move smiley replacement from UIHelper to Emojicon module --- .../ankushsachdeva/emojicon/EmojiconHandler.java | 101 +++++++++++++++++++++ .../ankushsachdeva/emojicon/EmojiconImageSpan.java | 14 +++ .../src/main/res/drawable/emo_im_angel.png | Bin 0 -> 3592 bytes .../emojicon/src/main/res/drawable/emo_im_cool.png | Bin 0 -> 3466 bytes .../src/main/res/drawable/emo_im_crying.png | Bin 0 -> 3558 bytes .../src/main/res/drawable/emo_im_embarrassed.png | Bin 0 -> 3619 bytes .../src/main/res/drawable/emo_im_foot_in_mouth.png | Bin 0 -> 3603 bytes .../src/main/res/drawable/emo_im_happy.png | Bin 0 -> 3591 bytes .../src/main/res/drawable/emo_im_heart.png | Bin 0 -> 684 bytes .../src/main/res/drawable/emo_im_kissing.png | Bin 0 -> 3492 bytes .../src/main/res/drawable/emo_im_laughing.png | Bin 0 -> 3624 bytes .../main/res/drawable/emo_im_lips_are_sealed.png | Bin 0 -> 3670 bytes .../src/main/res/drawable/emo_im_money_mouth.png | Bin 0 -> 3649 bytes libs/emojicon/src/main/res/drawable/emo_im_sad.png | Bin 0 -> 3572 bytes .../src/main/res/drawable/emo_im_surprised.png | Bin 0 -> 3490 bytes .../res/drawable/emo_im_tongue_sticking_out.png | Bin 0 -> 3653 bytes .../src/main/res/drawable/emo_im_undecided.png | Bin 0 -> 3552 bytes .../src/main/res/drawable/emo_im_winking.png | Bin 0 -> 3568 bytes libs/emojicon/src/main/res/drawable/emo_im_wtf.png | Bin 0 -> 3591 bytes .../src/main/res/drawable/emo_im_yelling.png | Bin 0 -> 3575 bytes 20 files changed, 115 insertions(+) create mode 100644 libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconImageSpan.java create mode 100644 libs/emojicon/src/main/res/drawable/emo_im_angel.png create mode 100644 libs/emojicon/src/main/res/drawable/emo_im_cool.png create mode 100644 libs/emojicon/src/main/res/drawable/emo_im_crying.png create mode 100644 libs/emojicon/src/main/res/drawable/emo_im_embarrassed.png create mode 100644 libs/emojicon/src/main/res/drawable/emo_im_foot_in_mouth.png create mode 100644 libs/emojicon/src/main/res/drawable/emo_im_happy.png create mode 100644 libs/emojicon/src/main/res/drawable/emo_im_heart.png create mode 100644 libs/emojicon/src/main/res/drawable/emo_im_kissing.png create mode 100644 libs/emojicon/src/main/res/drawable/emo_im_laughing.png create mode 100644 libs/emojicon/src/main/res/drawable/emo_im_lips_are_sealed.png create mode 100644 libs/emojicon/src/main/res/drawable/emo_im_money_mouth.png create mode 100644 libs/emojicon/src/main/res/drawable/emo_im_sad.png create mode 100644 libs/emojicon/src/main/res/drawable/emo_im_surprised.png create mode 100644 libs/emojicon/src/main/res/drawable/emo_im_tongue_sticking_out.png create mode 100644 libs/emojicon/src/main/res/drawable/emo_im_undecided.png create mode 100644 libs/emojicon/src/main/res/drawable/emo_im_winking.png create mode 100644 libs/emojicon/src/main/res/drawable/emo_im_wtf.png create mode 100644 libs/emojicon/src/main/res/drawable/emo_im_yelling.png (limited to 'libs/emojicon') diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconHandler.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconHandler.java index c84bebb8..0df62b57 100644 --- a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconHandler.java +++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconHandler.java @@ -19,8 +19,14 @@ import github.ankushsachdeva.emojicon.R; import android.content.Context; import android.text.Spannable; +import android.text.style.ImageSpan; import android.util.SparseIntArray; +import java.util.HashMap; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + /** * @author Hieu Rocker (rockerhieu@gmail.com) */ @@ -28,6 +34,16 @@ public final class EmojiconHandler { private EmojiconHandler() { } + public static boolean isParseEmoticons() { + return bParseEmoticons; + } + + public static void setParseEmoticons(boolean bParseEmoticons) { + EmojiconHandler.bParseEmoticons = bParseEmoticons; + } + + private static boolean bParseEmoticons = true; + private static final SparseIntArray sEmojisMap = new SparseIntArray(846); private static final SparseIntArray sSoftbanksMap = new SparseIntArray(471); @@ -1384,6 +1400,88 @@ public final class EmojiconHandler { addEmojis(context, text, emojiSize, 0, -1); } + public static final Map ANDROID_EMOTICONS = new HashMap(); + + private static final Spannable.Factory spannableFactory = Spannable.Factory + .getInstance(); + + static { + addPattern(ANDROID_EMOTICONS, ":)", R.drawable.emo_im_happy); + addPattern(ANDROID_EMOTICONS, ":-)", R.drawable.emo_im_happy); + addPattern(ANDROID_EMOTICONS, ":(", R.drawable.emo_im_sad); + addPattern(ANDROID_EMOTICONS, ":-(", R.drawable.emo_im_sad); + addPattern(ANDROID_EMOTICONS, ";)", R.drawable.emo_im_winking); + addPattern(ANDROID_EMOTICONS, ";-)", R.drawable.emo_im_winking); + addPattern(ANDROID_EMOTICONS, ":P", + R.drawable.emo_im_tongue_sticking_out); + addPattern(ANDROID_EMOTICONS, ":-P", + R.drawable.emo_im_tongue_sticking_out); + addPattern(ANDROID_EMOTICONS, "=-O", R.drawable.emo_im_surprised); + addPattern(ANDROID_EMOTICONS, ":*", R.drawable.emo_im_kissing); + addPattern(ANDROID_EMOTICONS, ":-*", R.drawable.emo_im_kissing); + addPattern(ANDROID_EMOTICONS, ":O", R.drawable.emo_im_wtf); + addPattern(ANDROID_EMOTICONS, ":-O", R.drawable.emo_im_wtf); + addPattern(ANDROID_EMOTICONS, "B)", R.drawable.emo_im_cool); + addPattern(ANDROID_EMOTICONS, "B-)", R.drawable.emo_im_cool); + addPattern(ANDROID_EMOTICONS, "8)", R.drawable.emo_im_cool); + addPattern(ANDROID_EMOTICONS, "8-)", R.drawable.emo_im_cool); + addPattern(ANDROID_EMOTICONS, ":$", R.drawable.emo_im_money_mouth); + addPattern(ANDROID_EMOTICONS, ":-$", R.drawable.emo_im_money_mouth); + addPattern(ANDROID_EMOTICONS, ":-!", R.drawable.emo_im_foot_in_mouth); + addPattern(ANDROID_EMOTICONS, ":-[", R.drawable.emo_im_embarrassed); + addPattern(ANDROID_EMOTICONS, "O:)", R.drawable.emo_im_angel); + addPattern(ANDROID_EMOTICONS, "O:-)", R.drawable.emo_im_angel); + addPattern(ANDROID_EMOTICONS, ":\\", R.drawable.emo_im_undecided); + addPattern(ANDROID_EMOTICONS, ":-\\", R.drawable.emo_im_undecided); + addPattern(ANDROID_EMOTICONS, ":'(", R.drawable.emo_im_crying); + addPattern(ANDROID_EMOTICONS, ":D", R.drawable.emo_im_laughing); + addPattern(ANDROID_EMOTICONS, ":-D", R.drawable.emo_im_laughing); + addPattern(ANDROID_EMOTICONS, "O_o", R.drawable.emo_im_wtf); + addPattern(ANDROID_EMOTICONS, "o_O", R.drawable.emo_im_wtf); + addPattern(ANDROID_EMOTICONS, ">:O", R.drawable.emo_im_yelling); + addPattern(ANDROID_EMOTICONS, ">:0", R.drawable.emo_im_yelling); + addPattern(ANDROID_EMOTICONS, ":S", R.drawable.emo_im_lips_are_sealed); + addPattern(ANDROID_EMOTICONS, ":-S", R.drawable.emo_im_lips_are_sealed); + addPattern(ANDROID_EMOTICONS, "<3", R.drawable.emo_im_heart); + } + + private static void addPattern(Map map, String smile, + int resource) { + map.put(Pattern.compile(Pattern.quote(smile)), resource); + } + + private static boolean getSmiledText(Context context, Spannable spannable) { + // remove spans throughout all text + ImageSpan[] oldSpans = spannable.getSpans(0, spannable.length(), EmojiconImageSpan.class); + for (int i = 0; i < oldSpans.length; i++) { + spannable.removeSpan(oldSpans[i]); + } + boolean hasChanges = false; + Map emoticons = ANDROID_EMOTICONS; + for (Map.Entry entry : emoticons.entrySet()) { + Matcher matcher = entry.getKey().matcher(spannable); + while (matcher.find()) { + boolean set = true; + for (EmojiconImageSpan span : spannable.getSpans(matcher.start(), + matcher.end(), EmojiconImageSpan.class)) + if (spannable.getSpanStart(span) >= matcher.start() + && spannable.getSpanEnd(span) <= matcher.end()) + spannable.removeSpan(span); + else { + set = false; + break; + } + if (set) { + spannable.setSpan(new EmojiconImageSpan(context, entry.getValue()), + matcher.start(), matcher.end(), + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + hasChanges = true; + } + } + } + return hasChanges; + } + /** * Convert emoji characters of the given Spannable to the according emojicon. * @@ -1394,6 +1492,9 @@ public final class EmojiconHandler { * @param length */ public static void addEmojis(Context context, Spannable text, int emojiSize, int index, int length) { + if (isParseEmoticons()) { + getSmiledText(context, text); + } int textLength = text.length(); int textLengthToProcessMax = textLength - index; int textLengthToProcess = length < 0 || length >= textLengthToProcessMax ? textLength : (length+index); diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconImageSpan.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconImageSpan.java new file mode 100644 index 00000000..8ad8fbb5 --- /dev/null +++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconImageSpan.java @@ -0,0 +1,14 @@ +package github.ankushsachdeva.emojicon; + +import android.content.Context; +import android.text.style.ImageSpan; + +/** + * Created by lookshe on 16.08.2015. + */ +public class EmojiconImageSpan extends ImageSpan { + + EmojiconImageSpan(Context context, int resourceId) { + super(context, resourceId); + } +} diff --git a/libs/emojicon/src/main/res/drawable/emo_im_angel.png b/libs/emojicon/src/main/res/drawable/emo_im_angel.png new file mode 100644 index 00000000..c34dfa69 Binary files /dev/null and b/libs/emojicon/src/main/res/drawable/emo_im_angel.png differ diff --git a/libs/emojicon/src/main/res/drawable/emo_im_cool.png b/libs/emojicon/src/main/res/drawable/emo_im_cool.png new file mode 100644 index 00000000..d8eeb34e Binary files /dev/null and b/libs/emojicon/src/main/res/drawable/emo_im_cool.png differ diff --git a/libs/emojicon/src/main/res/drawable/emo_im_crying.png b/libs/emojicon/src/main/res/drawable/emo_im_crying.png new file mode 100644 index 00000000..1cafdb32 Binary files /dev/null and b/libs/emojicon/src/main/res/drawable/emo_im_crying.png differ diff --git a/libs/emojicon/src/main/res/drawable/emo_im_embarrassed.png b/libs/emojicon/src/main/res/drawable/emo_im_embarrassed.png new file mode 100644 index 00000000..e4db9634 Binary files /dev/null and b/libs/emojicon/src/main/res/drawable/emo_im_embarrassed.png differ diff --git a/libs/emojicon/src/main/res/drawable/emo_im_foot_in_mouth.png b/libs/emojicon/src/main/res/drawable/emo_im_foot_in_mouth.png new file mode 100644 index 00000000..09d1fba6 Binary files /dev/null and b/libs/emojicon/src/main/res/drawable/emo_im_foot_in_mouth.png differ diff --git a/libs/emojicon/src/main/res/drawable/emo_im_happy.png b/libs/emojicon/src/main/res/drawable/emo_im_happy.png new file mode 100644 index 00000000..b86602ae Binary files /dev/null and b/libs/emojicon/src/main/res/drawable/emo_im_happy.png differ diff --git a/libs/emojicon/src/main/res/drawable/emo_im_heart.png b/libs/emojicon/src/main/res/drawable/emo_im_heart.png new file mode 100644 index 00000000..d88bcccd Binary files /dev/null and b/libs/emojicon/src/main/res/drawable/emo_im_heart.png differ diff --git a/libs/emojicon/src/main/res/drawable/emo_im_kissing.png b/libs/emojicon/src/main/res/drawable/emo_im_kissing.png new file mode 100644 index 00000000..56378f6a Binary files /dev/null and b/libs/emojicon/src/main/res/drawable/emo_im_kissing.png differ diff --git a/libs/emojicon/src/main/res/drawable/emo_im_laughing.png b/libs/emojicon/src/main/res/drawable/emo_im_laughing.png new file mode 100644 index 00000000..980bf281 Binary files /dev/null and b/libs/emojicon/src/main/res/drawable/emo_im_laughing.png differ diff --git a/libs/emojicon/src/main/res/drawable/emo_im_lips_are_sealed.png b/libs/emojicon/src/main/res/drawable/emo_im_lips_are_sealed.png new file mode 100644 index 00000000..f2de993b Binary files /dev/null and b/libs/emojicon/src/main/res/drawable/emo_im_lips_are_sealed.png differ diff --git a/libs/emojicon/src/main/res/drawable/emo_im_money_mouth.png b/libs/emojicon/src/main/res/drawable/emo_im_money_mouth.png new file mode 100644 index 00000000..08c53fd6 Binary files /dev/null and b/libs/emojicon/src/main/res/drawable/emo_im_money_mouth.png differ diff --git a/libs/emojicon/src/main/res/drawable/emo_im_sad.png b/libs/emojicon/src/main/res/drawable/emo_im_sad.png new file mode 100644 index 00000000..31c08d06 Binary files /dev/null and b/libs/emojicon/src/main/res/drawable/emo_im_sad.png differ diff --git a/libs/emojicon/src/main/res/drawable/emo_im_surprised.png b/libs/emojicon/src/main/res/drawable/emo_im_surprised.png new file mode 100644 index 00000000..abe8c7ad Binary files /dev/null and b/libs/emojicon/src/main/res/drawable/emo_im_surprised.png differ diff --git a/libs/emojicon/src/main/res/drawable/emo_im_tongue_sticking_out.png b/libs/emojicon/src/main/res/drawable/emo_im_tongue_sticking_out.png new file mode 100644 index 00000000..6f0f47b0 Binary files /dev/null and b/libs/emojicon/src/main/res/drawable/emo_im_tongue_sticking_out.png differ diff --git a/libs/emojicon/src/main/res/drawable/emo_im_undecided.png b/libs/emojicon/src/main/res/drawable/emo_im_undecided.png new file mode 100644 index 00000000..eb4f8c5b Binary files /dev/null and b/libs/emojicon/src/main/res/drawable/emo_im_undecided.png differ diff --git a/libs/emojicon/src/main/res/drawable/emo_im_winking.png b/libs/emojicon/src/main/res/drawable/emo_im_winking.png new file mode 100644 index 00000000..568562ad Binary files /dev/null and b/libs/emojicon/src/main/res/drawable/emo_im_winking.png differ diff --git a/libs/emojicon/src/main/res/drawable/emo_im_wtf.png b/libs/emojicon/src/main/res/drawable/emo_im_wtf.png new file mode 100644 index 00000000..41dd47fc Binary files /dev/null and b/libs/emojicon/src/main/res/drawable/emo_im_wtf.png differ diff --git a/libs/emojicon/src/main/res/drawable/emo_im_yelling.png b/libs/emojicon/src/main/res/drawable/emo_im_yelling.png new file mode 100644 index 00000000..c3c8612b Binary files /dev/null and b/libs/emojicon/src/main/res/drawable/emo_im_yelling.png differ -- cgit v1.2.3 From 3be4dbf66ae360e16e07a8a5da01c35f67e6ddfe Mon Sep 17 00:00:00 2001 From: lookshe Date: Sun, 16 Aug 2015 17:56:46 +0200 Subject: fixes FS#13 - Change smiley replacement patterns to be case insensitive --- .../ankushsachdeva/emojicon/EmojiconHandler.java | 52 ++++++++-------------- 1 file changed, 18 insertions(+), 34 deletions(-) (limited to 'libs/emojicon') diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconHandler.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconHandler.java index 0df62b57..3e032c42 100644 --- a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconHandler.java +++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconHandler.java @@ -1406,48 +1406,32 @@ public final class EmojiconHandler { .getInstance(); static { - addPattern(ANDROID_EMOTICONS, ":)", R.drawable.emo_im_happy); - addPattern(ANDROID_EMOTICONS, ":-)", R.drawable.emo_im_happy); - addPattern(ANDROID_EMOTICONS, ":(", R.drawable.emo_im_sad); - addPattern(ANDROID_EMOTICONS, ":-(", R.drawable.emo_im_sad); - addPattern(ANDROID_EMOTICONS, ";)", R.drawable.emo_im_winking); - addPattern(ANDROID_EMOTICONS, ";-)", R.drawable.emo_im_winking); - addPattern(ANDROID_EMOTICONS, ":P", + addPattern(ANDROID_EMOTICONS, ":-?\\)", R.drawable.emo_im_happy); + addPattern(ANDROID_EMOTICONS, ":-?\\(", R.drawable.emo_im_sad); + addPattern(ANDROID_EMOTICONS, ";-?\\)", R.drawable.emo_im_winking); + addPattern(ANDROID_EMOTICONS, ":-?[pP]", R.drawable.emo_im_tongue_sticking_out); - addPattern(ANDROID_EMOTICONS, ":-P", - R.drawable.emo_im_tongue_sticking_out); - addPattern(ANDROID_EMOTICONS, "=-O", R.drawable.emo_im_surprised); - addPattern(ANDROID_EMOTICONS, ":*", R.drawable.emo_im_kissing); - addPattern(ANDROID_EMOTICONS, ":-*", R.drawable.emo_im_kissing); - addPattern(ANDROID_EMOTICONS, ":O", R.drawable.emo_im_wtf); - addPattern(ANDROID_EMOTICONS, ":-O", R.drawable.emo_im_wtf); - addPattern(ANDROID_EMOTICONS, "B)", R.drawable.emo_im_cool); - addPattern(ANDROID_EMOTICONS, "B-)", R.drawable.emo_im_cool); - addPattern(ANDROID_EMOTICONS, "8)", R.drawable.emo_im_cool); - addPattern(ANDROID_EMOTICONS, "8-)", R.drawable.emo_im_cool); - addPattern(ANDROID_EMOTICONS, ":$", R.drawable.emo_im_money_mouth); - addPattern(ANDROID_EMOTICONS, ":-$", R.drawable.emo_im_money_mouth); - addPattern(ANDROID_EMOTICONS, ":-!", R.drawable.emo_im_foot_in_mouth); - addPattern(ANDROID_EMOTICONS, ":-[", R.drawable.emo_im_embarrassed); - addPattern(ANDROID_EMOTICONS, "O:)", R.drawable.emo_im_angel); - addPattern(ANDROID_EMOTICONS, "O:-)", R.drawable.emo_im_angel); - addPattern(ANDROID_EMOTICONS, ":\\", R.drawable.emo_im_undecided); - addPattern(ANDROID_EMOTICONS, ":-\\", R.drawable.emo_im_undecided); - addPattern(ANDROID_EMOTICONS, ":'(", R.drawable.emo_im_crying); - addPattern(ANDROID_EMOTICONS, ":D", R.drawable.emo_im_laughing); - addPattern(ANDROID_EMOTICONS, ":-D", R.drawable.emo_im_laughing); + addPattern(ANDROID_EMOTICONS, "=-[oO0]", R.drawable.emo_im_surprised); + addPattern(ANDROID_EMOTICONS, ":-?\\*", R.drawable.emo_im_kissing); + addPattern(ANDROID_EMOTICONS, ":-?[oO0]", R.drawable.emo_im_wtf); + addPattern(ANDROID_EMOTICONS, "[8B]-?\\)", R.drawable.emo_im_cool); + addPattern(ANDROID_EMOTICONS, ":-?\\$", R.drawable.emo_im_money_mouth); + addPattern(ANDROID_EMOTICONS, ":-?!", R.drawable.emo_im_foot_in_mouth); + addPattern(ANDROID_EMOTICONS, ":-?\\[", R.drawable.emo_im_embarrassed); + addPattern(ANDROID_EMOTICONS, "[oO0]:-?\\)", R.drawable.emo_im_angel); + addPattern(ANDROID_EMOTICONS, ":-?[\\\\/]", R.drawable.emo_im_undecided); + addPattern(ANDROID_EMOTICONS, ":'-?\\(", R.drawable.emo_im_crying); + addPattern(ANDROID_EMOTICONS, ":-?D", R.drawable.emo_im_laughing); addPattern(ANDROID_EMOTICONS, "O_o", R.drawable.emo_im_wtf); addPattern(ANDROID_EMOTICONS, "o_O", R.drawable.emo_im_wtf); - addPattern(ANDROID_EMOTICONS, ">:O", R.drawable.emo_im_yelling); - addPattern(ANDROID_EMOTICONS, ">:0", R.drawable.emo_im_yelling); - addPattern(ANDROID_EMOTICONS, ":S", R.drawable.emo_im_lips_are_sealed); - addPattern(ANDROID_EMOTICONS, ":-S", R.drawable.emo_im_lips_are_sealed); + addPattern(ANDROID_EMOTICONS, ">:[oO0]", R.drawable.emo_im_yelling); + addPattern(ANDROID_EMOTICONS, ":-?[sS]", R.drawable.emo_im_lips_are_sealed); addPattern(ANDROID_EMOTICONS, "<3", R.drawable.emo_im_heart); } private static void addPattern(Map map, String smile, int resource) { - map.put(Pattern.compile(Pattern.quote(smile)), resource); + map.put(Pattern.compile(smile), resource); } private static boolean getSmiledText(Context context, Spannable spannable) { -- cgit v1.2.3