aboutsummaryrefslogtreecommitdiffstats
path: root/libs/emojicon/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiAdapter.java74
-rw-r--r--libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconEditText.java67
-rw-r--r--libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconGridView.java78
-rw-r--r--libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconHandler.java1515
-rw-r--r--libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconRecents.java28
-rw-r--r--libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconRecentsGridView.java62
-rw-r--r--libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconRecentsManager.java124
-rw-r--r--libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconSpan.java51
-rw-r--r--libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconTextView.java76
-rw-r--r--libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconsPopup.java408
-rw-r--r--libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/Emojicon.java74
-rw-r--r--libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/Nature.java141
-rw-r--r--libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/Objects.java255
-rw-r--r--libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/People.java214
-rw-r--r--libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/Places.java126
-rw-r--r--libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/Symbols.java237
16 files changed, 3530 insertions, 0 deletions
diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiAdapter.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiAdapter.java
new file mode 100644
index 00000000..e3dc221d
--- /dev/null
+++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiAdapter.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright 2014 Ankush Sachdeva
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package github.ankushsachdeva.emojicon;
+
+import github.ankushsachdeva.emojicon.EmojiconGridView.OnEmojiconClickedListener;
+import github.ankushsachdeva.emojicon.emoji.Emojicon;
+
+import java.util.List;
+
+import android.content.Context;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.TextView;
+
+import github.ankushsachdeva.emojicon.R;
+
+/**
+ * @author Ankush Sachdeva (sankush@yahoo.co.in)
+ */
+class EmojiAdapter extends ArrayAdapter<Emojicon> {
+ OnEmojiconClickedListener emojiClickListener;
+ public EmojiAdapter(Context context, List<Emojicon> data) {
+ super(context, R.layout.emojicon_item, data);
+ }
+
+ public EmojiAdapter(Context context, Emojicon[] data) {
+ super(context, R.layout.emojicon_item, data);
+ }
+
+ public void setEmojiClickListener(OnEmojiconClickedListener listener){
+ this.emojiClickListener = listener;
+ }
+
+ @Override
+ public View getView(final int position, View convertView, ViewGroup parent) {
+ View v = convertView;
+ if (v == null) {
+ v = View.inflate(getContext(), R.layout.emojicon_item, null);
+ ViewHolder holder = new ViewHolder();
+ holder.icon = (TextView) v.findViewById(R.id.emojicon_icon);
+ v.setTag(holder);
+ }
+ Emojicon emoji = getItem(position);
+ ViewHolder holder = (ViewHolder) v.getTag();
+ holder.icon.setText(emoji.getEmoji());
+ holder.icon.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ emojiClickListener.onEmojiconClicked(getItem(position));
+ }
+ });
+ return v;
+ }
+
+ class ViewHolder {
+ TextView icon;
+ }
+} \ No newline at end of file
diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconEditText.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconEditText.java
new file mode 100644
index 00000000..8301dd14
--- /dev/null
+++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconEditText.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2014 Ankush Sachdeva
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package github.ankushsachdeva.emojicon;
+
+import github.ankushsachdeva.emojicon.R;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.util.AttributeSet;
+import android.widget.EditText;
+
+/**
+ * @author Hieu Rocker (rockerhieu@gmail.com).
+ */
+public class EmojiconEditText extends EditText {
+ private int mEmojiconSize;
+
+ public EmojiconEditText(Context context) {
+ super(context);
+ mEmojiconSize = (int) getTextSize();
+
+ }
+
+ public EmojiconEditText(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init(attrs);
+ }
+
+ public EmojiconEditText(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ init(attrs);
+ }
+
+ private void init(AttributeSet attrs) {
+ TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.Emojicon);
+ mEmojiconSize = (int) a.getDimension(R.styleable.Emojicon_emojiconSize, getTextSize());
+ a.recycle();
+ setText(getText());
+ }
+
+ @Override
+ protected void onTextChanged(CharSequence text, int start, int lengthBefore, int lengthAfter) {
+ super.onTextChanged(text,start,lengthBefore,lengthAfter);
+ EmojiconHandler.addEmojis(getContext(), getText(), mEmojiconSize);
+ }
+
+ /**
+ * Set the size of emojicon in pixels.
+ */
+ public void setEmojiconSize(int pixels) {
+ mEmojiconSize = pixels;
+ }
+}
diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconGridView.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconGridView.java
new file mode 100644
index 00000000..38df8b13
--- /dev/null
+++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconGridView.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2014 Ankush Sachdeva
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package github.ankushsachdeva.emojicon;
+
+import github.ankushsachdeva.emojicon.emoji.Emojicon;
+import github.ankushsachdeva.emojicon.emoji.People;
+
+import java.util.Arrays;
+
+import android.app.Activity;
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.GridView;
+
+import github.ankushsachdeva.emojicon.R;
+
+/**
+ * @author Hieu Rocker (rockerhieu@gmail.com)
+ * @author Ankush Sachdeva (sankush@yahoo.co.in)
+ */
+public class EmojiconGridView{
+ public View rootView;
+ EmojiconsPopup mEmojiconPopup;
+ EmojiconRecents mRecents;
+ Emojicon[] mData;
+
+ public EmojiconGridView(Context context, Emojicon[] emojicons, EmojiconRecents recents, EmojiconsPopup emojiconPopup) {
+ LayoutInflater inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
+ mEmojiconPopup = emojiconPopup;
+ rootView = inflater.inflate(R.layout.emojicon_grid, null);
+ setRecents(recents);
+ GridView gridView = (GridView) rootView.findViewById(R.id.Emoji_GridView);
+ if (emojicons== null) {
+ mData = People.DATA;
+ } else {
+ Object[] o = (Object[]) emojicons;
+ mData = Arrays.asList(o).toArray(new Emojicon[o.length]);
+ }
+ EmojiAdapter mAdapter = new EmojiAdapter(rootView.getContext(), mData);
+ mAdapter.setEmojiClickListener(new OnEmojiconClickedListener() {
+
+ @Override
+ public void onEmojiconClicked(Emojicon emojicon) {
+ if (mEmojiconPopup.onEmojiconClickedListener != null) {
+ mEmojiconPopup.onEmojiconClickedListener.onEmojiconClicked(emojicon);
+ }
+ if (mRecents != null) {
+ mRecents.addRecentEmoji(rootView.getContext(), emojicon);
+ }
+ }
+ });
+ gridView.setAdapter(mAdapter);
+ }
+
+ private void setRecents(EmojiconRecents recents) {
+ mRecents = recents;
+ }
+
+ public interface OnEmojiconClickedListener {
+ void onEmojiconClicked(Emojicon 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
new file mode 100644
index 00000000..c84bebb8
--- /dev/null
+++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconHandler.java
@@ -0,0 +1,1515 @@
+/*
+ * Copyright 2014 Ankush Sachdeva
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package github.ankushsachdeva.emojicon;
+
+import github.ankushsachdeva.emojicon.R;
+
+import android.content.Context;
+import android.text.Spannable;
+import android.util.SparseIntArray;
+
+/**
+ * @author Hieu Rocker (rockerhieu@gmail.com)
+ */
+public final class EmojiconHandler {
+ private EmojiconHandler() {
+ }
+
+ private static final SparseIntArray sEmojisMap = new SparseIntArray(846);
+ private static final SparseIntArray sSoftbanksMap = new SparseIntArray(471);
+
+ static {
+ // People
+ sEmojisMap.put(0x1f604, R.drawable.emoji_1f604);
+ sEmojisMap.put(0x1f603, R.drawable.emoji_1f603);
+ sEmojisMap.put(0x1f600, R.drawable.emoji_1f600);
+ sEmojisMap.put(0x1f60a, R.drawable.emoji_1f60a);
+ sEmojisMap.put(0x263a, R.drawable.emoji_263a);
+ sEmojisMap.put(0x1f609, R.drawable.emoji_1f609);
+ sEmojisMap.put(0x1f60d, R.drawable.emoji_1f60d);
+ sEmojisMap.put(0x1f618, R.drawable.emoji_1f618);
+ sEmojisMap.put(0x1f61a, R.drawable.emoji_1f61a);
+ sEmojisMap.put(0x1f617, R.drawable.emoji_1f617);
+ sEmojisMap.put(0x1f619, R.drawable.emoji_1f619);
+ sEmojisMap.put(0x1f61c, R.drawable.emoji_1f61c);
+ sEmojisMap.put(0x1f61d, R.drawable.emoji_1f61d);
+ sEmojisMap.put(0x1f61b, R.drawable.emoji_1f61b);
+ sEmojisMap.put(0x1f633, R.drawable.emoji_1f633);
+ sEmojisMap.put(0x1f601, R.drawable.emoji_1f601);
+ sEmojisMap.put(0x1f614, R.drawable.emoji_1f614);
+ sEmojisMap.put(0x1f60c, R.drawable.emoji_1f60c);
+ sEmojisMap.put(0x1f612, R.drawable.emoji_1f612);
+ sEmojisMap.put(0x1f61e, R.drawable.emoji_1f61e);
+ sEmojisMap.put(0x1f623, R.drawable.emoji_1f623);
+ sEmojisMap.put(0x1f622, R.drawable.emoji_1f622);
+ sEmojisMap.put(0x1f602, R.drawable.emoji_1f602);
+ sEmojisMap.put(0x1f62d, R.drawable.emoji_1f62d);
+ sEmojisMap.put(0x1f62a, R.drawable.emoji_1f62a);
+ sEmojisMap.put(0x1f625, R.drawable.emoji_1f625);
+ sEmojisMap.put(0x1f630, R.drawable.emoji_1f630);
+ sEmojisMap.put(0x1f605, R.drawable.emoji_1f605);
+ sEmojisMap.put(0x1f613, R.drawable.emoji_1f613);
+ sEmojisMap.put(0x1f629, R.drawable.emoji_1f629);
+ sEmojisMap.put(0x1f62b, R.drawable.emoji_1f62b);
+ sEmojisMap.put(0x1f628, R.drawable.emoji_1f628);
+ sEmojisMap.put(0x1f631, R.drawable.emoji_1f631);
+ sEmojisMap.put(0x1f620, R.drawable.emoji_1f620);
+ sEmojisMap.put(0x1f621, R.drawable.emoji_1f621);
+ sEmojisMap.put(0x1f624, R.drawable.emoji_1f624);
+ sEmojisMap.put(0x1f616, R.drawable.emoji_1f616);
+ sEmojisMap.put(0x1f606, R.drawable.emoji_1f606);
+ sEmojisMap.put(0x1f60b, R.drawable.emoji_1f60b);
+ sEmojisMap.put(0x1f637, R.drawable.emoji_1f637);
+ sEmojisMap.put(0x1f60e, R.drawable.emoji_1f60e);
+ sEmojisMap.put(0x1f634, R.drawable.emoji_1f634);
+ sEmojisMap.put(0x1f635, R.drawable.emoji_1f635);
+ sEmojisMap.put(0x1f632, R.drawable.emoji_1f632);
+ sEmojisMap.put(0x1f61f, R.drawable.emoji_1f61f);
+ sEmojisMap.put(0x1f626, R.drawable.emoji_1f626);
+ sEmojisMap.put(0x1f627, R.drawable.emoji_1f627);
+ sEmojisMap.put(0x1f608, R.drawable.emoji_1f608);
+ sEmojisMap.put(0x1f47f, R.drawable.emoji_1f47f);
+ sEmojisMap.put(0x1f62e, R.drawable.emoji_1f62e);
+ sEmojisMap.put(0x1f62c, R.drawable.emoji_1f62c);
+ sEmojisMap.put(0x1f610, R.drawable.emoji_1f610);
+ sEmojisMap.put(0x1f615, R.drawable.emoji_1f615);
+ sEmojisMap.put(0x1f62f, R.drawable.emoji_1f62f);
+ sEmojisMap.put(0x1f636, R.drawable.emoji_1f636);
+ sEmojisMap.put(0x1f607, R.drawable.emoji_1f607);
+ sEmojisMap.put(0x1f60f, R.drawable.emoji_1f60f);
+ sEmojisMap.put(0x1f611, R.drawable.emoji_1f611);
+ sEmojisMap.put(0x1f472, R.drawable.emoji_1f472);
+ sEmojisMap.put(0x1f473, R.drawable.emoji_1f473);
+ sEmojisMap.put(0x1f46e, R.drawable.emoji_1f46e);
+ sEmojisMap.put(0x1f477, R.drawable.emoji_1f477);
+ sEmojisMap.put(0x1f482, R.drawable.emoji_1f482);
+ sEmojisMap.put(0x1f476, R.drawable.emoji_1f476);
+ sEmojisMap.put(0x1f466, R.drawable.emoji_1f466);
+ sEmojisMap.put(0x1f467, R.drawable.emoji_1f467);
+ sEmojisMap.put(0x1f468, R.drawable.emoji_1f468);
+ sEmojisMap.put(0x1f469, R.drawable.emoji_1f469);
+ sEmojisMap.put(0x1f474, R.drawable.emoji_1f474);
+ sEmojisMap.put(0x1f475, R.drawable.emoji_1f475);
+ sEmojisMap.put(0x1f471, R.drawable.emoji_1f471);
+ sEmojisMap.put(0x1f47c, R.drawable.emoji_1f47c);
+ sEmojisMap.put(0x1f478, R.drawable.emoji_1f478);
+ sEmojisMap.put(0x1f63a, R.drawable.emoji_1f63a);
+ sEmojisMap.put(0x1f638, R.drawable.emoji_1f638);
+ sEmojisMap.put(0x1f63b, R.drawable.emoji_1f63b);
+ sEmojisMap.put(0x1f63d, R.drawable.emoji_1f63d);
+ sEmojisMap.put(0x1f63c, R.drawable.emoji_1f63c);
+ sEmojisMap.put(0x1f640, R.drawable.emoji_1f640);
+ sEmojisMap.put(0x1f63f, R.drawable.emoji_1f63f);
+ sEmojisMap.put(0x1f639, R.drawable.emoji_1f639);
+ sEmojisMap.put(0x1f63e, R.drawable.emoji_1f63e);
+ sEmojisMap.put(0x1f479, R.drawable.emoji_1f479);
+ sEmojisMap.put(0x1f47a, R.drawable.emoji_1f47a);
+ sEmojisMap.put(0x1f648, R.drawable.emoji_1f648);
+ sEmojisMap.put(0x1f649, R.drawable.emoji_1f649);
+ sEmojisMap.put(0x1f64a, R.drawable.emoji_1f64a);
+ sEmojisMap.put(0x1f480, R.drawable.emoji_1f480);
+ sEmojisMap.put(0x1f47d, R.drawable.emoji_1f47d);
+ sEmojisMap.put(0x1f4a9, R.drawable.emoji_1f4a9);
+ sEmojisMap.put(0x1f525, R.drawable.emoji_1f525);
+ sEmojisMap.put(0x2728, R.drawable.emoji_2728);
+ sEmojisMap.put(0x1f31f, R.drawable.emoji_1f31f);
+ sEmojisMap.put(0x1f4ab, R.drawable.emoji_1f4ab);
+ sEmojisMap.put(0x1f4a5, R.drawable.emoji_1f4a5);
+ sEmojisMap.put(0x1f4a2, R.drawable.emoji_1f4a2);
+ sEmojisMap.put(0x1f4a6, R.drawable.emoji_1f4a6);
+ sEmojisMap.put(0x1f4a7, R.drawable.emoji_1f4a7);
+ sEmojisMap.put(0x1f4a4, R.drawable.emoji_1f4a4);
+ sEmojisMap.put(0x1f4a8, R.drawable.emoji_1f4a8);
+ sEmojisMap.put(0x1f442, R.drawable.emoji_1f442);
+ sEmojisMap.put(0x1f440, R.drawable.emoji_1f440);
+ sEmojisMap.put(0x1f443, R.drawable.emoji_1f443);
+ sEmojisMap.put(0x1f445, R.drawable.emoji_1f445);
+ sEmojisMap.put(0x1f444, R.drawable.emoji_1f444);
+ sEmojisMap.put(0x1f44d, R.drawable.emoji_1f44d);
+ sEmojisMap.put(0x1f44e, R.drawable.emoji_1f44e);
+ sEmojisMap.put(0x1f44c, R.drawable.emoji_1f44c);
+ sEmojisMap.put(0x1f44a, R.drawable.emoji_1f44a);
+ sEmojisMap.put(0x270a, R.drawable.emoji_270a);
+ sEmojisMap.put(0x270c, R.drawable.emoji_270c);
+ sEmojisMap.put(0x1f44b, R.drawable.emoji_1f44b);
+ sEmojisMap.put(0x270b, R.drawable.emoji_270b);
+ sEmojisMap.put(0x1f450, R.drawable.emoji_1f450);
+ sEmojisMap.put(0x1f446, R.drawable.emoji_1f446);
+ sEmojisMap.put(0x1f447, R.drawable.emoji_1f447);
+ sEmojisMap.put(0x1f449, R.drawable.emoji_1f449);
+ sEmojisMap.put(0x1f448, R.drawable.emoji_1f448);
+ sEmojisMap.put(0x1f64c, R.drawable.emoji_1f64c);
+ sEmojisMap.put(0x1f64f, R.drawable.emoji_1f64f);
+ sEmojisMap.put(0x261d, R.drawable.emoji_261d);
+ sEmojisMap.put(0x1f44f, R.drawable.emoji_1f44f);
+ sEmojisMap.put(0x1f4aa, R.drawable.emoji_1f4aa);
+ sEmojisMap.put(0x1f6b6, R.drawable.emoji_1f6b6);
+ sEmojisMap.put(0x1f3c3, R.drawable.emoji_1f3c3);
+ sEmojisMap.put(0x1f483, R.drawable.emoji_1f483);
+ sEmojisMap.put(0x1f46b, R.drawable.emoji_1f46b);
+ sEmojisMap.put(0x1f46a, R.drawable.emoji_1f46a);
+ sEmojisMap.put(0x1f46c, R.drawable.emoji_1f46c);
+ sEmojisMap.put(0x1f46d, R.drawable.emoji_1f46d);
+ sEmojisMap.put(0x1f48f, R.drawable.emoji_1f48f);
+ sEmojisMap.put(0x1f491, R.drawable.emoji_1f491);
+ sEmojisMap.put(0x1f46f, R.drawable.emoji_1f46f);
+ sEmojisMap.put(0x1f646, R.drawable.emoji_1f646);
+ sEmojisMap.put(0x1f645, R.drawable.emoji_1f645);
+ sEmojisMap.put(0x1f481, R.drawable.emoji_1f481);
+ sEmojisMap.put(0x1f64b, R.drawable.emoji_1f64b);
+ sEmojisMap.put(0x1f486, R.drawable.emoji_1f486);
+ sEmojisMap.put(0x1f487, R.drawable.emoji_1f487);
+ sEmojisMap.put(0x1f485, R.drawable.emoji_1f485);
+ sEmojisMap.put(0x1f470, R.drawable.emoji_1f470);
+ sEmojisMap.put(0x1f64e, R.drawable.emoji_1f64e);
+ sEmojisMap.put(0x1f64d, R.drawable.emoji_1f64d);
+ sEmojisMap.put(0x1f647, R.drawable.emoji_1f647);
+ sEmojisMap.put(0x1f3a9, R.drawable.emoji_1f3a9);
+ sEmojisMap.put(0x1f451, R.drawable.emoji_1f451);
+ sEmojisMap.put(0x1f452, R.drawable.emoji_1f452);
+ sEmojisMap.put(0x1f45f, R.drawable.emoji_1f45f);
+ sEmojisMap.put(0x1f45e, R.drawable.emoji_1f45e);
+ sEmojisMap.put(0x1f461, R.drawable.emoji_1f461);
+ sEmojisMap.put(0x1f460, R.drawable.emoji_1f460);
+ sEmojisMap.put(0x1f462, R.drawable.emoji_1f462);
+ sEmojisMap.put(0x1f455, R.drawable.emoji_1f455);
+ sEmojisMap.put(0x1f454, R.drawable.emoji_1f454);
+ sEmojisMap.put(0x1f45a, R.drawable.emoji_1f45a);
+ sEmojisMap.put(0x1f457, R.drawable.emoji_1f457);
+ sEmojisMap.put(0x1f3bd, R.drawable.emoji_1f3bd);
+ sEmojisMap.put(0x1f456, R.drawable.emoji_1f456);
+ sEmojisMap.put(0x1f458, R.drawable.emoji_1f458);
+ sEmojisMap.put(0x1f459, R.drawable.emoji_1f459);
+ sEmojisMap.put(0x1f4bc, R.drawable.emoji_1f4bc);
+ sEmojisMap.put(0x1f45c, R.drawable.emoji_1f45c);
+ sEmojisMap.put(0x1f45d, R.drawable.emoji_1f45d);
+ sEmojisMap.put(0x1f45b, R.drawable.emoji_1f45b);
+ sEmojisMap.put(0x1f453, R.drawable.emoji_1f453);
+ sEmojisMap.put(0x1f380, R.drawable.emoji_1f380);
+ sEmojisMap.put(0x1f302, R.drawable.emoji_1f302);
+ sEmojisMap.put(0x1f484, R.drawable.emoji_1f484);
+ sEmojisMap.put(0x1f49b, R.drawable.emoji_1f49b);
+ sEmojisMap.put(0x1f499, R.drawable.emoji_1f499);
+ sEmojisMap.put(0x1f49c, R.drawable.emoji_1f49c);
+ sEmojisMap.put(0x1f49a, R.drawable.emoji_1f49a);
+ sEmojisMap.put(0x2764, R.drawable.emoji_2764);
+ sEmojisMap.put(0x1f494, R.drawable.emoji_1f494);
+ sEmojisMap.put(0x1f497, R.drawable.emoji_1f497);
+ sEmojisMap.put(0x1f493, R.drawable.emoji_1f493);
+ sEmojisMap.put(0x1f495, R.drawable.emoji_1f495);
+ sEmojisMap.put(0x1f496, R.drawable.emoji_1f496);
+ sEmojisMap.put(0x1f49e, R.drawable.emoji_1f49e);
+ sEmojisMap.put(0x1f498, R.drawable.emoji_1f498);
+ sEmojisMap.put(0x1f48c, R.drawable.emoji_1f48c);
+ sEmojisMap.put(0x1f48b, R.drawable.emoji_1f48b);
+ sEmojisMap.put(0x1f48d, R.drawable.emoji_1f48d);
+ sEmojisMap.put(0x1f48e, R.drawable.emoji_1f48e);
+ sEmojisMap.put(0x1f464, R.drawable.emoji_1f464);
+ sEmojisMap.put(0x1f465, R.drawable.emoji_1f465);
+ sEmojisMap.put(0x1f4ac, R.drawable.emoji_1f4ac);
+ sEmojisMap.put(0x1f463, R.drawable.emoji_1f463);
+ sEmojisMap.put(0x1f4ad, R.drawable.emoji_1f4ad);
+
+ // Nature
+ sEmojisMap.put(0x1f436, R.drawable.emoji_1f436);
+ sEmojisMap.put(0x1f43a, R.drawable.emoji_1f43a);
+ sEmojisMap.put(0x1f431, R.drawable.emoji_1f431);
+ sEmojisMap.put(0x1f42d, R.drawable.emoji_1f42d);
+ sEmojisMap.put(0x1f439, R.drawable.emoji_1f439);
+ sEmojisMap.put(0x1f430, R.drawable.emoji_1f430);
+ sEmojisMap.put(0x1f438, R.drawable.emoji_1f438);
+ sEmojisMap.put(0x1f42f, R.drawable.emoji_1f42f);
+ sEmojisMap.put(0x1f428, R.drawable.emoji_1f428);
+ sEmojisMap.put(0x1f43b, R.drawable.emoji_1f43b);
+ sEmojisMap.put(0x1f437, R.drawable.emoji_1f437);
+ sEmojisMap.put(0x1f43d, R.drawable.emoji_1f43d);
+ sEmojisMap.put(0x1f42e, R.drawable.emoji_1f42e);
+ sEmojisMap.put(0x1f417, R.drawable.emoji_1f417);
+ sEmojisMap.put(0x1f435, R.drawable.emoji_1f435);
+ sEmojisMap.put(0x1f412, R.drawable.emoji_1f412);
+ sEmojisMap.put(0x1f434, R.drawable.emoji_1f434);
+ sEmojisMap.put(0x1f411, R.drawable.emoji_1f411);
+ sEmojisMap.put(0x1f418, R.drawable.emoji_1f418);
+ sEmojisMap.put(0x1f43c, R.drawable.emoji_1f43c);
+ sEmojisMap.put(0x1f427, R.drawable.emoji_1f427);
+ sEmojisMap.put(0x1f426, R.drawable.emoji_1f426);
+ sEmojisMap.put(0x1f424, R.drawable.emoji_1f424);
+ sEmojisMap.put(0x1f425, R.drawable.emoji_1f425);
+ sEmojisMap.put(0x1f423, R.drawable.emoji_1f423);
+ sEmojisMap.put(0x1f414, R.drawable.emoji_1f414);
+ sEmojisMap.put(0x1f40d, R.drawable.emoji_1f40d);
+ sEmojisMap.put(0x1f422, R.drawable.emoji_1f422);
+ sEmojisMap.put(0x1f41b, R.drawable.emoji_1f41b);
+ sEmojisMap.put(0x1f41d, R.drawable.emoji_1f41d);
+ sEmojisMap.put(0x1f41c, R.drawable.emoji_1f41c);
+ sEmojisMap.put(0x1f41e, R.drawable.emoji_1f41e);
+ sEmojisMap.put(0x1f40c, R.drawable.emoji_1f40c);
+ sEmojisMap.put(0x1f419, R.drawable.emoji_1f419);
+ sEmojisMap.put(0x1f41a, R.drawable.emoji_1f41a);
+ sEmojisMap.put(0x1f420, R.drawable.emoji_1f420);
+ sEmojisMap.put(0x1f41f, R.drawable.emoji_1f41f);
+ sEmojisMap.put(0x1f42c, R.drawable.emoji_1f42c);
+ sEmojisMap.put(0x1f433, R.drawable.emoji_1f433);
+ sEmojisMap.put(0x1f40b, R.drawable.emoji_1f40b);
+ sEmojisMap.put(0x1f404, R.drawable.emoji_1f404);
+ sEmojisMap.put(0x1f40f, R.drawable.emoji_1f40f);
+ sEmojisMap.put(0x1f400, R.drawable.emoji_1f400);
+ sEmojisMap.put(0x1f403, R.drawable.emoji_1f403);
+ sEmojisMap.put(0x1f405, R.drawable.emoji_1f405);
+ sEmojisMap.put(0x1f407, R.drawable.emoji_1f407);
+ sEmojisMap.put(0x1f409, R.drawable.emoji_1f409);
+ sEmojisMap.put(0x1f40e, R.drawable.emoji_1f40e);
+ sEmojisMap.put(0x1f410, R.drawable.emoji_1f410);
+ sEmojisMap.put(0x1f413, R.drawable.emoji_1f413);
+ sEmojisMap.put(0x1f415, R.drawable.emoji_1f415);
+ sEmojisMap.put(0x1f416, R.drawable.emoji_1f416);
+ sEmojisMap.put(0x1f401, R.drawable.emoji_1f401);
+ sEmojisMap.put(0x1f402, R.drawable.emoji_1f402);
+ sEmojisMap.put(0x1f432, R.drawable.emoji_1f432);
+ sEmojisMap.put(0x1f421, R.drawable.emoji_1f421);
+ sEmojisMap.put(0x1f40a, R.drawable.emoji_1f40a);
+ sEmojisMap.put(0x1f42b, R.drawable.emoji_1f42b);
+ sEmojisMap.put(0x1f42a, R.drawable.emoji_1f42a);
+ sEmojisMap.put(0x1f406, R.drawable.emoji_1f406);
+ sEmojisMap.put(0x1f408, R.drawable.emoji_1f408);
+ sEmojisMap.put(0x1f429, R.drawable.emoji_1f429);
+ sEmojisMap.put(0x1f43e, R.drawable.emoji_1f43e);
+ sEmojisMap.put(0x1f490, R.drawable.emoji_1f490);
+ sEmojisMap.put(0x1f338, R.drawable.emoji_1f338);
+ sEmojisMap.put(0x1f337, R.drawable.emoji_1f337);
+ sEmojisMap.put(0x1f340, R.drawable.emoji_1f340);
+ sEmojisMap.put(0x1f339, R.drawable.emoji_1f339);
+ sEmojisMap.put(0x1f33b, R.drawable.emoji_1f33b);
+ sEmojisMap.put(0x1f33a, R.drawable.emoji_1f33a);
+ sEmojisMap.put(0x1f341, R.drawable.emoji_1f341);
+ sEmojisMap.put(0x1f343, R.drawable.emoji_1f343);
+ sEmojisMap.put(0x1f342, R.drawable.emoji_1f342);
+ sEmojisMap.put(0x1f33f, R.drawable.emoji_1f33f);
+ sEmojisMap.put(0x1f33e, R.drawable.emoji_1f33e);
+ sEmojisMap.put(0x1f344, R.drawable.emoji_1f344);
+ sEmojisMap.put(0x1f335, R.drawable.emoji_1f335);
+ sEmojisMap.put(0x1f334, R.drawable.emoji_1f334);
+ sEmojisMap.put(0x1f332, R.drawable.emoji_1f332);
+ sEmojisMap.put(0x1f333, R.drawable.emoji_1f333);
+ sEmojisMap.put(0x1f330, R.drawable.emoji_1f330);
+ sEmojisMap.put(0x1f331, R.drawable.emoji_1f331);
+ sEmojisMap.put(0x1f33c, R.drawable.emoji_1f33c);
+ sEmojisMap.put(0x1f310, R.drawable.emoji_1f310);
+ sEmojisMap.put(0x1f31e, R.drawable.emoji_1f31e);
+ sEmojisMap.put(0x1f31d, R.drawable.emoji_1f31d);
+ sEmojisMap.put(0x1f31a, R.drawable.emoji_1f31a);
+ sEmojisMap.put(0x1f311, R.drawable.emoji_1f311);
+ sEmojisMap.put(0x1f312, R.drawable.emoji_1f312);
+ sEmojisMap.put(0x1f313, R.drawable.emoji_1f313);
+ sEmojisMap.put(0x1f314, R.drawable.emoji_1f314);
+ sEmojisMap.put(0x1f315, R.drawable.emoji_1f315);
+ sEmojisMap.put(0x1f316, R.drawable.emoji_1f316);
+ sEmojisMap.put(0x1f317, R.drawable.emoji_1f317);
+ sEmojisMap.put(0x1f318, R.drawable.emoji_1f318);
+ sEmojisMap.put(0x1f31c, R.drawable.emoji_1f31c);
+ sEmojisMap.put(0x1f31b, R.drawable.emoji_1f31b);
+ sEmojisMap.put(0x1f319, R.drawable.emoji_1f319);
+ sEmojisMap.put(0x1f30d, R.drawable.emoji_1f30d);
+ sEmojisMap.put(0x1f30e, R.drawable.emoji_1f30e);
+ sEmojisMap.put(0x1f30f, R.drawable.emoji_1f30f);
+ sEmojisMap.put(0x1f30b, R.drawable.emoji_1f30b);
+ sEmojisMap.put(0x1f30c, R.drawable.emoji_1f30c);
+ sEmojisMap.put(0x1f320, R.drawable.emoji_1f303); // TODO (rockerhieu) review this emoji
+ sEmojisMap.put(0x2b50, R.drawable.emoji_2b50);
+ sEmojisMap.put(0x2600, R.drawable.emoji_2600);
+ sEmojisMap.put(0x26c5, R.drawable.emoji_26c5);
+ sEmojisMap.put(0x2601, R.drawable.emoji_2601);
+ sEmojisMap.put(0x26a1, R.drawable.emoji_26a1);
+ sEmojisMap.put(0x2614, R.drawable.emoji_2614);
+ sEmojisMap.put(0x2744, R.drawable.emoji_2744);
+ sEmojisMap.put(0x26c4, R.drawable.emoji_26c4);
+ sEmojisMap.put(0x1f300, R.drawable.emoji_1f300);
+ sEmojisMap.put(0x1f301, R.drawable.emoji_1f301);
+ sEmojisMap.put(0x1f308, R.drawable.emoji_1f308);
+ sEmojisMap.put(0x1f30a, R.drawable.emoji_1f30a);
+
+ // Objects
+ sEmojisMap.put(0x1f38d, R.drawable.emoji_1f38d);
+ sEmojisMap.put(0x1f49d, R.drawable.emoji_1f49d);
+ sEmojisMap.put(0x1f38e, R.drawable.emoji_1f38e);
+ sEmojisMap.put(0x1f392, R.drawable.emoji_1f392);
+ sEmojisMap.put(0x1f393, R.drawable.emoji_1f393);
+ sEmojisMap.put(0x1f38f, R.drawable.emoji_1f38f);
+ sEmojisMap.put(0x1f386, R.drawable.emoji_1f386);
+ sEmojisMap.put(0x1f387, R.drawable.emoji_1f387);
+ sEmojisMap.put(0x1f390, R.drawable.emoji_1f390);
+ sEmojisMap.put(0x1f391, R.drawable.emoji_1f391);
+ sEmojisMap.put(0x1f383, R.drawable.emoji_1f383);
+ sEmojisMap.put(0x1f47b, R.drawable.emoji_1f47b);
+ sEmojisMap.put(0x1f385, R.drawable.emoji_1f385);
+ sEmojisMap.put(0x1f384, R.drawable.emoji_1f384);
+ sEmojisMap.put(0x1f381, R.drawable.emoji_1f381);
+ sEmojisMap.put(0x1f38b, R.drawable.emoji_1f38b);
+ sEmojisMap.put(0x1f389, R.drawable.emoji_1f389);
+ sEmojisMap.put(0x1f38a, R.drawable.emoji_1f38a);
+ sEmojisMap.put(0x1f388, R.drawable.emoji_1f388);
+ sEmojisMap.put(0x1f38c, R.drawable.emoji_1f38c);
+ sEmojisMap.put(0x1f52e, R.drawable.emoji_1f52e);
+ sEmojisMap.put(0x1f3a5, R.drawable.emoji_1f3a5);
+ sEmojisMap.put(0x1f4f7, R.drawable.emoji_1f4f7);
+ sEmojisMap.put(0x1f4f9, R.drawable.emoji_1f4f9);
+ sEmojisMap.put(0x1f4fc, R.drawable.emoji_1f4fc);
+ sEmojisMap.put(0x1f4bf, R.drawable.emoji_1f4bf);
+ sEmojisMap.put(0x1f4c0, R.drawable.emoji_1f4c0);
+ sEmojisMap.put(0x1f4bd, R.drawable.emoji_1f4bd);
+ sEmojisMap.put(0x1f4be, R.drawable.emoji_1f4be);
+ sEmojisMap.put(0x1f4bb, R.drawable.emoji_1f4bb);
+ sEmojisMap.put(0x1f4f1, R.drawable.emoji_1f4f1);
+ sEmojisMap.put(0x260e, R.drawable.emoji_260e);
+ sEmojisMap.put(0x1f4de, R.drawable.emoji_1f4de);
+ sEmojisMap.put(0x1f4df, R.drawable.emoji_1f4df);
+ sEmojisMap.put(0x1f4e0, R.drawable.emoji_1f4e0);
+ sEmojisMap.put(0x1f4e1, R.drawable.emoji_1f4e1);
+ sEmojisMap.put(0x1f4fa, R.drawable.emoji_1f4fa);
+ sEmojisMap.put(0x1f4fb, R.drawable.emoji_1f4fb);
+ sEmojisMap.put(0x1f50a, R.drawable.emoji_1f50a);
+ sEmojisMap.put(0x1f509, R.drawable.emoji_1f509);
+ sEmojisMap.put(0x1f508, R.drawable.emoji_1f508); // TODO (rockerhieu): review this emoji
+ sEmojisMap.put(0x1f507, R.drawable.emoji_1f507);
+ sEmojisMap.put(0x1f514, R.drawable.emoji_1f514);
+ sEmojisMap.put(0x1f515, R.drawable.emoji_1f515);
+ sEmojisMap.put(0x1f4e2, R.drawable.emoji_1f4e2);
+ sEmojisMap.put(0x1f4e3, R.drawable.emoji_1f4e3);
+ sEmojisMap.put(0x23f3, R.drawable.emoji_23f3);
+ sEmojisMap.put(0x231b, R.drawable.emoji_231b);
+ sEmojisMap.put(0x23f0, R.drawable.emoji_23f0);
+ sEmojisMap.put(0x231a, R.drawable.emoji_231a);
+ sEmojisMap.put(0x1f513, R.drawable.emoji_1f513);
+ sEmojisMap.put(0x1f512, R.drawable.emoji_1f512);
+ sEmojisMap.put(0x1f50f, R.drawable.emoji_1f50f);
+ sEmojisMap.put(0x1f510, R.drawable.emoji_1f510);
+ sEmojisMap.put(0x1f511, R.drawable.emoji_1f511);
+ sEmojisMap.put(0x1f50e, R.drawable.emoji_1f50e);
+ sEmojisMap.put(0x1f4a1, R.drawable.emoji_1f4a1);
+ sEmojisMap.put(0x1f526, R.drawable.emoji_1f526);
+ sEmojisMap.put(0x1f506, R.drawable.emoji_1f506);
+ sEmojisMap.put(0x1f505, R.drawable.emoji_1f505);
+ sEmojisMap.put(0x1f50c, R.drawable.emoji_1f50c);
+ sEmojisMap.put(0x1f50b, R.drawable.emoji_1f50b);
+ sEmojisMap.put(0x1f50d, R.drawable.emoji_1f50d);
+ sEmojisMap.put(0x1f6c1, R.drawable.emoji_1f6c1);
+ sEmojisMap.put(0x1f6c0, R.drawable.emoji_1f6c0);
+ sEmojisMap.put(0x1f6bf, R.drawable.emoji_1f6bf);
+ sEmojisMap.put(0x1f6bd, R.drawable.emoji_1f6bd);
+ sEmojisMap.put(0x1f527, R.drawable.emoji_1f527);
+ sEmojisMap.put(0x1f529, R.drawable.emoji_1f529);
+ sEmojisMap.put(0x1f528, R.drawable.emoji_1f528);
+ sEmojisMap.put(0x1f6aa, R.drawable.emoji_1f6aa);
+ sEmojisMap.put(0x1f6ac, R.drawable.emoji_1f6ac);
+ sEmojisMap.put(0x1f4a3, R.drawable.emoji_1f4a3);
+ sEmojisMap.put(0x1f52b, R.drawable.emoji_1f52b);
+ sEmojisMap.put(0x1f52a, R.drawable.emoji_1f52a);
+ sEmojisMap.put(0x1f48a, R.drawable.emoji_1f48a);
+ sEmojisMap.put(0x1f489, R.drawable.emoji_1f489);
+ sEmojisMap.put(0x1f4b0, R.drawable.emoji_1f4b0);
+ sEmojisMap.put(0x1f4b4, R.drawable.emoji_1f4b4);
+ sEmojisMap.put(0x1f4b5, R.drawable.emoji_1f4b5);
+ sEmojisMap.put(0x1f4b7, R.drawable.emoji_1f4b7);
+ sEmojisMap.put(0x1f4b6, R.drawable.emoji_1f4b6);
+ sEmojisMap.put(0x1f4b3, R.drawable.emoji_1f4b3);
+ sEmojisMap.put(0x1f4b8, R.drawable.emoji_1f4b8);
+ sEmojisMap.put(0x1f4f2, R.drawable.emoji_1f4f2);
+ sEmojisMap.put(0x1f4e7, R.drawable.emoji_1f4e7);
+ sEmojisMap.put(0x1f4e5, R.drawable.emoji_1f4e5);
+ sEmojisMap.put(0x1f4e4, R.drawable.emoji_1f4e4);
+ sEmojisMap.put(0x2709, R.drawable.emoji_2709);
+ sEmojisMap.put(0x1f4e9, R.drawable.emoji_1f4e9);
+ sEmojisMap.put(0x1f4e8, R.drawable.emoji_1f4e8);
+ sEmojisMap.put(0x1f4ef, R.drawable.emoji_1f4ef);
+ sEmojisMap.put(0x1f4eb, R.drawable.emoji_1f4eb);
+ sEmojisMap.put(0x1f4ea, R.drawable.emoji_1f4ea);
+ sEmojisMap.put(0x1f4ec, R.drawable.emoji_1f4ec);
+ sEmojisMap.put(0x1f4ed, R.drawable.emoji_1f4ed);
+ sEmojisMap.put(0x1f4ee, R.drawable.emoji_1f4ee);
+ sEmojisMap.put(0x1f4e6, R.drawable.emoji_1f4e6);
+ sEmojisMap.put(0x1f4dd, R.drawable.emoji_1f4dd);
+ sEmojisMap.put(0x1f4c4, R.drawable.emoji_1f4c4);
+ sEmojisMap.put(0x1f4c3, R.drawable.emoji_1f4c3);
+ sEmojisMap.put(0x1f4d1, R.drawable.emoji_1f4d1);
+ sEmojisMap.put(0x1f4ca, R.drawable.emoji_1f4ca);
+ sEmojisMap.put(0x1f4c8, R.drawable.emoji_1f4c8);
+ sEmojisMap.put(0x1f4c9, R.drawable.emoji_1f4c9);
+ sEmojisMap.put(0x1f4dc, R.drawable.emoji_1f4dc);
+ sEmojisMap.put(0x1f4cb, R.drawable.emoji_1f4cb);
+ sEmojisMap.put(0x1f4c5, R.drawable.emoji_1f4c5);
+ sEmojisMap.put(0x1f4c6, R.drawable.emoji_1f4c6);
+ sEmojisMap.put(0x1f4c7, R.drawable.emoji_1f4c7);
+ sEmojisMap.put(0x1f4c1, R.drawable.emoji_1f4c1);
+ sEmojisMap.put(0x1f4c2, R.drawable.emoji_1f4c2);
+ sEmojisMap.put(0x2702, R.drawable.emoji_2702);
+ sEmojisMap.put(0x1f4cc, R.drawable.emoji_1f4cc);
+ sEmojisMap.put(0x1f4ce, R.drawable.emoji_1f4ce);
+ sEmojisMap.put(0x2712, R.drawable.emoji_2712);
+ sEmojisMap.put(0x270f, R.drawable.emoji_270f);
+ sEmojisMap.put(0x1f4cf, R.drawable.emoji_1f4cf);
+ sEmojisMap.put(0x1f4d0, R.drawable.emoji_1f4d0);
+ sEmojisMap.put(0x1f4d5, R.drawable.emoji_1f4d5);
+ sEmojisMap.put(0x1f4d7, R.drawable.emoji_1f4d7);
+ sEmojisMap.put(0x1f4d8, R.drawable.emoji_1f4d8);
+ sEmojisMap.put(0x1f4d9, R.drawable.emoji_1f4d9);
+ sEmojisMap.put(0x1f4d3, R.drawable.emoji_1f4d3);
+ sEmojisMap.put(0x1f4d4, R.drawable.emoji_1f4d4);
+ sEmojisMap.put(0x1f4d2, R.drawable.emoji_1f4d2);
+ sEmojisMap.put(0x1f4da, R.drawable.emoji_1f4da);
+ sEmojisMap.put(0x1f4d6, R.drawable.emoji_1f4d6);
+ sEmojisMap.put(0x1f516, R.drawable.emoji_1f516);
+ sEmojisMap.put(0x1f4db, R.drawable.emoji_1f4db);
+ sEmojisMap.put(0x1f52c, R.drawable.emoji_1f52c);
+ sEmojisMap.put(0x1f52d, R.drawable.emoji_1f52d);
+ sEmojisMap.put(0x1f4f0, R.drawable.emoji_1f4f0);
+ sEmojisMap.put(0x1f3a8, R.drawable.emoji_1f3a8);
+ sEmojisMap.put(0x1f3ac, R.drawable.emoji_1f3ac);
+ sEmojisMap.put(0x1f3a4, R.drawable.emoji_1f3a4);
+ sEmojisMap.put(0x1f3a7, R.drawable.emoji_1f3a7);
+ sEmojisMap.put(0x1f3bc, R.drawable.emoji_1f3bc);
+ sEmojisMap.put(0x1f3b5, R.drawable.emoji_1f3b5);
+ sEmojisMap.put(0x1f3b6, R.drawable.emoji_1f3b6);
+ sEmojisMap.put(0x1f3b9, R.drawable.emoji_1f3b9);
+ sEmojisMap.put(0x1f3bb, R.drawable.emoji_1f3bb);
+ sEmojisMap.put(0x1f3ba, R.drawable.emoji_1f3ba);
+ sEmojisMap.put(0x1f3b7, R.drawable.emoji_1f3b7);
+ sEmojisMap.put(0x1f3b8, R.drawable.emoji_1f3b8);
+ sEmojisMap.put(0x1f47e, R.drawable.emoji_1f47e);
+ sEmojisMap.put(0x1f3ae, R.drawable.emoji_1f3ae);
+ sEmojisMap.put(0x1f0cf, R.drawable.emoji_1f0cf);
+ sEmojisMap.put(0x1f3b4, R.drawable.emoji_1f3b4);
+ sEmojisMap.put(0x1f004, R.drawable.emoji_1f004);
+ sEmojisMap.put(0x1f3b2, R.drawable.emoji_1f3b2);
+ sEmojisMap.put(0x1f3af, R.drawable.emoji_1f3af);
+ sEmojisMap.put(0x1f3c8, R.drawable.emoji_1f3c8);
+ sEmojisMap.put(0x1f3c0, R.drawable.emoji_1f3c0);
+ sEmojisMap.put(0x26bd, R.drawable.emoji_26bd);
+ sEmojisMap.put(0x26be, R.drawable.emoji_26be);
+ sEmojisMap.put(0x1f3be, R.drawable.emoji_1f3be);
+ sEmojisMap.put(0x1f3b1, R.drawable.emoji_1f3b1);
+ sEmojisMap.put(0x1f3c9, R.drawable.emoji_1f3c9);
+ sEmojisMap.put(0x1f3b3, R.drawable.emoji_1f3b3);
+ sEmojisMap.put(0x26f3, R.drawable.emoji_26f3);
+ sEmojisMap.put(0x1f6b5, R.drawable.emoji_1f6b5);
+ sEmojisMap.put(0x1f6b4, R.drawable.emoji_1f6b4);
+ sEmojisMap.put(0x1f3c1, R.drawable.emoji_1f3c1);
+ sEmojisMap.put(0x1f3c7, R.drawable.emoji_1f3c7);
+ sEmojisMap.put(0x1f3c6, R.drawable.emoji_1f3c6);
+ sEmojisMap.put(0x1f3bf, R.drawable.emoji_1f3bf);
+ sEmojisMap.put(0x1f3c2, R.drawable.emoji_1f3c2);
+ sEmojisMap.put(0x1f3ca, R.drawable.emoji_1f3ca);
+ sEmojisMap.put(0x1f3c4, R.drawable.emoji_1f3c4);
+ sEmojisMap.put(0x1f3a3, R.drawable.emoji_1f3a3);
+ sEmojisMap.put(0x2615, R.drawable.emoji_2615);
+ sEmojisMap.put(0x1f375, R.drawable.emoji_1f375);
+ sEmojisMap.put(0x1f376, R.drawable.emoji_1f376);
+ sEmojisMap.put(0x1f37c, R.drawable.emoji_1f37c);
+ sEmojisMap.put(0x1f37a, R.drawable.emoji_1f37a);
+ sEmojisMap.put(0x1f37b, R.drawable.emoji_1f37b);
+ sEmojisMap.put(0x1f378, R.drawable.emoji_1f378);
+ sEmojisMap.put(0x1f379, R.drawable.emoji_1f379);
+ sEmojisMap.put(0x1f377, R.drawable.emoji_1f377);
+ sEmojisMap.put(0x1f374, R.drawable.emoji_1f374);
+ sEmojisMap.put(0x1f355, R.drawable.emoji_1f355);
+ sEmojisMap.put(0x1f354, R.drawable.emoji_1f354);
+ sEmojisMap.put(0x1f35f, R.drawable.emoji_1f35f);
+ sEmojisMap.put(0x1f357, R.drawable.emoji_1f357);
+ sEmojisMap.put(0x1f356, R.drawable.emoji_1f356);
+ sEmojisMap.put(0x1f35d, R.drawable.emoji_1f35d);
+ sEmojisMap.put(0x1f35b, R.drawable.emoji_1f35b);
+ sEmojisMap.put(0x1f364, R.drawable.emoji_1f364);
+ sEmojisMap.put(0x1f371, R.drawable.emoji_1f371);
+ sEmojisMap.put(0x1f363, R.drawable.emoji_1f363);
+ sEmojisMap.put(0x1f365, R.drawable.emoji_1f365);
+ sEmojisMap.put(0x1f359, R.drawable.emoji_1f359);
+ sEmojisMap.put(0x1f358, R.drawable.emoji_1f358);
+ sEmojisMap.put(0x1f35a, R.drawable.emoji_1f35a);
+ sEmojisMap.put(0x1f35c, R.drawable.emoji_1f35c);
+ sEmojisMap.put(0x1f372, R.drawable.emoji_1f372);
+ sEmojisMap.put(0x1f362, R.drawable.emoji_1f362);
+ sEmojisMap.put(0x1f361, R.drawable.emoji_1f361);
+ sEmojisMap.put(0x1f373, R.drawable.emoji_1f373);
+ sEmojisMap.put(0x1f35e, R.drawable.emoji_1f35e);
+ sEmojisMap.put(0x1f369, R.drawable.emoji_1f369);
+ sEmojisMap.put(0x1f36e, R.drawable.emoji_1f36e);
+ sEmojisMap.put(0x1f366, R.drawable.emoji_1f366);
+ sEmojisMap.put(0x1f368, R.drawable.emoji_1f368);
+ sEmojisMap.put(0x1f367, R.drawable.emoji_1f367);
+ sEmojisMap.put(0x1f382, R.drawable.emoji_1f382);
+ sEmojisMap.put(0x1f370, R.drawable.emoji_1f370);
+ sEmojisMap.put(0x1f36a, R.drawable.emoji_1f36a);
+ sEmojisMap.put(0x1f36b, R.drawable.emoji_1f36b);
+ sEmojisMap.put(0x1f36c, R.drawable.emoji_1f36c);
+ sEmojisMap.put(0x1f36d, R.drawable.emoji_1f36d);
+ sEmojisMap.put(0x1f36f, R.drawable.emoji_1f36f);
+ sEmojisMap.put(0x1f34e, R.drawable.emoji_1f34e);
+ sEmojisMap.put(0x1f34f, R.drawable.emoji_1f34f);
+ sEmojisMap.put(0x1f34a, R.drawable.emoji_1f34a);
+ sEmojisMap.put(0x1f34b, R.drawable.emoji_1f34b);
+ sEmojisMap.put(0x1f352, R.drawable.emoji_1f352);
+ sEmojisMap.put(0x1f347, R.drawable.emoji_1f347);
+ sEmojisMap.put(0x1f349, R.drawable.emoji_1f349);
+ sEmojisMap.put(0x1f353, R.drawable.emoji_1f353);
+ sEmojisMap.put(0x1f351, R.drawable.emoji_1f351);
+ sEmojisMap.put(0x1f348, R.drawable.emoji_1f348);
+ sEmojisMap.put(0x1f34c, R.drawable.emoji_1f34c);
+ sEmojisMap.put(0x1f350, R.drawable.emoji_1f350);
+ sEmojisMap.put(0x1f34d, R.drawable.emoji_1f34d);
+ sEmojisMap.put(0x1f360, R.drawable.emoji_1f360);
+ sEmojisMap.put(0x1f346, R.drawable.emoji_1f346);
+ sEmojisMap.put(0x1f345, R.drawable.emoji_1f345);
+ sEmojisMap.put(0x1f33d, R.drawable.emoji_1f33d);
+
+ // Places
+ sEmojisMap.put(0x1f3e0, R.drawable.emoji_1f3e0);
+ sEmojisMap.put(0x1f3e1, R.drawable.emoji_1f3e1);
+ sEmojisMap.put(0x1f3eb, R.drawable.emoji_1f3eb);
+ sEmojisMap.put(0x1f3e2, R.drawable.emoji_1f3e2);
+ sEmojisMap.put(0x1f3e3, R.drawable.emoji_1f3e3);
+ sEmojisMap.put(0x1f3e5, R.drawable.emoji_1f3e5);
+ sEmojisMap.put(0x1f3e6, R.drawable.emoji_1f3e6);
+ sEmojisMap.put(0x1f3ea, R.drawable.emoji_1f3ea);
+ sEmojisMap.put(0x1f3e9, R.drawable.emoji_1f3e9);
+ sEmojisMap.put(0x1f3e8, R.drawable.emoji_1f3e8);
+ sEmojisMap.put(0x1f492, R.drawable.emoji_1f492);
+ sEmojisMap.put(0x26ea, R.drawable.emoji_26ea);
+ sEmojisMap.put(0x1f3ec, R.drawable.emoji_1f3ec);
+ sEmojisMap.put(0x1f3e4, R.drawable.emoji_1f3e4);
+ sEmojisMap.put(0x1f307, R.drawable.emoji_1f307);
+ sEmojisMap.put(0x1f306, R.drawable.emoji_1f306);
+ sEmojisMap.put(0x1f3ef, R.drawable.emoji_1f3ef);
+ sEmojisMap.put(0x1f3f0, R.drawable.emoji_1f3f0);
+ sEmojisMap.put(0x26fa, R.drawable.emoji_26fa);
+ sEmojisMap.put(0x1f3ed, R.drawable.emoji_1f3ed);
+ sEmojisMap.put(0x1f5fc, R.drawable.emoji_1f5fc);
+ sEmojisMap.put(0x1f5fe, R.drawable.emoji_1f5fe);
+ sEmojisMap.put(0x1f5fb, R.drawable.emoji_1f5fb);
+ sEmojisMap.put(0x1f304, R.drawable.emoji_1f304);
+ sEmojisMap.put(0x1f305, R.drawable.emoji_1f305);
+ sEmojisMap.put(0x1f303, R.drawable.emoji_1f303);
+ sEmojisMap.put(0x1f5fd, R.drawable.emoji_1f5fd);
+ sEmojisMap.put(0x1f309, R.drawable.emoji_1f309);
+ sEmojisMap.put(0x1f3a0, R.drawable.emoji_1f3a0);
+ sEmojisMap.put(0x1f3a1, R.drawable.emoji_1f3a1);
+ sEmojisMap.put(0x26f2, R.drawable.emoji_26f2);
+ sEmojisMap.put(0x1f3a2, R.drawable.emoji_1f3a2);
+ sEmojisMap.put(0x1f6a2, R.drawable.emoji_1f6a2);
+ sEmojisMap.put(0x26f5, R.drawable.emoji_26f5);
+ sEmojisMap.put(0x1f6a4, R.drawable.emoji_1f6a4);
+ sEmojisMap.put(0x1f6a3, R.drawable.emoji_1f6a3);
+ sEmojisMap.put(0x2693, R.drawable.emoji_2693);
+ sEmojisMap.put(0x1f680, R.drawable.emoji_1f680);
+ sEmojisMap.put(0x2708, R.drawable.emoji_2708);
+ sEmojisMap.put(0x1f4ba, R.drawable.emoji_1f4ba);
+ sEmojisMap.put(0x1f681, R.drawable.emoji_1f681);
+ sEmojisMap.put(0x1f682, R.drawable.emoji_1f682);
+ sEmojisMap.put(0x1f68a, R.drawable.emoji_1f68a);
+ sEmojisMap.put(0x1f689, R.drawable.emoji_1f689);
+ sEmojisMap.put(0x1f69e, R.drawable.emoji_1f69e);
+ sEmojisMap.put(0x1f686, R.drawable.emoji_1f686);
+ sEmojisMap.put(0x1f684, R.drawable.emoji_1f684);
+ sEmojisMap.put(0x1f685, R.drawable.emoji_1f685);
+ sEmojisMap.put(0x1f688, R.drawable.emoji_1f688);
+ sEmojisMap.put(0x1f687, R.drawable.emoji_1f687);
+ sEmojisMap.put(0x1f69d, R.drawable.emoji_1f69d);
+ sEmojisMap.put(0x1f68b, R.drawable.emoji_1f68b); // TODO (rockerhieu) review this emoji
+ sEmojisMap.put(0x1f683, R.drawable.emoji_1f683);
+ sEmojisMap.put(0x1f68e, R.drawable.emoji_1f68e);
+ sEmojisMap.put(0x1f68c, R.drawable.emoji_1f68c);
+ sEmojisMap.put(0x1f68d, R.drawable.emoji_1f68d);
+ sEmojisMap.put(0x1f699, R.drawable.emoji_1f699);
+ sEmojisMap.put(0x1f698, R.drawable.emoji_1f698);
+ sEmojisMap.put(0x1f697, R.drawable.emoji_1f697);
+ sEmojisMap.put(0x1f695, R.drawable.emoji_1f695);
+ sEmojisMap.put(0x1f696, R.drawable.emoji_1f696);
+ sEmojisMap.put(0x1f69b, R.drawable.emoji_1f69b);
+ sEmojisMap.put(0x1f69a, R.drawable.emoji_1f69a);
+ sEmojisMap.put(0x1f6a8, R.drawable.emoji_1f6a8);
+ sEmojisMap.put(0x1f693, R.drawable.emoji_1f693);
+ sEmojisMap.put(0x1f694, R.drawable.emoji_1f694);
+ sEmojisMap.put(0x1f692, R.drawable.emoji_1f692);
+ sEmojisMap.put(0x1f691, R.drawable.emoji_1f691);
+ sEmojisMap.put(0x1f690, R.drawable.emoji_1f690);
+ sEmojisMap.put(0x1f6b2, R.drawable.emoji_1f6b2);
+ sEmojisMap.put(0x1f6a1, R.drawable.emoji_1f6a1);
+ sEmojisMap.put(0x1f69f, R.drawable.emoji_1f69f);
+ sEmojisMap.put(0x1f6a0, R.drawable.emoji_1f6a0);
+ sEmojisMap.put(0x1f69c, R.drawable.emoji_1f69c);
+ sEmojisMap.put(0x1f488, R.drawable.emoji_1f488);
+ sEmojisMap.put(0x1f68f, R.drawable.emoji_1f68f);
+ sEmojisMap.put(0x1f3ab, R.drawable.emoji_1f3ab);
+ sEmojisMap.put(0x1f6a6, R.drawable.emoji_1f6a6);
+ sEmojisMap.put(0x1f6a5, R.drawable.emoji_1f6a5);
+ sEmojisMap.put(0x26a0, R.drawable.emoji_26a0);
+ sEmojisMap.put(0x1f6a7, R.drawable.emoji_1f6a7);
+ sEmojisMap.put(0x1f530, R.drawable.emoji_1f530);
+ sEmojisMap.put(0x26fd, R.drawable.emoji_26fd);
+ sEmojisMap.put(0x1f3ee, R.drawable.emoji_1f3ee);
+ sEmojisMap.put(0x1f3b0, R.drawable.emoji_1f3b0);
+ sEmojisMap.put(0x2668, R.drawable.emoji_2668);
+ sEmojisMap.put(0x1f5ff, R.drawable.emoji_1f5ff);
+ sEmojisMap.put(0x1f3aa, R.drawable.emoji_1f3aa);
+ sEmojisMap.put(0x1f3ad, R.drawable.emoji_1f3ad);
+ sEmojisMap.put(0x1f4cd, R.drawable.emoji_1f4cd);
+ sEmojisMap.put(0x1f6a9, R.drawable.emoji_1f6a9);
+// Emoji.fromChars("\ud83c\uddef\ud83c\uddf5");
+// Emoji.fromChars("\ud83c\uddf0\ud83c\uddf7");
+// Emoji.fromChars("\ud83c\udde9\ud83c\uddea");
+// Emoji.fromChars("\ud83c\udde8\ud83c\uddf3");
+// Emoji.fromChars("\ud83c\uddfa\ud83c\uddf8");
+// Emoji.fromChars("\ud83c\uddeb\ud83c\uddf7");
+// Emoji.fromChars("\ud83c\uddea\ud83c\uddf8");
+// Emoji.fromChars("\ud83c\uddee\ud83c\uddf9");
+// Emoji.fromChars("\ud83c\uddf7\ud83c\uddfa");
+// Emoji.fromChars("\ud83c\uddec\ud83c\udde7");
+
+ // Symbols
+// Emoji.fromChars("\u0031\u20e3"),
+// Emoji.fromChars("\u0032\u20e3"),
+// Emoji.fromChars("\u0033\u20e3"),
+// Emoji.fromChars("\u0034\u20e3"),
+// Emoji.fromChars("\u0035\u20e3"),
+// Emoji.fromChars("\u0036\u20e3"),
+// Emoji.fromChars("\u0037\u20e3"),
+// Emoji.fromChars("\u0038\u20e3"),
+// Emoji.fromChars("\u0039\u20e3"),
+// Emoji.fromChars("\u0030\u20e3"),
+ sEmojisMap.put(0x1f51f, R.drawable.emoji_1f51f);
+ sEmojisMap.put(0x1f522, R.drawable.emoji_1f522);
+// Emoji.fromChars("\u0023\u20e3"),
+ sEmojisMap.put(0x1f523, R.drawable.emoji_1f523);
+ sEmojisMap.put(0x2b06, R.drawable.emoji_2b06);
+ sEmojisMap.put(0x2b07, R.drawable.emoji_2b07);
+ sEmojisMap.put(0x2b05, R.drawable.emoji_2b05);
+ sEmojisMap.put(0x27a1, R.drawable.emoji_27a1);
+ sEmojisMap.put(0x1f520, R.drawable.emoji_1f520);
+ sEmojisMap.put(0x1f521, R.drawable.emoji_1f521);
+ sEmojisMap.put(0x1f524, R.drawable.emoji_1f524);
+ sEmojisMap.put(0x2197, R.drawable.emoji_2197);
+ sEmojisMap.put(0x2196, R.drawable.emoji_2196);
+ sEmojisMap.put(0x2198, R.drawable.emoji_2198);
+ sEmojisMap.put(0x2199, R.drawable.emoji_2199);
+ sEmojisMap.put(0x2194, R.drawable.emoji_2194);
+ sEmojisMap.put(0x2195, R.drawable.emoji_2195);
+ sEmojisMap.put(0x1f504, R.drawable.emoji_1f504);
+ sEmojisMap.put(0x25c0, R.drawable.emoji_25c0);
+ sEmojisMap.put(0x25b6, R.drawable.emoji_25b6);
+ sEmojisMap.put(0x1f53c, R.drawable.emoji_1f53c);
+ sEmojisMap.put(0x1f53d, R.drawable.emoji_1f53d);
+ sEmojisMap.put(0x21a9, R.drawable.emoji_21a9);
+ sEmojisMap.put(0x21aa, R.drawable.emoji_21aa);
+ sEmojisMap.put(0x2139, R.drawable.emoji_2139);
+ sEmojisMap.put(0x23ea, R.drawable.emoji_23ea);
+ sEmojisMap.put(0x23e9, R.drawable.emoji_23e9);
+ sEmojisMap.put(0x23eb, R.drawable.emoji_23eb);
+ sEmojisMap.put(0x23ec, R.drawable.emoji_23ec);
+ sEmojisMap.put(0x2935, R.drawable.emoji_2935);
+ sEmojisMap.put(0x2934, R.drawable.emoji_2934);
+ sEmojisMap.put(0x1f197, R.drawable.emoji_1f197);
+ sEmojisMap.put(0x1f500, R.drawable.emoji_1f500);
+ sEmojisMap.put(0x1f501, R.drawable.emoji_1f501);
+ sEmojisMap.put(0x1f502, R.drawable.emoji_1f502);
+ sEmojisMap.put(0x1f195, R.drawable.emoji_1f195);
+ sEmojisMap.put(0x1f199, R.drawable.emoji_1f199);
+ sEmojisMap.put(0x1f192, R.drawable.emoji_1f192);
+ sEmojisMap.put(0x1f193, R.drawable.emoji_1f193);
+ sEmojisMap.put(0x1f196, R.drawable.emoji_1f196);
+ sEmojisMap.put(0x1f4f6, R.drawable.emoji_1f4f6);
+ sEmojisMap.put(0x1f3a6, R.drawable.emoji_1f3a6);
+ sEmojisMap.put(0x1f201, R.drawable.emoji_1f201);
+ sEmojisMap.put(0x1f22f, R.drawable.emoji_1f22f);
+ sEmojisMap.put(0x1f233, R.drawable.emoji_1f233);
+ sEmojisMap.put(0x1f235, R.drawable.emoji_1f235);
+ sEmojisMap.put(0x1f234, R.drawable.emoji_1f234);
+ sEmojisMap.put(0x1f232, R.drawable.emoji_1f232);
+ sEmojisMap.put(0x1f250, R.drawable.emoji_1f250);
+ sEmojisMap.put(0x1f239, R.drawable.emoji_1f239);
+ sEmojisMap.put(0x1f23a, R.drawable.emoji_1f23a);
+ sEmojisMap.put(0x1f236, R.drawable.emoji_1f236);
+ sEmojisMap.put(0x1f21a, R.drawable.emoji_1f21a);
+ sEmojisMap.put(0x1f6bb, R.drawable.emoji_1f6bb);
+ sEmojisMap.put(0x1f6b9, R.drawable.emoji_1f6b9);
+ sEmojisMap.put(0x1f6ba, R.drawable.emoji_1f6ba);
+ sEmojisMap.put(0x1f6bc, R.drawable.emoji_1f6bc);
+ sEmojisMap.put(0x1f6be, R.drawable.emoji_1f6be);
+ sEmojisMap.put(0x1f6b0, R.drawable.emoji_1f6b0);
+ sEmojisMap.put(0x1f6ae, R.drawable.emoji_1f6ae);
+ sEmojisMap.put(0x1f17f, R.drawable.emoji_1f17f);
+ sEmojisMap.put(0x267f, R.drawable.emoji_267f);
+ sEmojisMap.put(0x1f6ad, R.drawable.emoji_1f6ad);
+ sEmojisMap.put(0x1f237, R.drawable.emoji_1f237);
+ sEmojisMap.put(0x1f238, R.drawable.emoji_1f238);
+ sEmojisMap.put(0x1f202, R.drawable.emoji_1f202);
+ sEmojisMap.put(0x24c2, R.drawable.emoji_24c2);
+ sEmojisMap.put(0x1f6c2, R.drawable.emoji_1f6c2);
+ sEmojisMap.put(0x1f6c4, R.drawable.emoji_1f6c4);
+ sEmojisMap.put(0x1f6c5, R.drawable.emoji_1f6c5);
+ sEmojisMap.put(0x1f6c3, R.drawable.emoji_1f6c3);
+ sEmojisMap.put(0x1f251, R.drawable.emoji_1f251);
+ sEmojisMap.put(0x3299, R.drawable.emoji_3299);
+ sEmojisMap.put(0x3297, R.drawable.emoji_3297);
+ sEmojisMap.put(0x1f191, R.drawable.emoji_1f191);
+ sEmojisMap.put(0x1f198, R.drawable.emoji_1f198);
+ sEmojisMap.put(0x1f194, R.drawable.emoji_1f194);
+ sEmojisMap.put(0x1f6ab, R.drawable.emoji_1f6ab);
+ sEmojisMap.put(0x1f51e, R.drawable.emoji_1f51e);
+ sEmojisMap.put(0x1f4f5, R.drawable.emoji_1f4f5);
+ sEmojisMap.put(0x1f6af, R.drawable.emoji_1f6af);
+ sEmojisMap.put(0x1f6b1, R.drawable.emoji_1f6b1);
+ sEmojisMap.put(0x1f6b3, R.drawable.emoji_1f6b3);
+ sEmojisMap.put(0x1f6b7, R.drawable.emoji_1f6b7);
+ sEmojisMap.put(0x1f6b8, R.drawable.emoji_1f6b8);
+ sEmojisMap.put(0x26d4, R.drawable.emoji_26d4);
+ sEmojisMap.put(0x2733, R.drawable.emoji_2733);
+ sEmojisMap.put(0x2747, R.drawable.emoji_2747);
+ sEmojisMap.put(0x274e, R.drawable.emoji_274e);
+ sEmojisMap.put(0x2705, R.drawable.emoji_2705);
+ sEmojisMap.put(0x2734, R.drawable.emoji_2734);
+ sEmojisMap.put(0x1f49f, R.drawable.emoji_1f49f);
+ sEmojisMap.put(0x1f19a, R.drawable.emoji_1f19a);
+ sEmojisMap.put(0x1f4f3, R.drawable.emoji_1f4f3);
+ sEmojisMap.put(0x1f4f4, R.drawable.emoji_1f4f4);
+ sEmojisMap.put(0x1f170, R.drawable.emoji_1f170);
+ sEmojisMap.put(0x1f171, R.drawable.emoji_1f171);
+ sEmojisMap.put(0x1f18e, R.drawable.emoji_1f18e);
+ sEmojisMap.put(0x1f17e, R.drawable.emoji_1f17e);
+ sEmojisMap.put(0x1f4a0, R.drawable.emoji_1f4a0);
+ sEmojisMap.put(0x27bf, R.drawable.emoji_27bf);
+ sEmojisMap.put(0x267b, R.drawable.emoji_267b);
+ sEmojisMap.put(0x2648, R.drawable.emoji_2648);
+ sEmojisMap.put(0x2649, R.drawable.emoji_2649);
+ sEmojisMap.put(0x264a, R.drawable.emoji_264a);
+ sEmojisMap.put(0x264b, R.drawable.emoji_264b);
+ sEmojisMap.put(0x264c, R.drawable.emoji_264c);
+ sEmojisMap.put(0x264d, R.drawable.emoji_264d);
+ sEmojisMap.put(0x264e, R.drawable.emoji_264e);
+ sEmojisMap.put(0x264f, R.drawable.emoji_264f);
+ sEmojisMap.put(0x2650, R.drawable.emoji_2650);
+ sEmojisMap.put(0x2651, R.drawable.emoji_2651);
+ sEmojisMap.put(0x2652, R.drawable.emoji_2652);
+ sEmojisMap.put(0x2653, R.drawable.emoji_2653);
+ sEmojisMap.put(0x26ce, R.drawable.emoji_26ce);
+ sEmojisMap.put(0x1f52f, R.drawable.emoji_1f52f);
+ sEmojisMap.put(0x1f3e7, R.drawable.emoji_1f3e7);
+ sEmojisMap.put(0x1f4b9, R.drawable.emoji_1f4b9);
+ sEmojisMap.put(0x1f4b2, R.drawable.emoji_1f4b2);
+ sEmojisMap.put(0x1f4b1, R.drawable.emoji_1f4b1);
+ sEmojisMap.put(0x00a9, R.drawable.emoji_00a9);
+ sEmojisMap.put(0x00ae, R.drawable.emoji_00ae);
+ sEmojisMap.put(0x2122, R.drawable.emoji_2122);
+ sEmojisMap.put(0x274c, R.drawable.emoji_274c);
+ sEmojisMap.put(0x203c, R.drawable.emoji_203c);
+ sEmojisMap.put(0x2049, R.drawable.emoji_2049);
+ sEmojisMap.put(0x2757, R.drawable.emoji_2757);
+ sEmojisMap.put(0x2753, R.drawable.emoji_2753);
+ sEmojisMap.put(0x2755, R.drawable.emoji_2755);
+ sEmojisMap.put(0x2754, R.drawable.emoji_2754);
+ sEmojisMap.put(0x2b55, R.drawable.emoji_2b55);
+ sEmojisMap.put(0x1f51d, R.drawable.emoji_1f51d);
+ sEmojisMap.put(0x1f51a, R.drawable.emoji_1f51a);
+ sEmojisMap.put(0x1f519, R.drawable.emoji_1f519);
+ sEmojisMap.put(0x1f51b, R.drawable.emoji_1f51b);
+ sEmojisMap.put(0x1f51c, R.drawable.emoji_1f51c);
+ sEmojisMap.put(0x1f503, R.drawable.emoji_1f503);
+ sEmojisMap.put(0x1f55b, R.drawable.emoji_1f55b);
+ sEmojisMap.put(0x1f567, R.drawable.emoji_1f567);
+ sEmojisMap.put(0x1f550, R.drawable.emoji_1f550);
+ sEmojisMap.put(0x1f55c, R.drawable.emoji_1f55c);
+ sEmojisMap.put(0x1f551, R.drawable.emoji_1f551);
+ sEmojisMap.put(0x1f55d, R.drawable.emoji_1f55d);
+ sEmojisMap.put(0x1f552, R.drawable.emoji_1f552);
+ sEmojisMap.put(0x1f55e, R.drawable.emoji_1f55e);
+ sEmojisMap.put(0x1f553, R.drawable.emoji_1f553);
+ sEmojisMap.put(0x1f55f, R.drawable.emoji_1f55f);
+ sEmojisMap.put(0x1f554, R.drawable.emoji_1f554);
+ sEmojisMap.put(0x1f560, R.drawable.emoji_1f560);
+ sEmojisMap.put(0x1f555, R.drawable.emoji_1f555);
+ sEmojisMap.put(0x1f556, R.drawable.emoji_1f556);
+ sEmojisMap.put(0x1f557, R.drawable.emoji_1f557);
+ sEmojisMap.put(0x1f558, R.drawable.emoji_1f558);
+ sEmojisMap.put(0x1f559, R.drawable.emoji_1f559);
+ sEmojisMap.put(0x1f55a, R.drawable.emoji_1f55a);
+ sEmojisMap.put(0x1f561, R.drawable.emoji_1f561);
+ sEmojisMap.put(0x1f562, R.drawable.emoji_1f562);
+ sEmojisMap.put(0x1f563, R.drawable.emoji_1f563);
+ sEmojisMap.put(0x1f564, R.drawable.emoji_1f564);
+ sEmojisMap.put(0x1f565, R.drawable.emoji_1f565);
+ sEmojisMap.put(0x1f566, R.drawable.emoji_1f566);
+ sEmojisMap.put(0x2716, R.drawable.emoji_2716);
+ sEmojisMap.put(0x2795, R.drawable.emoji_2795);
+ sEmojisMap.put(0x2796, R.drawable.emoji_2796);
+ sEmojisMap.put(0x2797, R.drawable.emoji_2797);
+ sEmojisMap.put(0x2660, R.drawable.emoji_2660);
+ sEmojisMap.put(0x2665, R.drawable.emoji_2665);
+ sEmojisMap.put(0x2663, R.drawable.emoji_2663);
+ sEmojisMap.put(0x2666, R.drawable.emoji_2666);
+ sEmojisMap.put(0x1f4ae, R.drawable.emoji_1f4ae);
+ sEmojisMap.put(0x1f4af, R.drawable.emoji_1f4af);
+ sEmojisMap.put(0x2714, R.drawable.emoji_2714);
+ sEmojisMap.put(0x2611, R.drawable.emoji_2611);
+ sEmojisMap.put(0x1f518, R.drawable.emoji_1f518);
+ sEmojisMap.put(0x1f517, R.drawable.emoji_1f517);
+ sEmojisMap.put(0x27b0, R.drawable.emoji_27b0);
+ sEmojisMap.put(0x3030, R.drawable.emoji_3030);
+ sEmojisMap.put(0x303d, R.drawable.emoji_303d);
+ sEmojisMap.put(0x1f531, R.drawable.emoji_1f531);
+ sEmojisMap.put(0x25fc, R.drawable.emoji_25fc);
+ sEmojisMap.put(0x25fb, R.drawable.emoji_25fb);
+ sEmojisMap.put(0x25fe, R.drawable.emoji_25fe);
+ sEmojisMap.put(0x25fd, R.drawable.emoji_25fd);
+ sEmojisMap.put(0x25aa, R.drawable.emoji_25aa);
+ sEmojisMap.put(0x25ab, R.drawable.emoji_25ab);
+ sEmojisMap.put(0x1f53a, R.drawable.emoji_1f53a);
+ sEmojisMap.put(0x1f532, R.drawable.emoji_1f532);
+ sEmojisMap.put(0x1f533, R.drawable.emoji_1f533);
+ sEmojisMap.put(0x26ab, R.drawable.emoji_26ab);
+ sEmojisMap.put(0x26aa, R.drawable.emoji_26aa);
+ sEmojisMap.put(0x1f534, R.drawable.emoji_1f534);
+ sEmojisMap.put(0x1f535, R.drawable.emoji_1f535);
+ sEmojisMap.put(0x1f53b, R.drawable.emoji_1f53b);
+ sEmojisMap.put(0x2b1c, R.drawable.emoji_2b1c);
+ sEmojisMap.put(0x2b1b, R.drawable.emoji_2b1b);
+ sEmojisMap.put(0x1f536, R.drawable.emoji_1f536);
+ sEmojisMap.put(0x1f537, R.drawable.emoji_1f537);
+ sEmojisMap.put(0x1f538, R.drawable.emoji_1f538);
+ sEmojisMap.put(0x1f539, R.drawable.emoji_1f539);
+
+
+ sSoftbanksMap.put(0xe001, R.drawable.emoji_1f466);
+ sSoftbanksMap.put(0xe002, R.drawable.emoji_1f467);
+ sSoftbanksMap.put(0xe003, R.drawable.emoji_1f48b);
+ sSoftbanksMap.put(0xe004, R.drawable.emoji_1f468);
+ sSoftbanksMap.put(0xe005, R.drawable.emoji_1f469);
+ sSoftbanksMap.put(0xe006, R.drawable.emoji_1f455);
+ sSoftbanksMap.put(0xe007, R.drawable.emoji_1f45e);
+ sSoftbanksMap.put(0xe008, R.drawable.emoji_1f4f7);
+ sSoftbanksMap.put(0xe009, R.drawable.emoji_1f4de);
+ sSoftbanksMap.put(0xe00a, R.drawable.emoji_1f4f1);
+ sSoftbanksMap.put(0xe00b, R.drawable.emoji_1f4e0);
+ sSoftbanksMap.put(0xe00c, R.drawable.emoji_1f4bb);
+ sSoftbanksMap.put(0xe00d, R.drawable.emoji_1f44a);
+ sSoftbanksMap.put(0xe00e, R.drawable.emoji_1f44d);
+ sSoftbanksMap.put(0xe00f, R.drawable.emoji_261d);
+ sSoftbanksMap.put(0xe010, R.drawable.emoji_270a);
+ sSoftbanksMap.put(0xe011, R.drawable.emoji_270c);
+ sSoftbanksMap.put(0xe012, R.drawable.emoji_1f64b);
+ sSoftbanksMap.put(0xe013, R.drawable.emoji_1f3bf);
+ sSoftbanksMap.put(0xe014, R.drawable.emoji_26f3);
+ sSoftbanksMap.put(0xe015, R.drawable.emoji_1f3be);
+ sSoftbanksMap.put(0xe016, R.drawable.emoji_26be);
+ sSoftbanksMap.put(0xe017, R.drawable.emoji_1f3c4);
+ sSoftbanksMap.put(0xe018, R.drawable.emoji_26bd);
+ sSoftbanksMap.put(0xe019, R.drawable.emoji_1f3a3);
+ sSoftbanksMap.put(0xe01a, R.drawable.emoji_1f434);
+ sSoftbanksMap.put(0xe01b, R.drawable.emoji_1f697);
+ sSoftbanksMap.put(0xe01c, R.drawable.emoji_26f5);
+ sSoftbanksMap.put(0xe01d, R.drawable.emoji_2708);
+ sSoftbanksMap.put(0xe01e, R.drawable.emoji_1f683);
+ sSoftbanksMap.put(0xe01f, R.drawable.emoji_1f685);
+ sSoftbanksMap.put(0xe020, R.drawable.emoji_2753);
+ sSoftbanksMap.put(0xe021, R.drawable.emoji_2757);
+ sSoftbanksMap.put(0xe022, R.drawable.emoji_2764);
+ sSoftbanksMap.put(0xe023, R.drawable.emoji_1f494);
+ sSoftbanksMap.put(0xe024, R.drawable.emoji_1f550);
+ sSoftbanksMap.put(0xe025, R.drawable.emoji_1f551);
+ sSoftbanksMap.put(0xe026, R.drawable.emoji_1f552);
+ sSoftbanksMap.put(0xe027, R.drawable.emoji_1f553);
+ sSoftbanksMap.put(0xe028, R.drawable.emoji_1f554);
+ sSoftbanksMap.put(0xe029, R.drawable.emoji_1f555);
+ sSoftbanksMap.put(0xe02a, R.drawable.emoji_1f556);
+ sSoftbanksMap.put(0xe02b, R.drawable.emoji_1f557);
+ sSoftbanksMap.put(0xe02c, R.drawable.emoji_1f558);
+ sSoftbanksMap.put(0xe02d, R.drawable.emoji_1f559);
+ sSoftbanksMap.put(0xe02e, R.drawable.emoji_1f55a);
+ sSoftbanksMap.put(0xe02f, R.drawable.emoji_1f55b);
+ sSoftbanksMap.put(0xe030, R.drawable.emoji_1f338);
+ sSoftbanksMap.put(0xe031, R.drawable.emoji_1f531);
+ sSoftbanksMap.put(0xe032, R.drawable.emoji_1f339);
+ sSoftbanksMap.put(0xe033, R.drawable.emoji_1f384);
+ sSoftbanksMap.put(0xe034, R.drawable.emoji_1f48d);
+ sSoftbanksMap.put(0xe035, R.drawable.emoji_1f48e);
+ sSoftbanksMap.put(0xe036, R.drawable.emoji_1f3e0);
+ sSoftbanksMap.put(0xe037, R.drawable.emoji_26ea);
+ sSoftbanksMap.put(0xe038, R.drawable.emoji_1f3e2);
+ sSoftbanksMap.put(0xe039, R.drawable.emoji_1f689);
+ sSoftbanksMap.put(0xe03a, R.drawable.emoji_26fd);
+ sSoftbanksMap.put(0xe03b, R.drawable.emoji_1f5fb);
+ sSoftbanksMap.put(0xe03c, R.drawable.emoji_1f3a4);
+ sSoftbanksMap.put(0xe03d, R.drawable.emoji_1f3a5);
+ sSoftbanksMap.put(0xe03e, R.drawable.emoji_1f3b5);
+ sSoftbanksMap.put(0xe03f, R.drawable.emoji_1f511);
+ sSoftbanksMap.put(0xe040, R.drawable.emoji_1f3b7);
+ sSoftbanksMap.put(0xe041, R.drawable.emoji_1f3b8);
+ sSoftbanksMap.put(0xe042, R.drawable.emoji_1f3ba);
+ sSoftbanksMap.put(0xe043, R.drawable.emoji_1f374);
+ sSoftbanksMap.put(0xe044, R.drawable.emoji_1f377);
+ sSoftbanksMap.put(0xe045, R.drawable.emoji_2615);
+ sSoftbanksMap.put(0xe046, R.drawable.emoji_1f370);
+ sSoftbanksMap.put(0xe047, R.drawable.emoji_1f37a);
+ sSoftbanksMap.put(0xe048, R.drawable.emoji_26c4);
+ sSoftbanksMap.put(0xe049, R.drawable.emoji_2601);
+ sSoftbanksMap.put(0xe04a, R.drawable.emoji_2600);
+ sSoftbanksMap.put(0xe04b, R.drawable.emoji_2614);
+ sSoftbanksMap.put(0xe04c, R.drawable.emoji_1f313);
+ sSoftbanksMap.put(0xe04d, R.drawable.emoji_1f304);
+ sSoftbanksMap.put(0xe04e, R.drawable.emoji_1f47c);
+ sSoftbanksMap.put(0xe04f, R.drawable.emoji_1f431);
+ sSoftbanksMap.put(0xe050, R.drawable.emoji_1f42f);
+ sSoftbanksMap.put(0xe051, R.drawable.emoji_1f43b);
+ sSoftbanksMap.put(0xe052, R.drawable.emoji_1f429);
+ sSoftbanksMap.put(0xe053, R.drawable.emoji_1f42d);
+ sSoftbanksMap.put(0xe054, R.drawable.emoji_1f433);
+ sSoftbanksMap.put(0xe055, R.drawable.emoji_1f427);
+ sSoftbanksMap.put(0xe056, R.drawable.emoji_1f60a);
+ sSoftbanksMap.put(0xe057, R.drawable.emoji_1f603);
+ sSoftbanksMap.put(0xe058, R.drawable.emoji_1f61e);
+ sSoftbanksMap.put(0xe059, R.drawable.emoji_1f620);
+ sSoftbanksMap.put(0xe05a, R.drawable.emoji_1f4a9);
+ sSoftbanksMap.put(0xe101, R.drawable.emoji_1f4ea);
+ sSoftbanksMap.put(0xe102, R.drawable.emoji_1f4ee);
+ sSoftbanksMap.put(0xe103, R.drawable.emoji_1f4e7);
+ sSoftbanksMap.put(0xe104, R.drawable.emoji_1f4f2);
+ sSoftbanksMap.put(0xe105, R.drawable.emoji_1f61c);
+ sSoftbanksMap.put(0xe106, R.drawable.emoji_1f60d);
+ sSoftbanksMap.put(0xe107, R.drawable.emoji_1f631);
+ sSoftbanksMap.put(0xe108, R.drawable.emoji_1f613);
+ sSoftbanksMap.put(0xe109, R.drawable.emoji_1f435);
+ sSoftbanksMap.put(0xe10a, R.drawable.emoji_1f419);
+ sSoftbanksMap.put(0xe10b, R.drawable.emoji_1f437);
+ sSoftbanksMap.put(0xe10c, R.drawable.emoji_1f47d);
+ sSoftbanksMap.put(0xe10d, R.drawable.emoji_1f680);
+ sSoftbanksMap.put(0xe10e, R.drawable.emoji_1f451);
+ sSoftbanksMap.put(0xe10f, R.drawable.emoji_1f4a1);
+ sSoftbanksMap.put(0xe110, R.drawable.emoji_1f331);
+ sSoftbanksMap.put(0xe111, R.drawable.emoji_1f48f);
+ sSoftbanksMap.put(0xe112, R.drawable.emoji_1f381);
+ sSoftbanksMap.put(0xe113, R.drawable.emoji_1f52b);
+ sSoftbanksMap.put(0xe114, R.drawable.emoji_1f50d);
+ sSoftbanksMap.put(0xe115, R.drawable.emoji_1f3c3);
+ sSoftbanksMap.put(0xe116, R.drawable.emoji_1f528);
+ sSoftbanksMap.put(0xe117, R.drawable.emoji_1f386);
+ sSoftbanksMap.put(0xe118, R.drawable.emoji_1f341);
+ sSoftbanksMap.put(0xe119, R.drawable.emoji_1f342);
+ sSoftbanksMap.put(0xe11a, R.drawable.emoji_1f47f);
+ sSoftbanksMap.put(0xe11b, R.drawable.emoji_1f47b);
+ sSoftbanksMap.put(0xe11c, R.drawable.emoji_1f480);
+ sSoftbanksMap.put(0xe11d, R.drawable.emoji_1f525);
+ sSoftbanksMap.put(0xe11e, R.drawable.emoji_1f4bc);
+ sSoftbanksMap.put(0xe11f, R.drawable.emoji_1f4ba);
+ sSoftbanksMap.put(0xe120, R.drawable.emoji_1f354);
+ sSoftbanksMap.put(0xe121, R.drawable.emoji_26f2);
+ sSoftbanksMap.put(0xe122, R.drawable.emoji_26fa);
+ sSoftbanksMap.put(0xe123, R.drawable.emoji_2668);
+ sSoftbanksMap.put(0xe124, R.drawable.emoji_1f3a1);
+ sSoftbanksMap.put(0xe125, R.drawable.emoji_1f3ab);
+ sSoftbanksMap.put(0xe126, R.drawable.emoji_1f4bf);
+ sSoftbanksMap.put(0xe127, R.drawable.emoji_1f4c0);
+ sSoftbanksMap.put(0xe128, R.drawable.emoji_1f4fb);
+ sSoftbanksMap.put(0xe129, R.drawable.emoji_1f4fc);
+ sSoftbanksMap.put(0xe12a, R.drawable.emoji_1f4fa);
+ sSoftbanksMap.put(0xe12b, R.drawable.emoji_1f47e);
+ sSoftbanksMap.put(0xe12c, R.drawable.emoji_303d);
+ sSoftbanksMap.put(0xe12d, R.drawable.emoji_1f004);
+ sSoftbanksMap.put(0xe12e, R.drawable.emoji_1f19a);
+ sSoftbanksMap.put(0xe12f, R.drawable.emoji_1f4b0);
+ sSoftbanksMap.put(0xe130, R.drawable.emoji_1f3af);
+ sSoftbanksMap.put(0xe131, R.drawable.emoji_1f3c6);
+ sSoftbanksMap.put(0xe132, R.drawable.emoji_1f3c1);
+ sSoftbanksMap.put(0xe133, R.drawable.emoji_1f3b0);
+ sSoftbanksMap.put(0xe134, R.drawable.emoji_1f40e);
+ sSoftbanksMap.put(0xe135, R.drawable.emoji_1f6a4);
+ sSoftbanksMap.put(0xe136, R.drawable.emoji_1f6b2);
+ sSoftbanksMap.put(0xe137, R.drawable.emoji_1f6a7);
+ sSoftbanksMap.put(0xe138, R.drawable.emoji_1f6b9);
+ sSoftbanksMap.put(0xe139, R.drawable.emoji_1f6ba);
+ sSoftbanksMap.put(0xe13a, R.drawable.emoji_1f6bc);
+ sSoftbanksMap.put(0xe13b, R.drawable.emoji_1f489);
+ sSoftbanksMap.put(0xe13c, R.drawable.emoji_1f4a4);
+ sSoftbanksMap.put(0xe13d, R.drawable.emoji_26a1);
+ sSoftbanksMap.put(0xe13e, R.drawable.emoji_1f460);
+ sSoftbanksMap.put(0xe13f, R.drawable.emoji_1f6c0);
+ sSoftbanksMap.put(0xe140, R.drawable.emoji_1f6bd);
+ sSoftbanksMap.put(0xe141, R.drawable.emoji_1f50a);
+ sSoftbanksMap.put(0xe142, R.drawable.emoji_1f4e2);
+ sSoftbanksMap.put(0xe143, R.drawable.emoji_1f38c);
+ sSoftbanksMap.put(0xe144, R.drawable.emoji_1f50f);
+ sSoftbanksMap.put(0xe145, R.drawable.emoji_1f513);
+ sSoftbanksMap.put(0xe146, R.drawable.emoji_1f306);
+ sSoftbanksMap.put(0xe147, R.drawable.emoji_1f373);
+ sSoftbanksMap.put(0xe148, R.drawable.emoji_1f4c7);
+ sSoftbanksMap.put(0xe149, R.drawable.emoji_1f4b1);
+ sSoftbanksMap.put(0xe14a, R.drawable.emoji_1f4b9);
+ sSoftbanksMap.put(0xe14b, R.drawable.emoji_1f4e1);
+ sSoftbanksMap.put(0xe14c, R.drawable.emoji_1f4aa);
+ sSoftbanksMap.put(0xe14d, R.drawable.emoji_1f3e6);
+ sSoftbanksMap.put(0xe14e, R.drawable.emoji_1f6a5);
+ sSoftbanksMap.put(0xe14f, R.drawable.emoji_1f17f);
+ sSoftbanksMap.put(0xe150, R.drawable.emoji_1f68f);
+ sSoftbanksMap.put(0xe151, R.drawable.emoji_1f6bb);
+ sSoftbanksMap.put(0xe152, R.drawable.emoji_1f46e);
+ sSoftbanksMap.put(0xe153, R.drawable.emoji_1f3e3);
+ sSoftbanksMap.put(0xe154, R.drawable.emoji_1f3e7);
+ sSoftbanksMap.put(0xe155, R.drawable.emoji_1f3e5);
+ sSoftbanksMap.put(0xe156, R.drawable.emoji_1f3ea);
+ sSoftbanksMap.put(0xe157, R.drawable.emoji_1f3eb);
+ sSoftbanksMap.put(0xe158, R.drawable.emoji_1f3e8);
+ sSoftbanksMap.put(0xe159, R.drawable.emoji_1f68c);
+ sSoftbanksMap.put(0xe15a, R.drawable.emoji_1f695);
+ sSoftbanksMap.put(0xe201, R.drawable.emoji_1f6b6);
+ sSoftbanksMap.put(0xe202, R.drawable.emoji_1f6a2);
+ sSoftbanksMap.put(0xe203, R.drawable.emoji_1f201);
+ sSoftbanksMap.put(0xe204, R.drawable.emoji_1f49f);
+ sSoftbanksMap.put(0xe205, R.drawable.emoji_2734);
+ sSoftbanksMap.put(0xe206, R.drawable.emoji_2733);
+ sSoftbanksMap.put(0xe207, R.drawable.emoji_1f51e);
+ sSoftbanksMap.put(0xe208, R.drawable.emoji_1f6ad);
+ sSoftbanksMap.put(0xe209, R.drawable.emoji_1f530);
+ sSoftbanksMap.put(0xe20a, R.drawable.emoji_267f);
+ sSoftbanksMap.put(0xe20b, R.drawable.emoji_1f4f6);
+ sSoftbanksMap.put(0xe20c, R.drawable.emoji_2665);
+ sSoftbanksMap.put(0xe20d, R.drawable.emoji_2666);
+ sSoftbanksMap.put(0xe20e, R.drawable.emoji_2660);
+ sSoftbanksMap.put(0xe20f, R.drawable.emoji_2663);
+ sSoftbanksMap.put(0xe210, R.drawable.emoji_0023);
+ sSoftbanksMap.put(0xe211, R.drawable.emoji_27bf);
+ sSoftbanksMap.put(0xe212, R.drawable.emoji_1f195);
+ sSoftbanksMap.put(0xe213, R.drawable.emoji_1f199);
+ sSoftbanksMap.put(0xe214, R.drawable.emoji_1f192);
+ sSoftbanksMap.put(0xe215, R.drawable.emoji_1f236);
+ sSoftbanksMap.put(0xe216, R.drawable.emoji_1f21a);
+ sSoftbanksMap.put(0xe217, R.drawable.emoji_1f237);
+ sSoftbanksMap.put(0xe218, R.drawable.emoji_1f238);
+ sSoftbanksMap.put(0xe219, R.drawable.emoji_1f534);
+ sSoftbanksMap.put(0xe21a, R.drawable.emoji_1f532);
+ sSoftbanksMap.put(0xe21b, R.drawable.emoji_1f533);
+ sSoftbanksMap.put(0xe21c, R.drawable.emoji_0031);
+ sSoftbanksMap.put(0xe21d, R.drawable.emoji_0032);
+ sSoftbanksMap.put(0xe21e, R.drawable.emoji_0033);
+ sSoftbanksMap.put(0xe21f, R.drawable.emoji_0034);
+ sSoftbanksMap.put(0xe220, R.drawable.emoji_0035);
+ sSoftbanksMap.put(0xe221, R.drawable.emoji_0036);
+ sSoftbanksMap.put(0xe222, R.drawable.emoji_0037);
+ sSoftbanksMap.put(0xe223, R.drawable.emoji_0038);
+ sSoftbanksMap.put(0xe224, R.drawable.emoji_0039);
+ sSoftbanksMap.put(0xe225, R.drawable.emoji_0030);
+ sSoftbanksMap.put(0xe226, R.drawable.emoji_1f250);
+ sSoftbanksMap.put(0xe227, R.drawable.emoji_1f239);
+ sSoftbanksMap.put(0xe228, R.drawable.emoji_1f202);
+ sSoftbanksMap.put(0xe229, R.drawable.emoji_1f194);
+ sSoftbanksMap.put(0xe22a, R.drawable.emoji_1f235);
+ sSoftbanksMap.put(0xe22b, R.drawable.emoji_1f233);
+ sSoftbanksMap.put(0xe22c, R.drawable.emoji_1f22f);
+ sSoftbanksMap.put(0xe22d, R.drawable.emoji_1f23a);
+ sSoftbanksMap.put(0xe22e, R.drawable.emoji_1f446);
+ sSoftbanksMap.put(0xe22f, R.drawable.emoji_1f447);
+ sSoftbanksMap.put(0xe230, R.drawable.emoji_1f448);
+ sSoftbanksMap.put(0xe231, R.drawable.emoji_1f449);
+ sSoftbanksMap.put(0xe232, R.drawable.emoji_2b06);
+ sSoftbanksMap.put(0xe233, R.drawable.emoji_2b07);
+ sSoftbanksMap.put(0xe234, R.drawable.emoji_27a1);
+ sSoftbanksMap.put(0xe235, R.drawable.emoji_1f519);
+ sSoftbanksMap.put(0xe236, R.drawable.emoji_2197);
+ sSoftbanksMap.put(0xe237, R.drawable.emoji_2196);
+ sSoftbanksMap.put(0xe238, R.drawable.emoji_2198);
+ sSoftbanksMap.put(0xe239, R.drawable.emoji_2199);
+ sSoftbanksMap.put(0xe23a, R.drawable.emoji_25b6);
+ sSoftbanksMap.put(0xe23b, R.drawable.emoji_25c0);
+ sSoftbanksMap.put(0xe23c, R.drawable.emoji_23e9);
+ sSoftbanksMap.put(0xe23d, R.drawable.emoji_23ea);
+ sSoftbanksMap.put(0xe23e, R.drawable.emoji_1f52e);
+ sSoftbanksMap.put(0xe23f, R.drawable.emoji_2648);
+ sSoftbanksMap.put(0xe240, R.drawable.emoji_2649);
+ sSoftbanksMap.put(0xe241, R.drawable.emoji_264a);
+ sSoftbanksMap.put(0xe242, R.drawable.emoji_264b);
+ sSoftbanksMap.put(0xe243, R.drawable.emoji_264c);
+ sSoftbanksMap.put(0xe244, R.drawable.emoji_264d);
+ sSoftbanksMap.put(0xe245, R.drawable.emoji_264e);
+ sSoftbanksMap.put(0xe246, R.drawable.emoji_264f);
+ sSoftbanksMap.put(0xe247, R.drawable.emoji_2650);
+ sSoftbanksMap.put(0xe248, R.drawable.emoji_2651);
+ sSoftbanksMap.put(0xe249, R.drawable.emoji_2652);
+ sSoftbanksMap.put(0xe24a, R.drawable.emoji_2653);
+ sSoftbanksMap.put(0xe24b, R.drawable.emoji_26ce);
+ sSoftbanksMap.put(0xe24c, R.drawable.emoji_1f51d);
+ sSoftbanksMap.put(0xe24d, R.drawable.emoji_1f197);
+ sSoftbanksMap.put(0xe24e, R.drawable.emoji_00a9);
+ sSoftbanksMap.put(0xe24f, R.drawable.emoji_00ae);
+ sSoftbanksMap.put(0xe250, R.drawable.emoji_1f4f3);
+ sSoftbanksMap.put(0xe251, R.drawable.emoji_1f4f4);
+ sSoftbanksMap.put(0xe252, R.drawable.emoji_26a0);
+ sSoftbanksMap.put(0xe253, R.drawable.emoji_1f481);
+ sSoftbanksMap.put(0xe301, R.drawable.emoji_1f4c3);
+ sSoftbanksMap.put(0xe302, R.drawable.emoji_1f454);
+ sSoftbanksMap.put(0xe303, R.drawable.emoji_1f33a);
+ sSoftbanksMap.put(0xe304, R.drawable.emoji_1f337);
+ sSoftbanksMap.put(0xe305, R.drawable.emoji_1f33b);
+ sSoftbanksMap.put(0xe306, R.drawable.emoji_1f490);
+ sSoftbanksMap.put(0xe307, R.drawable.emoji_1f334);
+ sSoftbanksMap.put(0xe308, R.drawable.emoji_1f335);
+ sSoftbanksMap.put(0xe309, R.drawable.emoji_1f6be);
+ sSoftbanksMap.put(0xe30a, R.drawable.emoji_1f3a7);
+ sSoftbanksMap.put(0xe30b, R.drawable.emoji_1f376);
+ sSoftbanksMap.put(0xe30c, R.drawable.emoji_1f37b);
+ sSoftbanksMap.put(0xe30d, R.drawable.emoji_3297);
+ sSoftbanksMap.put(0xe30e, R.drawable.emoji_1f6ac);
+ sSoftbanksMap.put(0xe30f, R.drawable.emoji_1f48a);
+ sSoftbanksMap.put(0xe310, R.drawable.emoji_1f388);
+ sSoftbanksMap.put(0xe311, R.drawable.emoji_1f4a3);
+ sSoftbanksMap.put(0xe312, R.drawable.emoji_1f389);
+ sSoftbanksMap.put(0xe313, R.drawable.emoji_2702);
+ sSoftbanksMap.put(0xe314, R.drawable.emoji_1f380);
+ sSoftbanksMap.put(0xe315, R.drawable.emoji_3299);
+ sSoftbanksMap.put(0xe316, R.drawable.emoji_1f4bd);
+ sSoftbanksMap.put(0xe317, R.drawable.emoji_1f4e3);
+ sSoftbanksMap.put(0xe318, R.drawable.emoji_1f452);
+ sSoftbanksMap.put(0xe319, R.drawable.emoji_1f457);
+ sSoftbanksMap.put(0xe31a, R.drawable.emoji_1f461);
+ sSoftbanksMap.put(0xe31b, R.drawable.emoji_1f462);
+ sSoftbanksMap.put(0xe31c, R.drawable.emoji_1f484);
+ sSoftbanksMap.put(0xe31d, R.drawable.emoji_1f485);
+ sSoftbanksMap.put(0xe31e, R.drawable.emoji_1f486);
+ sSoftbanksMap.put(0xe31f, R.drawable.emoji_1f487);
+ sSoftbanksMap.put(0xe320, R.drawable.emoji_1f488);
+ sSoftbanksMap.put(0xe321, R.drawable.emoji_1f458);
+ sSoftbanksMap.put(0xe322, R.drawable.emoji_1f459);
+ sSoftbanksMap.put(0xe323, R.drawable.emoji_1f45c);
+ sSoftbanksMap.put(0xe324, R.drawable.emoji_1f3ac);
+ sSoftbanksMap.put(0xe325, R.drawable.emoji_1f514);
+ sSoftbanksMap.put(0xe326, R.drawable.emoji_1f3b6);
+ sSoftbanksMap.put(0xe327, R.drawable.emoji_1f493);
+ sSoftbanksMap.put(0xe328, R.drawable.emoji_1f48c);
+ sSoftbanksMap.put(0xe329, R.drawable.emoji_1f498);
+ sSoftbanksMap.put(0xe32a, R.drawable.emoji_1f499);
+ sSoftbanksMap.put(0xe32b, R.drawable.emoji_1f49a);
+ sSoftbanksMap.put(0xe32c, R.drawable.emoji_1f49b);
+ sSoftbanksMap.put(0xe32d, R.drawable.emoji_1f49c);
+ sSoftbanksMap.put(0xe32e, R.drawable.emoji_2728);
+ sSoftbanksMap.put(0xe32f, R.drawable.emoji_2b50);
+ sSoftbanksMap.put(0xe330, R.drawable.emoji_1f4a8);
+ sSoftbanksMap.put(0xe331, R.drawable.emoji_1f4a6);
+ sSoftbanksMap.put(0xe332, R.drawable.emoji_2b55);
+ sSoftbanksMap.put(0xe333, R.drawable.emoji_2716);
+ sSoftbanksMap.put(0xe334, R.drawable.emoji_1f4a2);
+ sSoftbanksMap.put(0xe335, R.drawable.emoji_1f31f);
+ sSoftbanksMap.put(0xe336, R.drawable.emoji_2754);
+ sSoftbanksMap.put(0xe337, R.drawable.emoji_2755);
+ sSoftbanksMap.put(0xe338, R.drawable.emoji_1f375);
+ sSoftbanksMap.put(0xe339, R.drawable.emoji_1f35e);
+ sSoftbanksMap.put(0xe33a, R.drawable.emoji_1f366);
+ sSoftbanksMap.put(0xe33b, R.drawable.emoji_1f35f);
+ sSoftbanksMap.put(0xe33c, R.drawable.emoji_1f361);
+ sSoftbanksMap.put(0xe33d, R.drawable.emoji_1f358);
+ sSoftbanksMap.put(0xe33e, R.drawable.emoji_1f35a);
+ sSoftbanksMap.put(0xe33f, R.drawable.emoji_1f35d);
+ sSoftbanksMap.put(0xe340, R.drawable.emoji_1f35c);
+ sSoftbanksMap.put(0xe341, R.drawable.emoji_1f35b);
+ sSoftbanksMap.put(0xe342, R.drawable.emoji_1f359);
+ sSoftbanksMap.put(0xe343, R.drawable.emoji_1f362);
+ sSoftbanksMap.put(0xe344, R.drawable.emoji_1f363);
+ sSoftbanksMap.put(0xe345, R.drawable.emoji_1f34e);
+ sSoftbanksMap.put(0xe346, R.drawable.emoji_1f34a);
+ sSoftbanksMap.put(0xe347, R.drawable.emoji_1f353);
+ sSoftbanksMap.put(0xe348, R.drawable.emoji_1f349);
+ sSoftbanksMap.put(0xe349, R.drawable.emoji_1f345);
+ sSoftbanksMap.put(0xe34a, R.drawable.emoji_1f346);
+ sSoftbanksMap.put(0xe34b, R.drawable.emoji_1f382);
+ sSoftbanksMap.put(0xe34c, R.drawable.emoji_1f371);
+ sSoftbanksMap.put(0xe34d, R.drawable.emoji_1f372);
+ sSoftbanksMap.put(0xe401, R.drawable.emoji_1f625);
+ sSoftbanksMap.put(0xe402, R.drawable.emoji_1f60f);
+ sSoftbanksMap.put(0xe403, R.drawable.emoji_1f614);
+ sSoftbanksMap.put(0xe404, R.drawable.emoji_1f601);
+ sSoftbanksMap.put(0xe405, R.drawable.emoji_1f609);
+ sSoftbanksMap.put(0xe406, R.drawable.emoji_1f623);
+ sSoftbanksMap.put(0xe407, R.drawable.emoji_1f616);
+ sSoftbanksMap.put(0xe408, R.drawable.emoji_1f62a);
+ sSoftbanksMap.put(0xe409, R.drawable.emoji_1f445);
+ sSoftbanksMap.put(0xe40a, R.drawable.emoji_1f606);
+ sSoftbanksMap.put(0xe40b, R.drawable.emoji_1f628);
+ sSoftbanksMap.put(0xe40c, R.drawable.emoji_1f637);
+ sSoftbanksMap.put(0xe40d, R.drawable.emoji_1f633);
+ sSoftbanksMap.put(0xe40e, R.drawable.emoji_1f612);
+ sSoftbanksMap.put(0xe40f, R.drawable.emoji_1f630);
+ sSoftbanksMap.put(0xe410, R.drawable.emoji_1f632);
+ sSoftbanksMap.put(0xe411, R.drawable.emoji_1f62d);
+ sSoftbanksMap.put(0xe412, R.drawable.emoji_1f602);
+ sSoftbanksMap.put(0xe413, R.drawable.emoji_1f622);
+ sSoftbanksMap.put(0xe414, R.drawable.emoji_263a);
+ sSoftbanksMap.put(0xe415, R.drawable.emoji_1f605);
+ sSoftbanksMap.put(0xe416, R.drawable.emoji_1f621);
+ sSoftbanksMap.put(0xe417, R.drawable.emoji_1f61a);
+ sSoftbanksMap.put(0xe418, R.drawable.emoji_1f618);
+ sSoftbanksMap.put(0xe419, R.drawable.emoji_1f440);
+ sSoftbanksMap.put(0xe41a, R.drawable.emoji_1f443);
+ sSoftbanksMap.put(0xe41b, R.drawable.emoji_1f442);
+ sSoftbanksMap.put(0xe41c, R.drawable.emoji_1f444);
+ sSoftbanksMap.put(0xe41d, R.drawable.emoji_1f64f);
+ sSoftbanksMap.put(0xe41e, R.drawable.emoji_1f44b);
+ sSoftbanksMap.put(0xe41f, R.drawable.emoji_1f44f);
+ sSoftbanksMap.put(0xe420, R.drawable.emoji_1f44c);
+ sSoftbanksMap.put(0xe421, R.drawable.emoji_1f44e);
+ sSoftbanksMap.put(0xe422, R.drawable.emoji_1f450);
+ sSoftbanksMap.put(0xe423, R.drawable.emoji_1f645);
+ sSoftbanksMap.put(0xe424, R.drawable.emoji_1f646);
+ sSoftbanksMap.put(0xe425, R.drawable.emoji_1f491);
+ sSoftbanksMap.put(0xe426, R.drawable.emoji_1f647);
+ sSoftbanksMap.put(0xe427, R.drawable.emoji_1f64c);
+ sSoftbanksMap.put(0xe428, R.drawable.emoji_1f46b);
+ sSoftbanksMap.put(0xe429, R.drawable.emoji_1f46f);
+ sSoftbanksMap.put(0xe42a, R.drawable.emoji_1f3c0);
+ sSoftbanksMap.put(0xe42b, R.drawable.emoji_1f3c8);
+ sSoftbanksMap.put(0xe42c, R.drawable.emoji_1f3b1);
+ sSoftbanksMap.put(0xe42d, R.drawable.emoji_1f3ca);
+ sSoftbanksMap.put(0xe42e, R.drawable.emoji_1f699);
+ sSoftbanksMap.put(0xe42f, R.drawable.emoji_1f69a);
+ sSoftbanksMap.put(0xe430, R.drawable.emoji_1f692);
+ sSoftbanksMap.put(0xe431, R.drawable.emoji_1f691);
+ sSoftbanksMap.put(0xe432, R.drawable.emoji_1f693);
+ sSoftbanksMap.put(0xe433, R.drawable.emoji_1f3a2);
+ sSoftbanksMap.put(0xe434, R.drawable.emoji_1f687);
+ sSoftbanksMap.put(0xe435, R.drawable.emoji_1f684);
+ sSoftbanksMap.put(0xe436, R.drawable.emoji_1f38d);
+ sSoftbanksMap.put(0xe437, R.drawable.emoji_1f49d);
+ sSoftbanksMap.put(0xe438, R.drawable.emoji_1f38e);
+ sSoftbanksMap.put(0xe439, R.drawable.emoji_1f393);
+ sSoftbanksMap.put(0xe43a, R.drawable.emoji_1f392);
+ sSoftbanksMap.put(0xe43b, R.drawable.emoji_1f38f);
+ sSoftbanksMap.put(0xe43c, R.drawable.emoji_1f302);
+ sSoftbanksMap.put(0xe43d, R.drawable.emoji_1f492);
+ sSoftbanksMap.put(0xe43e, R.drawable.emoji_1f30a);
+ sSoftbanksMap.put(0xe43f, R.drawable.emoji_1f367);
+ sSoftbanksMap.put(0xe440, R.drawable.emoji_1f387);
+ sSoftbanksMap.put(0xe441, R.drawable.emoji_1f41a);
+ sSoftbanksMap.put(0xe442, R.drawable.emoji_1f390);
+ sSoftbanksMap.put(0xe443, R.drawable.emoji_1f300);
+ sSoftbanksMap.put(0xe444, R.drawable.emoji_1f33e);
+ sSoftbanksMap.put(0xe445, R.drawable.emoji_1f383);
+ sSoftbanksMap.put(0xe446, R.drawable.emoji_1f391);
+ sSoftbanksMap.put(0xe447, R.drawable.emoji_1f343);
+ sSoftbanksMap.put(0xe448, R.drawable.emoji_1f385);
+ sSoftbanksMap.put(0xe449, R.drawable.emoji_1f305);
+ sSoftbanksMap.put(0xe44a, R.drawable.emoji_1f307);
+ sSoftbanksMap.put(0xe44b, R.drawable.emoji_1f303);
+ sSoftbanksMap.put(0xe44b, R.drawable.emoji_1f30c);
+ sSoftbanksMap.put(0xe44c, R.drawable.emoji_1f308);
+ sSoftbanksMap.put(0xe501, R.drawable.emoji_1f3e9);
+ sSoftbanksMap.put(0xe502, R.drawable.emoji_1f3a8);
+ sSoftbanksMap.put(0xe503, R.drawable.emoji_1f3a9);
+ sSoftbanksMap.put(0xe504, R.drawable.emoji_1f3ec);
+ sSoftbanksMap.put(0xe505, R.drawable.emoji_1f3ef);
+ sSoftbanksMap.put(0xe506, R.drawable.emoji_1f3f0);
+ sSoftbanksMap.put(0xe507, R.drawable.emoji_1f3a6);
+ sSoftbanksMap.put(0xe508, R.drawable.emoji_1f3ed);
+ sSoftbanksMap.put(0xe509, R.drawable.emoji_1f5fc);
+ sSoftbanksMap.put(0xe50b, R.drawable.emoji_1f1ef_1f1f5);
+ sSoftbanksMap.put(0xe50c, R.drawable.emoji_1f1fa_1f1f8);
+ sSoftbanksMap.put(0xe50d, R.drawable.emoji_1f1eb_1f1f7);
+ sSoftbanksMap.put(0xe50e, R.drawable.emoji_1f1e9_1f1ea);
+ sSoftbanksMap.put(0xe50f, R.drawable.emoji_1f1ee_1f1f9);
+ sSoftbanksMap.put(0xe510, R.drawable.emoji_1f1ec_1f1e7);
+ sSoftbanksMap.put(0xe511, R.drawable.emoji_1f1ea_1f1f8);
+ sSoftbanksMap.put(0xe512, R.drawable.emoji_1f1f7_1f1fa);
+ sSoftbanksMap.put(0xe513, R.drawable.emoji_1f1e8_1f1f3);
+ sSoftbanksMap.put(0xe514, R.drawable.emoji_1f1f0_1f1f7);
+ sSoftbanksMap.put(0xe515, R.drawable.emoji_1f471);
+ sSoftbanksMap.put(0xe516, R.drawable.emoji_1f472);
+ sSoftbanksMap.put(0xe517, R.drawable.emoji_1f473);
+ sSoftbanksMap.put(0xe518, R.drawable.emoji_1f474);
+ sSoftbanksMap.put(0xe519, R.drawable.emoji_1f475);
+ sSoftbanksMap.put(0xe51a, R.drawable.emoji_1f476);
+ sSoftbanksMap.put(0xe51b, R.drawable.emoji_1f477);
+ sSoftbanksMap.put(0xe51c, R.drawable.emoji_1f478);
+ sSoftbanksMap.put(0xe51d, R.drawable.emoji_1f5fd);
+ sSoftbanksMap.put(0xe51e, R.drawable.emoji_1f482);
+ sSoftbanksMap.put(0xe51f, R.drawable.emoji_1f483);
+ sSoftbanksMap.put(0xe520, R.drawable.emoji_1f42c);
+ sSoftbanksMap.put(0xe521, R.drawable.emoji_1f426);
+ sSoftbanksMap.put(0xe522, R.drawable.emoji_1f420);
+ sSoftbanksMap.put(0xe523, R.drawable.emoji_1f423);
+ sSoftbanksMap.put(0xe524, R.drawable.emoji_1f439);
+ sSoftbanksMap.put(0xe525, R.drawable.emoji_1f41b);
+ sSoftbanksMap.put(0xe526, R.drawable.emoji_1f418);
+ sSoftbanksMap.put(0xe527, R.drawable.emoji_1f428);
+ sSoftbanksMap.put(0xe528, R.drawable.emoji_1f412);
+ sSoftbanksMap.put(0xe529, R.drawable.emoji_1f411);
+ sSoftbanksMap.put(0xe52a, R.drawable.emoji_1f43a);
+ sSoftbanksMap.put(0xe52b, R.drawable.emoji_1f42e);
+ sSoftbanksMap.put(0xe52c, R.drawable.emoji_1f430);
+ sSoftbanksMap.put(0xe52d, R.drawable.emoji_1f40d);
+ sSoftbanksMap.put(0xe52e, R.drawable.emoji_1f414);
+ sSoftbanksMap.put(0xe52f, R.drawable.emoji_1f417);
+ sSoftbanksMap.put(0xe530, R.drawable.emoji_1f42b);
+ sSoftbanksMap.put(0xe531, R.drawable.emoji_1f438);
+ sSoftbanksMap.put(0xe532, R.drawable.emoji_1f170);
+ sSoftbanksMap.put(0xe533, R.drawable.emoji_1f171);
+ sSoftbanksMap.put(0xe534, R.drawable.emoji_1f18e);
+ sSoftbanksMap.put(0xe535, R.drawable.emoji_1f17e);
+ sSoftbanksMap.put(0xe536, R.drawable.emoji_1f43e);
+ sSoftbanksMap.put(0xe537, R.drawable.emoji_2122);
+ }
+
+ private static boolean isSoftBankEmoji(char c) {
+ return ((c >> 12) == 0xe);
+ }
+
+ private static int getEmojiResource(Context context, int codePoint) {
+ return sEmojisMap.get(codePoint);
+ }
+
+ private static int getSoftbankEmojiResource(char c) {
+ return sSoftbanksMap.get(c);
+ }
+
+ /**
+ * Convert emoji characters of the given Spannable to the according emojicon.
+ *
+ * @param context
+ * @param text
+ * @param emojiSize
+ */
+ public static void addEmojis(Context context, Spannable text, int emojiSize) {
+ addEmojis(context, text, emojiSize, 0, -1);
+ }
+
+ /**
+ * Convert emoji characters of the given Spannable to the according emojicon.
+ *
+ * @param context
+ * @param text
+ * @param emojiSize
+ * @param index
+ * @param length
+ */
+ public static void addEmojis(Context context, Spannable text, int emojiSize, int index, int length) {
+ int textLength = text.length();
+ int textLengthToProcessMax = textLength - index;
+ int textLengthToProcess = length < 0 || length >= textLengthToProcessMax ? textLength : (length+index);
+
+ // remove spans throughout all text
+ EmojiconSpan[] oldSpans = text.getSpans(0, textLength, EmojiconSpan.class);
+ for (int i = 0; i < oldSpans.length; i++) {
+ text.removeSpan(oldSpans[i]);
+ }
+
+ int skip;
+ for (int i = index; i < textLengthToProcess; i += skip) {
+ skip = 0;
+ int icon = 0;
+ char c = text.charAt(i);
+ if (isSoftBankEmoji(c)) {
+ icon = getSoftbankEmojiResource(c);
+ skip = icon == 0 ? 0 : 1;
+ }
+
+ if (icon == 0) {
+ int unicode = Character.codePointAt(text, i);
+ skip = Character.charCount(unicode);
+
+ if (unicode > 0xff) {
+ icon = getEmojiResource(context, unicode);
+ }
+
+ if (icon == 0 && i + skip < textLengthToProcess) {
+ int followUnicode = Character.codePointAt(text, i + skip);
+ if (followUnicode == 0x20e3) {
+ int followSkip = Character.charCount(followUnicode);
+ switch (unicode) {
+ case 0x0031:
+ icon = R.drawable.emoji_0031;
+ break;
+ case 0x0032:
+ icon = R.drawable.emoji_0032;
+ break;
+ case 0x0033:
+ icon = R.drawable.emoji_0033;
+ break;
+ case 0x0034:
+ icon = R.drawable.emoji_0034;
+ break;
+ case 0x0035:
+ icon = R.drawable.emoji_0035;
+ break;
+ case 0x0036:
+ icon = R.drawable.emoji_0036;
+ break;
+ case 0x0037:
+ icon = R.drawable.emoji_0037;
+ break;
+ case 0x0038:
+ icon = R.drawable.emoji_0038;
+ break;
+ case 0x0039:
+ icon = R.drawable.emoji_0039;
+ break;
+ case 0x0030:
+ icon = R.drawable.emoji_0030;
+ break;
+ case 0x0023:
+ icon = R.drawable.emoji_0023;
+ break;
+ default:
+ followSkip = 0;
+ break;
+ }
+ skip += followSkip;
+ } else {
+ int followSkip = Character.charCount(followUnicode);
+ switch (unicode) {
+ case 0x1f1ef:
+ icon = (followUnicode == 0x1f1f5) ? R.drawable.emoji_1f1ef_1f1f5 : 0;
+ break;
+ case 0x1f1fa:
+ icon = (followUnicode == 0x1f1f8) ? R.drawable.emoji_1f1fa_1f1f8 : 0;
+ break;
+ case 0x1f1eb:
+ icon = (followUnicode == 0x1f1f7) ? R.drawable.emoji_1f1eb_1f1f7 : 0;
+ break;
+ case 0x1f1e9:
+ icon = (followUnicode == 0x1f1ea) ? R.drawable.emoji_1f1e9_1f1ea : 0;
+ break;
+ case 0x1f1ee:
+ icon = (followUnicode == 0x1f1f9) ? R.drawable.emoji_1f1ee_1f1f9 : 0;
+ break;
+ case 0x1f1ec:
+ icon = (followUnicode == 0x1f1e7) ? R.drawable.emoji_1f1ec_1f1e7 : 0;
+ break;
+ case 0x1f1ea:
+ icon = (followUnicode == 0x1f1f8) ? R.drawable.emoji_1f1ea_1f1f8 : 0;
+ break;
+ case 0x1f1f7:
+ icon = (followUnicode == 0x1f1fa) ? R.drawable.emoji_1f1f7_1f1fa : 0;
+ break;
+ case 0x1f1e8:
+ icon = (followUnicode == 0x1f1f3) ? R.drawable.emoji_1f1e8_1f1f3 : 0;
+ break;
+ case 0x1f1f0:
+ icon = (followUnicode == 0x1f1f7) ? R.drawable.emoji_1f1f0_1f1f7 : 0;
+ break;
+ default:
+ followSkip = 0;
+ break;
+ }
+ skip += followSkip;
+ }
+ }
+ }
+
+ if (icon > 0) {
+ text.setSpan(new EmojiconSpan(context, icon, emojiSize), i, i + skip, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ }
+ }
+ }
+}
diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconRecents.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconRecents.java
new file mode 100644
index 00000000..195c86ab
--- /dev/null
+++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconRecents.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2014 Ankush Sachdeva
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package github.ankushsachdeva.emojicon;
+
+import github.ankushsachdeva.emojicon.emoji.Emojicon;
+
+import android.content.Context;
+
+/**
+* @author Daniele Ricci
+*/
+public interface EmojiconRecents {
+ public void addRecentEmoji(Context context, Emojicon emojicon);
+}
diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconRecentsGridView.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconRecentsGridView.java
new file mode 100644
index 00000000..2aecbb59
--- /dev/null
+++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconRecentsGridView.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2014 Ankush Sachdeva
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package github.ankushsachdeva.emojicon;
+
+import github.ankushsachdeva.emojicon.emoji.Emojicon;
+import android.content.Context;
+import android.widget.GridView;
+
+import github.ankushsachdeva.emojicon.R;
+
+/**
+ * @author Daniele Ricci
+ * @author Ankush Sachdeva (sankush@yahoo.co.in)
+ */
+public class EmojiconRecentsGridView extends EmojiconGridView implements EmojiconRecents {
+ EmojiAdapter mAdapter;
+
+ public EmojiconRecentsGridView(Context context, Emojicon[] emojicons,
+ EmojiconRecents recents,EmojiconsPopup emojiconsPopup) {
+ super(context, emojicons, recents, emojiconsPopup);
+ EmojiconRecentsManager recents1 = EmojiconRecentsManager
+ .getInstance(rootView.getContext());
+ mAdapter = new EmojiAdapter(rootView.getContext(), recents1);
+ mAdapter.setEmojiClickListener(new OnEmojiconClickedListener() {
+
+ @Override
+ public void onEmojiconClicked(Emojicon emojicon) {
+ if (mEmojiconPopup.onEmojiconClickedListener != null) {
+ mEmojiconPopup.onEmojiconClickedListener.onEmojiconClicked(emojicon);
+ }
+ }
+ });
+ GridView gridView = (GridView) rootView.findViewById(R.id.Emoji_GridView);
+ gridView.setAdapter(mAdapter);
+ }
+
+ @Override
+ public void addRecentEmoji(Context context, Emojicon emojicon) {
+ EmojiconRecentsManager recents = EmojiconRecentsManager
+ .getInstance(context);
+ recents.push(emojicon);
+
+ // notify dataset changed
+ if (mAdapter != null)
+ mAdapter.notifyDataSetChanged();
+ }
+
+}
diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconRecentsManager.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconRecentsManager.java
new file mode 100644
index 00000000..9fbb987e
--- /dev/null
+++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconRecentsManager.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright 2014 Ankush Sachdeva
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package github.ankushsachdeva.emojicon;
+
+import github.ankushsachdeva.emojicon.emoji.Emojicon;
+
+import java.util.ArrayList;
+import java.util.StringTokenizer;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+
+
+/**
+* @author Daniele Ricci
+*/
+public class EmojiconRecentsManager extends ArrayList<Emojicon> {
+
+ private static final String PREFERENCE_NAME = "emojicon";
+ private static final String PREF_RECENTS = "recent_emojis";
+ private static final String PREF_PAGE = "recent_page";
+
+ private static final Object LOCK = new Object();
+ private static EmojiconRecentsManager sInstance;
+
+ private Context mContext;
+
+ private EmojiconRecentsManager(Context context) {
+ mContext = context.getApplicationContext();
+ loadRecents();
+ }
+
+ public static EmojiconRecentsManager getInstance(Context context) {
+ if (sInstance == null) {
+ synchronized (LOCK) {
+ if (sInstance == null) {
+ sInstance = new EmojiconRecentsManager(context);
+ }
+ }
+ }
+ return sInstance;
+ }
+
+ public int getRecentPage() {
+ return getPreferences().getInt(PREF_PAGE, 0);
+ }
+
+ public void setRecentPage(int page) {
+ getPreferences().edit().putInt(PREF_PAGE, page).commit();
+ }
+
+ public void push(Emojicon object) {
+ // FIXME totally inefficient way of adding the emoji to the adapter
+ // TODO this should be probably replaced by a deque
+ if (contains(object)) {
+ super.remove(object);
+ }
+ add(0, object);
+ }
+
+ @Override
+ public boolean add(Emojicon object) {
+ boolean ret = super.add(object);
+ return ret;
+ }
+
+ @Override
+ public void add(int index, Emojicon object) {
+ super.add(index, object);
+ }
+
+ @Override
+ public boolean remove(Object object) {
+ boolean ret = super.remove(object);
+ return ret;
+ }
+
+ private SharedPreferences getPreferences() {
+ return mContext.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
+ }
+
+ private void loadRecents() {
+ SharedPreferences prefs = getPreferences();
+ String str = prefs.getString(PREF_RECENTS, "");
+ StringTokenizer tokenizer = new StringTokenizer(str, "~");
+ while (tokenizer.hasMoreTokens()) {
+ try {
+ add(new Emojicon(tokenizer.nextToken()));
+ }
+ catch (NumberFormatException e) {
+ // ignored
+ }
+ }
+ }
+
+ public void saveRecents() {
+ StringBuilder str = new StringBuilder();
+ int c = size();
+ for (int i = 0; i < c; i++) {
+ Emojicon e = get(i);
+ str.append(e.getEmoji());
+ if (i < (c - 1)) {
+ str.append('~');
+ }
+ }
+ SharedPreferences prefs = getPreferences();
+ prefs.edit().putString(PREF_RECENTS, str.toString()).commit();
+ }
+
+}
diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconSpan.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconSpan.java
new file mode 100644
index 00000000..1afeea95
--- /dev/null
+++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconSpan.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2014 Ankush Sachdeva
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package github.ankushsachdeva.emojicon;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.text.style.DynamicDrawableSpan;
+
+/**
+ * @author Hieu Rocker (rockerhieu@gmail.com)
+ */
+class EmojiconSpan extends DynamicDrawableSpan {
+ private final Context mContext;
+ private final int mResourceId;
+ private final int mSize;
+ private Drawable mDrawable;
+
+ public EmojiconSpan(Context context, int resourceId, int size) {
+ super();
+ mContext = context;
+ mResourceId = resourceId;
+ mSize = size;
+ }
+
+ public Drawable getDrawable() {
+ if (mDrawable == null) {
+ try {
+ mDrawable = mContext.getResources().getDrawable(mResourceId);
+ int size = mSize;
+ mDrawable.setBounds(0, 0, size, size);
+ } catch (Exception e) {
+ // swallow
+ }
+ }
+ return mDrawable;
+ }
+} \ No newline at end of file
diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconTextView.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconTextView.java
new file mode 100644
index 00000000..5822e478
--- /dev/null
+++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconTextView.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2014 Ankush Sachdeva
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package github.ankushsachdeva.emojicon;
+
+import github.ankushsachdeva.emojicon.R;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.text.SpannableStringBuilder;
+import android.util.AttributeSet;
+import android.widget.TextView;
+
+/**
+ * @author Hieu Rocker (rockerhieu@gmail.com).
+ */
+public class EmojiconTextView extends TextView {
+ private int mEmojiconSize;
+ private int mTextStart = 0;
+ private int mTextLength = -1;
+
+ public EmojiconTextView(Context context) {
+ super(context);
+ init(null);
+ }
+
+ public EmojiconTextView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init(attrs);
+ }
+
+ public EmojiconTextView(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ init(attrs);
+ }
+
+ private void init(AttributeSet attrs) {
+ if (attrs == null) {
+ mEmojiconSize = (int) getTextSize();
+ } else {
+ TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.Emojicon);
+ mEmojiconSize = (int) a.getDimension(R.styleable.Emojicon_emojiconSize, getTextSize());
+ mTextStart = a.getInteger(R.styleable.Emojicon_emojiconTextStart, 0);
+ mTextLength = a.getInteger(R.styleable.Emojicon_emojiconTextLength, -1);
+ a.recycle();
+ }
+ setText(getText());
+ }
+
+ @Override
+ public void setText(CharSequence text, BufferType type) {
+ SpannableStringBuilder builder = new SpannableStringBuilder(text);
+ EmojiconHandler.addEmojis(getContext(), builder, mEmojiconSize, mTextStart, mTextLength);
+ super.setText(builder, type);
+ }
+
+ /**
+ * Set the size of emojicon in pixels.
+ */
+ public void setEmojiconSize(int pixels) {
+ mEmojiconSize = pixels;
+ }
+}
diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconsPopup.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconsPopup.java
new file mode 100644
index 00000000..12bc16e0
--- /dev/null
+++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconsPopup.java
@@ -0,0 +1,408 @@
+/*
+ * Copyright 2014 Ankush Sachdeva
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package github.ankushsachdeva.emojicon;
+
+import github.ankushsachdeva.emojicon.EmojiconGridView.OnEmojiconClickedListener;
+import github.ankushsachdeva.emojicon.emoji.Emojicon;
+import github.ankushsachdeva.emojicon.emoji.Nature;
+import github.ankushsachdeva.emojicon.emoji.Objects;
+import github.ankushsachdeva.emojicon.emoji.People;
+import github.ankushsachdeva.emojicon.emoji.Places;
+import github.ankushsachdeva.emojicon.emoji.Symbols;
+
+import java.util.Arrays;
+import java.util.List;
+
+import android.app.Activity;
+import android.content.Context;
+import android.graphics.Rect;
+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.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.view.ViewTreeObserver.OnGlobalLayoutListener;
+import android.view.WindowManager.LayoutParams;
+import android.widget.PopupWindow;
+
+
+/**
+ * @author Ankush Sachdeva (sankush@yahoo.co.in).
+ */
+
+public class EmojiconsPopup extends PopupWindow implements ViewPager.OnPageChangeListener, EmojiconRecents {
+ private int mEmojiTabLastSelectedIndex = -1;
+ private View[] mEmojiTabs;
+ private PagerAdapter mEmojisAdapter;
+ private EmojiconRecentsManager mRecentsManager;
+ private int keyBoardHeight = 0;
+ private Boolean pendingOpen = false;
+ private Boolean isOpened = false;
+ OnEmojiconClickedListener onEmojiconClickedListener;
+ OnEmojiconBackspaceClickedListener onEmojiconBackspaceClickedListener;
+ OnSoftKeyboardOpenCloseListener onSoftKeyboardOpenCloseListener;
+ View rootView;
+ Context mContext;
+
+ private ViewPager emojisPager;
+ /**
+ * Constructor
+ * @param rootView The top most layout in your view hierarchy. The difference of this view and the screen height will be used to calculate the keyboard height.
+ * @param mContext The context of current activity.
+ */
+ public EmojiconsPopup(View rootView, Context mContext){
+ super(mContext);
+ this.mContext = mContext;
+ this.rootView = rootView;
+ View customView = createCustomView();
+ setContentView(customView);
+ setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
+ //default size
+ setSize((int) mContext.getResources().getDimension(R.dimen.keyboard_height), LayoutParams.MATCH_PARENT);
+ }
+ /**
+ * Set the listener for the event of keyboard opening or closing.
+ */
+ public void setOnSoftKeyboardOpenCloseListener(OnSoftKeyboardOpenCloseListener listener){
+ this.onSoftKeyboardOpenCloseListener = listener;
+ }
+
+ /**
+ * Set the listener for the event when any of the emojicon is clicked
+ */
+ public void setOnEmojiconClickedListener(OnEmojiconClickedListener listener){
+ this.onEmojiconClickedListener = listener;
+ }
+
+ /**
+ * Set the listener for the event when backspace on emojicon popup is clicked
+ */
+ public void setOnEmojiconBackspaceClickedListener(OnEmojiconBackspaceClickedListener listener){
+ this.onEmojiconBackspaceClickedListener = listener;
+ }
+
+ /**
+ * Use this function to show the emoji popup.
+ * NOTE: Since, the soft keyboard sizes are variable on different android devices, the
+ * library needs you to open the soft keyboard atleast once before calling this function.
+ * If that is not possible see showAtBottomPending() function.
+ *
+ */
+ public void showAtBottom(){
+ showAtLocation(rootView, Gravity.BOTTOM, 0, 0);
+ }
+ /**
+ * Use this function when the soft keyboard has not been opened yet. This
+ * will show the emoji popup after the keyboard is up next time.
+ * Generally, you will be calling InputMethodManager.showSoftInput function after
+ * calling this function.
+ */
+ public void showAtBottomPending(){
+ if(isKeyBoardOpen())
+ showAtBottom();
+ else
+ pendingOpen = true;
+ }
+
+ /**
+ *
+ * @return Returns true if the soft keyboard is open, false otherwise.
+ */
+ public Boolean isKeyBoardOpen(){
+ return isOpened;
+ }
+
+ /**
+ * Dismiss the popup
+ */
+ @Override
+ public void dismiss() {
+ super.dismiss();
+ EmojiconRecentsManager
+ .getInstance(mContext).saveRecents();
+ }
+
+ /**
+ * Call this function to resize the emoji popup according to your soft keyboard size
+ */
+ public void setSizeForSoftKeyboard(){
+ rootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
+ @Override
+ public void onGlobalLayout() {
+ Rect r = new Rect();
+ rootView.getWindowVisibleDisplayFrame(r);
+
+ int screenHeight = rootView.getRootView()
+ .getHeight();
+ int heightDifference = screenHeight
+ - (r.bottom - r.top);
+ int resourceId = mContext.getResources()
+ .getIdentifier("status_bar_height",
+ "dimen", "android");
+ if (resourceId > 0) {
+ heightDifference -= mContext.getResources()
+ .getDimensionPixelSize(resourceId);
+ }
+ if (heightDifference > 100) {
+ keyBoardHeight = heightDifference;
+ setSize(LayoutParams.MATCH_PARENT, keyBoardHeight);
+ if(isOpened == false){
+ if(onSoftKeyboardOpenCloseListener!=null)
+ onSoftKeyboardOpenCloseListener.onKeyboardOpen(keyBoardHeight);
+ }
+ isOpened = true;
+ if(pendingOpen){
+ showAtBottom();
+ pendingOpen = false;
+ }
+ }
+ else{
+ isOpened = false;
+ if(onSoftKeyboardOpenCloseListener!=null)
+ onSoftKeyboardOpenCloseListener.onKeyboardClose();
+ }
+ }
+ });
+ }
+
+ /**
+ * Manually set the popup window size
+ * @param width Width of the popup
+ * @param height Height of the popup
+ */
+ public void setSize(int width, int height){
+ setWidth(width);
+ setHeight(height);
+ }
+
+ private View createCustomView() {
+ LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
+ View view = inflater.inflate(R.layout.emojicons, null, false);
+ emojisPager = (ViewPager) view.findViewById(R.id.emojis_pager);
+ emojisPager.setOnPageChangeListener(this);
+ EmojiconRecents recents = this;
+ mEmojisAdapter = new EmojisPagerAdapter(
+ Arrays.asList(
+ new EmojiconRecentsGridView(mContext, null, null, this),
+ new EmojiconGridView(mContext, People.DATA, recents, this),
+ new EmojiconGridView(mContext, Nature.DATA, recents, this),
+ new EmojiconGridView(mContext, Objects.DATA, recents, this),
+ new EmojiconGridView(mContext, Places.DATA, recents, this),
+ new EmojiconGridView(mContext, Symbols.DATA, recents, this)
+ )
+ );
+ emojisPager.setAdapter(mEmojisAdapter);
+ mEmojiTabs = new View[6];
+ mEmojiTabs[0] = view.findViewById(R.id.emojis_tab_0_recents);
+ mEmojiTabs[1] = view.findViewById(R.id.emojis_tab_1_people);
+ mEmojiTabs[2] = view.findViewById(R.id.emojis_tab_2_nature);
+ mEmojiTabs[3] = view.findViewById(R.id.emojis_tab_3_objects);
+ mEmojiTabs[4] = view.findViewById(R.id.emojis_tab_4_cars);
+ mEmojiTabs[5] = view.findViewById(R.id.emojis_tab_5_punctuation);
+ for (int i = 0; i < mEmojiTabs.length; i++) {
+ final int position = i;
+ mEmojiTabs[i].setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ emojisPager.setCurrentItem(position);
+ }
+ });
+ }
+ view.findViewById(R.id.emojis_backspace).setOnTouchListener(new RepeatListener(1000, 50, new OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ if(onEmojiconBackspaceClickedListener != null)
+ onEmojiconBackspaceClickedListener.onEmojiconBackspaceClicked(v);
+ }
+ }));
+
+ // get last selected page
+ mRecentsManager = EmojiconRecentsManager.getInstance(view.getContext());
+ int page = mRecentsManager.getRecentPage();
+ // last page was recents, check if there are recents to use
+ // if none was found, go to page 1
+ if (page == 0 && mRecentsManager.size() == 0) {
+ page = 1;
+ }
+
+ if (page == 0) {
+ onPageSelected(page);
+ }
+ else {
+ emojisPager.setCurrentItem(page, false);
+ }
+ return view;
+ }
+
+ @Override
+ public void addRecentEmoji(Context context, Emojicon emojicon) {
+ EmojiconRecentsGridView fragment = ((EmojisPagerAdapter)emojisPager.getAdapter()).getRecentFragment();
+ fragment.addRecentEmoji(context, emojicon);
+ }
+
+
+ @Override
+ public void onPageScrolled(int i, float v, int i2) {
+ }
+
+ @Override
+ public void onPageSelected(int i) {
+ if (mEmojiTabLastSelectedIndex == i) {
+ return;
+ }
+ switch (i) {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ if (mEmojiTabLastSelectedIndex >= 0 && mEmojiTabLastSelectedIndex < mEmojiTabs.length) {
+ mEmojiTabs[mEmojiTabLastSelectedIndex].setSelected(false);
+ }
+ mEmojiTabs[i].setSelected(true);
+ mEmojiTabLastSelectedIndex = i;
+ mRecentsManager.setRecentPage(i);
+ break;
+ }
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int i) {
+ }
+
+ private static class EmojisPagerAdapter extends PagerAdapter {
+ private List<EmojiconGridView> views;
+ public EmojiconRecentsGridView getRecentFragment(){
+ for (EmojiconGridView it : views) {
+ if(it instanceof EmojiconRecentsGridView)
+ return (EmojiconRecentsGridView)it;
+ }
+ return null;
+ }
+ public EmojisPagerAdapter(List<EmojiconGridView> views) {
+ super();
+ this.views = views;
+ }
+
+ @Override
+ public int getCount() {
+ return views.size();
+ }
+
+
+ @Override
+ public Object instantiateItem(ViewGroup container, int position) {
+ View v = views.get(position).rootView;
+ ((ViewPager)container).addView(v, 0);
+ return v;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, Object view) {
+ ((ViewPager)container).removeView((View)view);
+ }
+
+ @Override
+ public boolean isViewFromObject(View view, Object key) {
+ return key == view;
+ }
+ }
+
+ /**
+ * A class, that can be used as a TouchListener on any view (e.g. a Button).
+ * It cyclically runs a clickListener, emulating keyboard-like behaviour. First
+ * click is fired immediately, next before initialInterval, and subsequent before
+ * normalInterval.
+ * <p/>
+ * <p>Interval is scheduled before the onClick completes, so it has to run fast.
+ * If it runs slow, it does not generate skipped onClicks.
+ */
+ public static class RepeatListener implements View.OnTouchListener {
+
+ private Handler handler = new Handler();
+
+ private int initialInterval;
+ private final int normalInterval;
+ private final View.OnClickListener clickListener;
+
+ private Runnable handlerRunnable = new Runnable() {
+ @Override
+ public void run() {
+ if (downView == null) {
+ return;
+ }
+ handler.removeCallbacksAndMessages(downView);
+ handler.postAtTime(this, downView, SystemClock.uptimeMillis() + normalInterval);
+ clickListener.onClick(downView);
+ }
+ };
+
+ private View downView;
+
+ /**
+ * @param initialInterval The interval before first click event
+ * @param normalInterval The interval before second and subsequent click
+ * events
+ * @param clickListener The OnClickListener, that will be called
+ * periodically
+ */
+ public RepeatListener(int initialInterval, int normalInterval, View.OnClickListener clickListener) {
+ if (clickListener == null)
+ throw new IllegalArgumentException("null runnable");
+ if (initialInterval < 0 || normalInterval < 0)
+ throw new IllegalArgumentException("negative interval");
+
+ this.initialInterval = initialInterval;
+ this.normalInterval = normalInterval;
+ this.clickListener = clickListener;
+ }
+
+ public boolean onTouch(View view, MotionEvent motionEvent) {
+ switch (motionEvent.getAction()) {
+ case MotionEvent.ACTION_DOWN:
+ downView = view;
+ handler.removeCallbacks(handlerRunnable);
+ handler.postAtTime(handlerRunnable, downView, SystemClock.uptimeMillis() + initialInterval);
+ clickListener.onClick(view);
+ return true;
+ case MotionEvent.ACTION_UP:
+ case MotionEvent.ACTION_CANCEL:
+ case MotionEvent.ACTION_OUTSIDE:
+ handler.removeCallbacksAndMessages(downView);
+ downView = null;
+ return true;
+ }
+ return false;
+ }
+ }
+
+ public interface OnEmojiconBackspaceClickedListener {
+ void onEmojiconBackspaceClicked(View v);
+ }
+
+ public interface OnSoftKeyboardOpenCloseListener{
+ void onKeyboardOpen(int keyBoardHeight);
+ void onKeyboardClose();
+ }
+}
diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/Emojicon.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/Emojicon.java
new file mode 100644
index 00000000..2ba8ca1e
--- /dev/null
+++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/Emojicon.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright 2014 Ankush Sachdeva
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package github.ankushsachdeva.emojicon.emoji;
+
+import java.io.Serializable;
+
+/**
+ * @author Hieu Rocker (rockerhieu@gmail.com)
+ */
+public class Emojicon implements Serializable {
+ private static final long serialVersionUID = 1L;
+ private String emoji;
+
+ private Emojicon() {
+ }
+
+ public static Emojicon fromCodePoint(int codePoint) {
+ Emojicon emoji = new Emojicon();
+ emoji.emoji = newString(codePoint);
+ return emoji;
+ }
+
+ public static Emojicon fromChar(char ch) {
+ Emojicon emoji = new Emojicon();
+ emoji.emoji = Character.toString(ch);
+ return emoji;
+ }
+
+ public static Emojicon fromChars(String chars) {
+ Emojicon emoji = new Emojicon();
+ emoji.emoji = chars;
+ return emoji;
+ }
+
+ public Emojicon(String emoji) {
+ this.emoji = emoji;
+ }
+
+ public String getEmoji() {
+ return emoji;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return o instanceof Emojicon && emoji.equals(((Emojicon) o).emoji);
+ }
+
+ @Override
+ public int hashCode() {
+ return emoji.hashCode();
+ }
+
+ public static final String newString(int codePoint) {
+ if (Character.charCount(codePoint) == 1) {
+ return String.valueOf(codePoint);
+ } else {
+ return new String(Character.toChars(codePoint));
+ }
+ }
+}
diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/Nature.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/Nature.java
new file mode 100644
index 00000000..b354c9a0
--- /dev/null
+++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/Nature.java
@@ -0,0 +1,141 @@
+/*
+ * Copyright 2014 Ankush Sachdeva
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package github.ankushsachdeva.emojicon.emoji;
+
+/**
+ * @author Hieu Rocker (rockerhieu@gmail.com)
+ */
+public class Nature {
+ public static final Emojicon[] DATA = new Emojicon[]{
+ Emojicon.fromCodePoint(0x1f436),
+ Emojicon.fromCodePoint(0x1f43a),
+ Emojicon.fromCodePoint(0x1f431),
+ Emojicon.fromCodePoint(0x1f42d),
+ Emojicon.fromCodePoint(0x1f439),
+ Emojicon.fromCodePoint(0x1f430),
+ Emojicon.fromCodePoint(0x1f438),
+ Emojicon.fromCodePoint(0x1f42f),
+ Emojicon.fromCodePoint(0x1f428),
+ Emojicon.fromCodePoint(0x1f43b),
+ Emojicon.fromCodePoint(0x1f437),
+ Emojicon.fromCodePoint(0x1f43d),
+ Emojicon.fromCodePoint(0x1f42e),
+ Emojicon.fromCodePoint(0x1f417),
+ Emojicon.fromCodePoint(0x1f435),
+ Emojicon.fromCodePoint(0x1f412),
+ Emojicon.fromCodePoint(0x1f434),
+ Emojicon.fromCodePoint(0x1f411),
+ Emojicon.fromCodePoint(0x1f418),
+ Emojicon.fromCodePoint(0x1f43c),
+ Emojicon.fromCodePoint(0x1f427),
+ Emojicon.fromCodePoint(0x1f426),
+ Emojicon.fromCodePoint(0x1f424),
+ Emojicon.fromCodePoint(0x1f425),
+ Emojicon.fromCodePoint(0x1f423),
+ Emojicon.fromCodePoint(0x1f414),
+ Emojicon.fromCodePoint(0x1f40d),
+ Emojicon.fromCodePoint(0x1f422),
+ Emojicon.fromCodePoint(0x1f41b),
+ Emojicon.fromCodePoint(0x1f41d),
+ Emojicon.fromCodePoint(0x1f41c),
+ Emojicon.fromCodePoint(0x1f41e),
+ Emojicon.fromCodePoint(0x1f40c),
+ Emojicon.fromCodePoint(0x1f419),
+ Emojicon.fromCodePoint(0x1f41a),
+ Emojicon.fromCodePoint(0x1f420),
+ Emojicon.fromCodePoint(0x1f41f),
+ Emojicon.fromCodePoint(0x1f42c),
+ Emojicon.fromCodePoint(0x1f433),
+ Emojicon.fromCodePoint(0x1f40b),
+ Emojicon.fromCodePoint(0x1f404),
+ Emojicon.fromCodePoint(0x1f40f),
+ Emojicon.fromCodePoint(0x1f400),
+ Emojicon.fromCodePoint(0x1f403),
+ Emojicon.fromCodePoint(0x1f405),
+ Emojicon.fromCodePoint(0x1f407),
+ Emojicon.fromCodePoint(0x1f409),
+ Emojicon.fromCodePoint(0x1f40e),
+ Emojicon.fromCodePoint(0x1f410),
+ Emojicon.fromCodePoint(0x1f413),
+ Emojicon.fromCodePoint(0x1f415),
+ Emojicon.fromCodePoint(0x1f416),
+ Emojicon.fromCodePoint(0x1f401),
+ Emojicon.fromCodePoint(0x1f402),
+ Emojicon.fromCodePoint(0x1f432),
+ Emojicon.fromCodePoint(0x1f421),
+ Emojicon.fromCodePoint(0x1f40a),
+ Emojicon.fromCodePoint(0x1f42b),
+ Emojicon.fromCodePoint(0x1f42a),
+ Emojicon.fromCodePoint(0x1f406),
+ Emojicon.fromCodePoint(0x1f408),
+ Emojicon.fromCodePoint(0x1f429),
+ Emojicon.fromCodePoint(0x1f43e),
+ Emojicon.fromCodePoint(0x1f490),
+ Emojicon.fromCodePoint(0x1f338),
+ Emojicon.fromCodePoint(0x1f337),
+ Emojicon.fromCodePoint(0x1f340),
+ Emojicon.fromCodePoint(0x1f339),
+ Emojicon.fromCodePoint(0x1f33b),
+ Emojicon.fromCodePoint(0x1f33a),
+ Emojicon.fromCodePoint(0x1f341),
+ Emojicon.fromCodePoint(0x1f343),
+ Emojicon.fromCodePoint(0x1f342),
+ Emojicon.fromCodePoint(0x1f33f),
+ Emojicon.fromCodePoint(0x1f33e),
+ Emojicon.fromCodePoint(0x1f344),
+ Emojicon.fromCodePoint(0x1f335),
+ Emojicon.fromCodePoint(0x1f334),
+ Emojicon.fromCodePoint(0x1f332),
+ Emojicon.fromCodePoint(0x1f333),
+ Emojicon.fromCodePoint(0x1f330),
+ Emojicon.fromCodePoint(0x1f331),
+ Emojicon.fromCodePoint(0x1f33c),
+ Emojicon.fromCodePoint(0x1f310),
+ Emojicon.fromCodePoint(0x1f31e),
+ Emojicon.fromCodePoint(0x1f31d),
+ Emojicon.fromCodePoint(0x1f31a),
+ Emojicon.fromCodePoint(0x1f311),
+ Emojicon.fromCodePoint(0x1f312),
+ Emojicon.fromCodePoint(0x1f313),
+ Emojicon.fromCodePoint(0x1f314),
+ Emojicon.fromCodePoint(0x1f315),
+ Emojicon.fromCodePoint(0x1f316),
+ Emojicon.fromCodePoint(0x1f317),
+ Emojicon.fromCodePoint(0x1f318),
+ Emojicon.fromCodePoint(0x1f31c),
+ Emojicon.fromCodePoint(0x1f31b),
+ Emojicon.fromCodePoint(0x1f319),
+ Emojicon.fromCodePoint(0x1f30d),
+ Emojicon.fromCodePoint(0x1f30e),
+ Emojicon.fromCodePoint(0x1f30f),
+ Emojicon.fromCodePoint(0x1f30b),
+ Emojicon.fromCodePoint(0x1f30c),
+ Emojicon.fromCodePoint(0x1f320),
+ Emojicon.fromChar((char) 0x2b50),
+ Emojicon.fromChar((char) 0x2600),
+ Emojicon.fromChar((char) 0x26c5),
+ Emojicon.fromChar((char) 0x2601),
+ Emojicon.fromChar((char) 0x26a1),
+ Emojicon.fromChar((char) 0x2614),
+ Emojicon.fromChar((char) 0x2744),
+ Emojicon.fromChar((char) 0x26c4),
+ Emojicon.fromCodePoint(0x1f300),
+ Emojicon.fromCodePoint(0x1f301),
+ Emojicon.fromCodePoint(0x1f308),
+ Emojicon.fromCodePoint(0x1f30a),
+ };
+}
diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/Objects.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/Objects.java
new file mode 100644
index 00000000..222c9bac
--- /dev/null
+++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/Objects.java
@@ -0,0 +1,255 @@
+/*
+ * Copyright 2014 Ankush Sachdeva
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package github.ankushsachdeva.emojicon.emoji;
+
+/**
+ * @author Hieu Rocker (rockerhieu@gmail.com)
+ */
+public class Objects {
+ public static final Emojicon[] DATA = new Emojicon[]{
+ Emojicon.fromCodePoint(0x1f38d),
+ Emojicon.fromCodePoint(0x1f49d),
+ Emojicon.fromCodePoint(0x1f38e),
+ Emojicon.fromCodePoint(0x1f392),
+ Emojicon.fromCodePoint(0x1f393),
+ Emojicon.fromCodePoint(0x1f38f),
+ Emojicon.fromCodePoint(0x1f386),
+ Emojicon.fromCodePoint(0x1f387),
+ Emojicon.fromCodePoint(0x1f390),
+ Emojicon.fromCodePoint(0x1f391),
+ Emojicon.fromCodePoint(0x1f383),
+ Emojicon.fromCodePoint(0x1f47b),
+ Emojicon.fromCodePoint(0x1f385),
+ Emojicon.fromCodePoint(0x1f384),
+ Emojicon.fromCodePoint(0x1f381),
+ Emojicon.fromCodePoint(0x1f38b),
+ Emojicon.fromCodePoint(0x1f389),
+ Emojicon.fromCodePoint(0x1f38a),
+ Emojicon.fromCodePoint(0x1f388),
+ Emojicon.fromCodePoint(0x1f38c),
+ Emojicon.fromCodePoint(0x1f52e),
+ Emojicon.fromCodePoint(0x1f3a5),
+ Emojicon.fromCodePoint(0x1f4f7),
+ Emojicon.fromCodePoint(0x1f4f9),
+ Emojicon.fromCodePoint(0x1f4fc),
+ Emojicon.fromCodePoint(0x1f4bf),
+ Emojicon.fromCodePoint(0x1f4c0),
+ Emojicon.fromCodePoint(0x1f4bd),
+ Emojicon.fromCodePoint(0x1f4be),
+ Emojicon.fromCodePoint(0x1f4bb),
+ Emojicon.fromCodePoint(0x1f4f1),
+ Emojicon.fromChar((char) 0x260e),
+ Emojicon.fromCodePoint(0x1f4de),
+ Emojicon.fromCodePoint(0x1f4df),
+ Emojicon.fromCodePoint(0x1f4e0),
+ Emojicon.fromCodePoint(0x1f4e1),
+ Emojicon.fromCodePoint(0x1f4fa),
+ Emojicon.fromCodePoint(0x1f4fb),
+ Emojicon.fromCodePoint(0x1f508),
+ Emojicon.fromCodePoint(0x1f509),
+ Emojicon.fromCodePoint(0x1f50a),
+ Emojicon.fromCodePoint(0x1f507),
+ Emojicon.fromCodePoint(0x1f514),
+ Emojicon.fromCodePoint(0x1f515),
+ Emojicon.fromCodePoint(0x1f4e2),
+ Emojicon.fromCodePoint(0x1f4e3),
+ Emojicon.fromChar((char) 0x23f3),
+ Emojicon.fromChar((char) 0x231b),
+ Emojicon.fromChar((char) 0x23f0),
+ Emojicon.fromChar((char) 0x231a),
+ Emojicon.fromCodePoint(0x1f513),
+ Emojicon.fromCodePoint(0x1f512),
+ Emojicon.fromCodePoint(0x1f50f),
+ Emojicon.fromCodePoint(0x1f510),
+ Emojicon.fromCodePoint(0x1f511),
+ Emojicon.fromCodePoint(0x1f50e),
+ Emojicon.fromCodePoint(0x1f4a1),
+ Emojicon.fromCodePoint(0x1f526),
+ Emojicon.fromCodePoint(0x1f506),
+ Emojicon.fromCodePoint(0x1f505),
+ Emojicon.fromCodePoint(0x1f50c),
+ Emojicon.fromCodePoint(0x1f50b),
+ Emojicon.fromCodePoint(0x1f50d),
+ Emojicon.fromCodePoint(0x1f6c1),
+ Emojicon.fromCodePoint(0x1f6c0),
+ Emojicon.fromCodePoint(0x1f6bf),
+ Emojicon.fromCodePoint(0x1f6bd),
+ Emojicon.fromCodePoint(0x1f527),
+ Emojicon.fromCodePoint(0x1f529),
+ Emojicon.fromCodePoint(0x1f528),
+ Emojicon.fromCodePoint(0x1f6aa),
+ Emojicon.fromCodePoint(0x1f6ac),
+ Emojicon.fromCodePoint(0x1f4a3),
+ Emojicon.fromCodePoint(0x1f52b),
+ Emojicon.fromCodePoint(0x1f52a),
+ Emojicon.fromCodePoint(0x1f48a),
+ Emojicon.fromCodePoint(0x1f489),
+ Emojicon.fromCodePoint(0x1f4b0),
+ Emojicon.fromCodePoint(0x1f4b4),
+ Emojicon.fromCodePoint(0x1f4b5),
+ Emojicon.fromCodePoint(0x1f4b7),
+ Emojicon.fromCodePoint(0x1f4b6),
+ Emojicon.fromCodePoint(0x1f4b3),
+ Emojicon.fromCodePoint(0x1f4b8),
+ Emojicon.fromCodePoint(0x1f4f2),
+ Emojicon.fromCodePoint(0x1f4e7),
+ Emojicon.fromCodePoint(0x1f4e5),
+ Emojicon.fromCodePoint(0x1f4e4),
+ Emojicon.fromChar((char) 0x2709),
+ Emojicon.fromCodePoint(0x1f4e9),
+ Emojicon.fromCodePoint(0x1f4e8),
+ Emojicon.fromCodePoint(0x1f4ef),
+ Emojicon.fromCodePoint(0x1f4eb),
+ Emojicon.fromCodePoint(0x1f4ea),
+ Emojicon.fromCodePoint(0x1f4ec),
+ Emojicon.fromCodePoint(0x1f4ed),
+ Emojicon.fromCodePoint(0x1f4ee),
+ Emojicon.fromCodePoint(0x1f4e6),
+ Emojicon.fromCodePoint(0x1f4dd),
+ Emojicon.fromCodePoint(0x1f4c4),
+ Emojicon.fromCodePoint(0x1f4c3),
+ Emojicon.fromCodePoint(0x1f4d1),
+ Emojicon.fromCodePoint(0x1f4ca),
+ Emojicon.fromCodePoint(0x1f4c8),
+ Emojicon.fromCodePoint(0x1f4c9),
+ Emojicon.fromCodePoint(0x1f4dc),
+ Emojicon.fromCodePoint(0x1f4cb),
+ Emojicon.fromCodePoint(0x1f4c5),
+ Emojicon.fromCodePoint(0x1f4c6),
+ Emojicon.fromCodePoint(0x1f4c7),
+ Emojicon.fromCodePoint(0x1f4c1),
+ Emojicon.fromCodePoint(0x1f4c2),
+ Emojicon.fromChar((char) 0x2702),
+ Emojicon.fromCodePoint(0x1f4cc),
+ Emojicon.fromCodePoint(0x1f4ce),
+ Emojicon.fromChar((char) 0x2712),
+ Emojicon.fromChar((char) 0x270f),
+ Emojicon.fromCodePoint(0x1f4cf),
+ Emojicon.fromCodePoint(0x1f4d0),
+ Emojicon.fromCodePoint(0x1f4d5),
+ Emojicon.fromCodePoint(0x1f4d7),
+ Emojicon.fromCodePoint(0x1f4d8),
+ Emojicon.fromCodePoint(0x1f4d9),
+ Emojicon.fromCodePoint(0x1f4d3),
+ Emojicon.fromCodePoint(0x1f4d4),
+ Emojicon.fromCodePoint(0x1f4d2),
+ Emojicon.fromCodePoint(0x1f4da),
+ Emojicon.fromCodePoint(0x1f4d6),
+ Emojicon.fromCodePoint(0x1f516),
+ Emojicon.fromCodePoint(0x1f4db),
+ Emojicon.fromCodePoint(0x1f52c),
+ Emojicon.fromCodePoint(0x1f52d),
+ Emojicon.fromCodePoint(0x1f4f0),
+ Emojicon.fromCodePoint(0x1f3a8),
+ Emojicon.fromCodePoint(0x1f3ac),
+ Emojicon.fromCodePoint(0x1f3a4),
+ Emojicon.fromCodePoint(0x1f3a7),
+ Emojicon.fromCodePoint(0x1f3bc),
+ Emojicon.fromCodePoint(0x1f3b5),
+ Emojicon.fromCodePoint(0x1f3b6),
+ Emojicon.fromCodePoint(0x1f3b9),
+ Emojicon.fromCodePoint(0x1f3bb),
+ Emojicon.fromCodePoint(0x1f3ba),
+ Emojicon.fromCodePoint(0x1f3b7),
+ Emojicon.fromCodePoint(0x1f3b8),
+ Emojicon.fromCodePoint(0x1f47e),
+ Emojicon.fromCodePoint(0x1f3ae),
+ Emojicon.fromCodePoint(0x1f0cf),
+ Emojicon.fromCodePoint(0x1f3b4),
+ Emojicon.fromCodePoint(0x1f004),
+ Emojicon.fromCodePoint(0x1f3b2),
+ Emojicon.fromCodePoint(0x1f3af),
+ Emojicon.fromCodePoint(0x1f3c8),
+ Emojicon.fromCodePoint(0x1f3c0),
+ Emojicon.fromChar((char) 0x26bd),
+ Emojicon.fromChar((char) 0x26be),
+ Emojicon.fromCodePoint(0x1f3be),
+ Emojicon.fromCodePoint(0x1f3b1),
+ Emojicon.fromCodePoint(0x1f3c9),
+ Emojicon.fromCodePoint(0x1f3b3),
+ Emojicon.fromChar((char) 0x26f3),
+ Emojicon.fromCodePoint(0x1f6b5),
+ Emojicon.fromCodePoint(0x1f6b4),
+ Emojicon.fromCodePoint(0x1f3c1),
+ Emojicon.fromCodePoint(0x1f3c7),
+ Emojicon.fromCodePoint(0x1f3c6),
+ Emojicon.fromCodePoint(0x1f3bf),
+ Emojicon.fromCodePoint(0x1f3c2),
+ Emojicon.fromCodePoint(0x1f3ca),
+ Emojicon.fromCodePoint(0x1f3c4),
+ Emojicon.fromCodePoint(0x1f3a3),
+ Emojicon.fromChar((char) 0x2615),
+ Emojicon.fromCodePoint(0x1f375),
+ Emojicon.fromCodePoint(0x1f376),
+ Emojicon.fromCodePoint(0x1f37c),
+ Emojicon.fromCodePoint(0x1f37a),
+ Emojicon.fromCodePoint(0x1f37b),
+ Emojicon.fromCodePoint(0x1f378),
+ Emojicon.fromCodePoint(0x1f379),
+ Emojicon.fromCodePoint(0x1f377),
+ Emojicon.fromCodePoint(0x1f374),
+ Emojicon.fromCodePoint(0x1f355),
+ Emojicon.fromCodePoint(0x1f354),
+ Emojicon.fromCodePoint(0x1f35f),
+ Emojicon.fromCodePoint(0x1f357),
+ Emojicon.fromCodePoint(0x1f356),
+ Emojicon.fromCodePoint(0x1f35d),
+ Emojicon.fromCodePoint(0x1f35b),
+ Emojicon.fromCodePoint(0x1f364),
+ Emojicon.fromCodePoint(0x1f371),
+ Emojicon.fromCodePoint(0x1f363),
+ Emojicon.fromCodePoint(0x1f365),
+ Emojicon.fromCodePoint(0x1f359),
+ Emojicon.fromCodePoint(0x1f358),
+ Emojicon.fromCodePoint(0x1f35a),
+ Emojicon.fromCodePoint(0x1f35c),
+ Emojicon.fromCodePoint(0x1f372),
+ Emojicon.fromCodePoint(0x1f362),
+ Emojicon.fromCodePoint(0x1f361),
+ Emojicon.fromCodePoint(0x1f373),
+ Emojicon.fromCodePoint(0x1f35e),
+ Emojicon.fromCodePoint(0x1f369),
+ Emojicon.fromCodePoint(0x1f36e),
+ Emojicon.fromCodePoint(0x1f366),
+ Emojicon.fromCodePoint(0x1f368),
+ Emojicon.fromCodePoint(0x1f367),
+ Emojicon.fromCodePoint(0x1f382),
+ Emojicon.fromCodePoint(0x1f370),
+ Emojicon.fromCodePoint(0x1f36a),
+ Emojicon.fromCodePoint(0x1f36b),
+ Emojicon.fromCodePoint(0x1f36c),
+ Emojicon.fromCodePoint(0x1f36d),
+ Emojicon.fromCodePoint(0x1f36f),
+ Emojicon.fromCodePoint(0x1f34e),
+ Emojicon.fromCodePoint(0x1f34f),
+ Emojicon.fromCodePoint(0x1f34a),
+ Emojicon.fromCodePoint(0x1f34b),
+ Emojicon.fromCodePoint(0x1f352),
+ Emojicon.fromCodePoint(0x1f347),
+ Emojicon.fromCodePoint(0x1f349),
+ Emojicon.fromCodePoint(0x1f353),
+ Emojicon.fromCodePoint(0x1f351),
+ Emojicon.fromCodePoint(0x1f348),
+ Emojicon.fromCodePoint(0x1f34c),
+ Emojicon.fromCodePoint(0x1f350),
+ Emojicon.fromCodePoint(0x1f34d),
+ Emojicon.fromCodePoint(0x1f360),
+ Emojicon.fromCodePoint(0x1f346),
+ Emojicon.fromCodePoint(0x1f345),
+ Emojicon.fromCodePoint(0x1f33d),
+ };
+}
diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/People.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/People.java
new file mode 100644
index 00000000..93e34f59
--- /dev/null
+++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/People.java
@@ -0,0 +1,214 @@
+/*
+ * Copyright 2014 Ankush Sachdeva
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package github.ankushsachdeva.emojicon.emoji;
+
+/**
+ * @author Hieu Rocker (rockerhieu@gmail.com)
+ */
+public class People {
+ public static final Emojicon[] DATA = new Emojicon[]{
+ Emojicon.fromCodePoint(0x1f604),
+ Emojicon.fromCodePoint(0x1f603),
+ Emojicon.fromCodePoint(0x1f600),
+ Emojicon.fromCodePoint(0x1f60a),
+ Emojicon.fromChar((char) 0x263a),
+ Emojicon.fromCodePoint(0x1f609),
+ Emojicon.fromCodePoint(0x1f60d),
+ Emojicon.fromCodePoint(0x1f618),
+ Emojicon.fromCodePoint(0x1f61a),
+ Emojicon.fromCodePoint(0x1f617),
+ Emojicon.fromCodePoint(0x1f619),
+ Emojicon.fromCodePoint(0x1f61c),
+ Emojicon.fromCodePoint(0x1f61d),
+ Emojicon.fromCodePoint(0x1f61b),
+ Emojicon.fromCodePoint(0x1f633),
+ Emojicon.fromCodePoint(0x1f601),
+ Emojicon.fromCodePoint(0x1f614),
+ Emojicon.fromCodePoint(0x1f60c),
+ Emojicon.fromCodePoint(0x1f612),
+ Emojicon.fromCodePoint(0x1f61e),
+ Emojicon.fromCodePoint(0x1f623),
+ Emojicon.fromCodePoint(0x1f622),
+ Emojicon.fromCodePoint(0x1f602),
+ Emojicon.fromCodePoint(0x1f62d),
+ Emojicon.fromCodePoint(0x1f62a),
+ Emojicon.fromCodePoint(0x1f625),
+ Emojicon.fromCodePoint(0x1f630),
+ Emojicon.fromCodePoint(0x1f605),
+ Emojicon.fromCodePoint(0x1f613),
+ Emojicon.fromCodePoint(0x1f629),
+ Emojicon.fromCodePoint(0x1f62b),
+ Emojicon.fromCodePoint(0x1f628),
+ Emojicon.fromCodePoint(0x1f631),
+ Emojicon.fromCodePoint(0x1f620),
+ Emojicon.fromCodePoint(0x1f621),
+ Emojicon.fromCodePoint(0x1f624),
+ Emojicon.fromCodePoint(0x1f616),
+ Emojicon.fromCodePoint(0x1f606),
+ Emojicon.fromCodePoint(0x1f60b),
+ Emojicon.fromCodePoint(0x1f637),
+ Emojicon.fromCodePoint(0x1f60e),
+ Emojicon.fromCodePoint(0x1f634),
+ Emojicon.fromCodePoint(0x1f635),
+ Emojicon.fromCodePoint(0x1f632),
+ Emojicon.fromCodePoint(0x1f61f),
+ Emojicon.fromCodePoint(0x1f626),
+ Emojicon.fromCodePoint(0x1f627),
+ Emojicon.fromCodePoint(0x1f608),
+ Emojicon.fromCodePoint(0x1f47f),
+ Emojicon.fromCodePoint(0x1f62e),
+ Emojicon.fromCodePoint(0x1f62c),
+ Emojicon.fromCodePoint(0x1f610),
+ Emojicon.fromCodePoint(0x1f615),
+ Emojicon.fromCodePoint(0x1f62f),
+ Emojicon.fromCodePoint(0x1f636),
+ Emojicon.fromCodePoint(0x1f607),
+ Emojicon.fromCodePoint(0x1f60f),
+ Emojicon.fromCodePoint(0x1f611),
+ Emojicon.fromCodePoint(0x1f472),
+ Emojicon.fromCodePoint(0x1f473),
+ Emojicon.fromCodePoint(0x1f46e),
+ Emojicon.fromCodePoint(0x1f477),
+ Emojicon.fromCodePoint(0x1f482),
+ Emojicon.fromCodePoint(0x1f476),
+ Emojicon.fromCodePoint(0x1f466),
+ Emojicon.fromCodePoint(0x1f467),
+ Emojicon.fromCodePoint(0x1f468),
+ Emojicon.fromCodePoint(0x1f469),
+ Emojicon.fromCodePoint(0x1f474),
+ Emojicon.fromCodePoint(0x1f475),
+ Emojicon.fromCodePoint(0x1f471),
+ Emojicon.fromCodePoint(0x1f47c),
+ Emojicon.fromCodePoint(0x1f478),
+ Emojicon.fromCodePoint(0x1f63a),
+ Emojicon.fromCodePoint(0x1f638),
+ Emojicon.fromCodePoint(0x1f63b),
+ Emojicon.fromCodePoint(0x1f63d),
+ Emojicon.fromCodePoint(0x1f63c),
+ Emojicon.fromCodePoint(0x1f640),
+ Emojicon.fromCodePoint(0x1f63f),
+ Emojicon.fromCodePoint(0x1f639),
+ Emojicon.fromCodePoint(0x1f63e),
+ Emojicon.fromCodePoint(0x1f479),
+ Emojicon.fromCodePoint(0x1f47a),
+ Emojicon.fromCodePoint(0x1f648),
+ Emojicon.fromCodePoint(0x1f649),
+ Emojicon.fromCodePoint(0x1f64a),
+ Emojicon.fromCodePoint(0x1f480),
+ Emojicon.fromCodePoint(0x1f47d),
+ Emojicon.fromCodePoint(0x1f4a9),
+ Emojicon.fromCodePoint(0x1f525),
+ Emojicon.fromChar((char) 0x2728),
+ Emojicon.fromCodePoint(0x1f31f),
+ Emojicon.fromCodePoint(0x1f4ab),
+ Emojicon.fromCodePoint(0x1f4a5),
+ Emojicon.fromCodePoint(0x1f4a2),
+ Emojicon.fromCodePoint(0x1f4a6),
+ Emojicon.fromCodePoint(0x1f4a7),
+ Emojicon.fromCodePoint(0x1f4a4),
+ Emojicon.fromCodePoint(0x1f4a8),
+ Emojicon.fromCodePoint(0x1f442),
+ Emojicon.fromCodePoint(0x1f440),
+ Emojicon.fromCodePoint(0x1f443),
+ Emojicon.fromCodePoint(0x1f445),
+ Emojicon.fromCodePoint(0x1f444),
+ Emojicon.fromCodePoint(0x1f44d),
+ Emojicon.fromCodePoint(0x1f44e),
+ Emojicon.fromCodePoint(0x1f44c),
+ Emojicon.fromCodePoint(0x1f44a),
+ Emojicon.fromChar((char) 0x270a),
+ Emojicon.fromChar((char) 0x270c),
+ Emojicon.fromCodePoint(0x1f44b),
+ Emojicon.fromChar((char) 0x270b),
+ Emojicon.fromCodePoint(0x1f450),
+ Emojicon.fromCodePoint(0x1f446),
+ Emojicon.fromCodePoint(0x1f447),
+ Emojicon.fromCodePoint(0x1f449),
+ Emojicon.fromCodePoint(0x1f448),
+ Emojicon.fromCodePoint(0x1f64c),
+ Emojicon.fromCodePoint(0x1f64f),
+ Emojicon.fromChar((char) 0x261d),
+ Emojicon.fromCodePoint(0x1f44f),
+ Emojicon.fromCodePoint(0x1f4aa),
+ Emojicon.fromCodePoint(0x1f6b6),
+ Emojicon.fromCodePoint(0x1f3c3),
+ Emojicon.fromCodePoint(0x1f483),
+ Emojicon.fromCodePoint(0x1f46b),
+ Emojicon.fromCodePoint(0x1f46a),
+ Emojicon.fromCodePoint(0x1f46c),
+ Emojicon.fromCodePoint(0x1f46d),
+ Emojicon.fromCodePoint(0x1f48f),
+ Emojicon.fromCodePoint(0x1f491),
+ Emojicon.fromCodePoint(0x1f46f),
+ Emojicon.fromCodePoint(0x1f646),
+ Emojicon.fromCodePoint(0x1f645),
+ Emojicon.fromCodePoint(0x1f481),
+ Emojicon.fromCodePoint(0x1f64b),
+ Emojicon.fromCodePoint(0x1f486),
+ Emojicon.fromCodePoint(0x1f487),
+ Emojicon.fromCodePoint(0x1f485),
+ Emojicon.fromCodePoint(0x1f470),
+ Emojicon.fromCodePoint(0x1f64e),
+ Emojicon.fromCodePoint(0x1f64d),
+ Emojicon.fromCodePoint(0x1f647),
+ Emojicon.fromCodePoint(0x1f3a9),
+ Emojicon.fromCodePoint(0x1f451),
+ Emojicon.fromCodePoint(0x1f452),
+ Emojicon.fromCodePoint(0x1f45f),
+ Emojicon.fromCodePoint(0x1f45e),
+ Emojicon.fromCodePoint(0x1f461),
+ Emojicon.fromCodePoint(0x1f460),
+ Emojicon.fromCodePoint(0x1f462),
+ Emojicon.fromCodePoint(0x1f455),
+ Emojicon.fromCodePoint(0x1f454),
+ Emojicon.fromCodePoint(0x1f45a),
+ Emojicon.fromCodePoint(0x1f457),
+ Emojicon.fromCodePoint(0x1f3bd),
+ Emojicon.fromCodePoint(0x1f456),
+ Emojicon.fromCodePoint(0x1f458),
+ Emojicon.fromCodePoint(0x1f459),
+ Emojicon.fromCodePoint(0x1f4bc),
+ Emojicon.fromCodePoint(0x1f45c),
+ Emojicon.fromCodePoint(0x1f45d),
+ Emojicon.fromCodePoint(0x1f45b),
+ Emojicon.fromCodePoint(0x1f453),
+ Emojicon.fromCodePoint(0x1f380),
+ Emojicon.fromCodePoint(0x1f302),
+ Emojicon.fromCodePoint(0x1f484),
+ Emojicon.fromCodePoint(0x1f49b),
+ Emojicon.fromCodePoint(0x1f499),
+ Emojicon.fromCodePoint(0x1f49c),
+ Emojicon.fromCodePoint(0x1f49a),
+ Emojicon.fromChar((char) 0x2764),
+ Emojicon.fromCodePoint(0x1f494),
+ Emojicon.fromCodePoint(0x1f497),
+ Emojicon.fromCodePoint(0x1f493),
+ Emojicon.fromCodePoint(0x1f495),
+ Emojicon.fromCodePoint(0x1f496),
+ Emojicon.fromCodePoint(0x1f49e),
+ Emojicon.fromCodePoint(0x1f498),
+ Emojicon.fromCodePoint(0x1f48c),
+ Emojicon.fromCodePoint(0x1f48b),
+ Emojicon.fromCodePoint(0x1f48d),
+ Emojicon.fromCodePoint(0x1f48e),
+ Emojicon.fromCodePoint(0x1f464),
+ Emojicon.fromCodePoint(0x1f465),
+ Emojicon.fromCodePoint(0x1f4ac),
+ Emojicon.fromCodePoint(0x1f463),
+ Emojicon.fromCodePoint(0x1f4ad),
+ };
+}
diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/Places.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/Places.java
new file mode 100644
index 00000000..cf2f0e5a
--- /dev/null
+++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/Places.java
@@ -0,0 +1,126 @@
+/*
+ * Copyright 2014 Ankush Sachdeva
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package github.ankushsachdeva.emojicon.emoji;
+
+/**
+ * @author Hieu Rocker (rockerhieu@gmail.com)
+ */
+public class Places {
+ public static final Emojicon[] DATA = new Emojicon[]{
+ Emojicon.fromCodePoint(0x1f3e0),
+ Emojicon.fromCodePoint(0x1f3e1),
+ Emojicon.fromCodePoint(0x1f3eb),
+ Emojicon.fromCodePoint(0x1f3e2),
+ Emojicon.fromCodePoint(0x1f3e3),
+ Emojicon.fromCodePoint(0x1f3e5),
+ Emojicon.fromCodePoint(0x1f3e6),
+ Emojicon.fromCodePoint(0x1f3ea),
+ Emojicon.fromCodePoint(0x1f3e9),
+ Emojicon.fromCodePoint(0x1f3e8),
+ Emojicon.fromCodePoint(0x1f492),
+ Emojicon.fromChar((char) 0x26ea),
+ Emojicon.fromCodePoint(0x1f3ec),
+ Emojicon.fromCodePoint(0x1f3e4),
+ Emojicon.fromCodePoint(0x1f307),
+ Emojicon.fromCodePoint(0x1f306),
+ Emojicon.fromCodePoint(0x1f3ef),
+ Emojicon.fromCodePoint(0x1f3f0),
+ Emojicon.fromChar((char) 0x26fa),
+ Emojicon.fromCodePoint(0x1f3ed),
+ Emojicon.fromCodePoint(0x1f5fc),
+ Emojicon.fromCodePoint(0x1f5fe),
+ Emojicon.fromCodePoint(0x1f5fb),
+ Emojicon.fromCodePoint(0x1f304),
+ Emojicon.fromCodePoint(0x1f305),
+ Emojicon.fromCodePoint(0x1f303),
+ Emojicon.fromCodePoint(0x1f5fd),
+ Emojicon.fromCodePoint(0x1f309),
+ Emojicon.fromCodePoint(0x1f3a0),
+ Emojicon.fromCodePoint(0x1f3a1),
+ Emojicon.fromChar((char) 0x26f2),
+ Emojicon.fromCodePoint(0x1f3a2),
+ Emojicon.fromCodePoint(0x1f6a2),
+ Emojicon.fromChar((char) 0x26f5),
+ Emojicon.fromCodePoint(0x1f6a4),
+ Emojicon.fromCodePoint(0x1f6a3),
+ Emojicon.fromChar((char) 0x2693),
+ Emojicon.fromCodePoint(0x1f680),
+ Emojicon.fromChar((char) 0x2708),
+ Emojicon.fromCodePoint(0x1f4ba),
+ Emojicon.fromCodePoint(0x1f681),
+ Emojicon.fromCodePoint(0x1f682),
+ Emojicon.fromCodePoint(0x1f68a),
+ Emojicon.fromCodePoint(0x1f689),
+ Emojicon.fromCodePoint(0x1f69e),
+ Emojicon.fromCodePoint(0x1f686),
+ Emojicon.fromCodePoint(0x1f684),
+ Emojicon.fromCodePoint(0x1f685),
+ Emojicon.fromCodePoint(0x1f688),
+ Emojicon.fromCodePoint(0x1f687),
+ Emojicon.fromCodePoint(0x1f69d),
+ Emojicon.fromCodePoint(0x1f68b),
+ Emojicon.fromCodePoint(0x1f683),
+ Emojicon.fromCodePoint(0x1f68e),
+ Emojicon.fromCodePoint(0x1f68c),
+ Emojicon.fromCodePoint(0x1f68d),
+ Emojicon.fromCodePoint(0x1f699),
+ Emojicon.fromCodePoint(0x1f698),
+ Emojicon.fromCodePoint(0x1f697),
+ Emojicon.fromCodePoint(0x1f695),
+ Emojicon.fromCodePoint(0x1f696),
+ Emojicon.fromCodePoint(0x1f69b),
+ Emojicon.fromCodePoint(0x1f69a),
+ Emojicon.fromCodePoint(0x1f6a8),
+ Emojicon.fromCodePoint(0x1f693),
+ Emojicon.fromCodePoint(0x1f694),
+ Emojicon.fromCodePoint(0x1f692),
+ Emojicon.fromCodePoint(0x1f691),
+ Emojicon.fromCodePoint(0x1f690),
+ Emojicon.fromCodePoint(0x1f6b2),
+ Emojicon.fromCodePoint(0x1f6a1),
+ Emojicon.fromCodePoint(0x1f69f),
+ Emojicon.fromCodePoint(0x1f6a0),
+ Emojicon.fromCodePoint(0x1f69c),
+ Emojicon.fromCodePoint(0x1f488),
+ Emojicon.fromCodePoint(0x1f68f),
+ Emojicon.fromCodePoint(0x1f3ab),
+ Emojicon.fromCodePoint(0x1f6a6),
+ Emojicon.fromCodePoint(0x1f6a5),
+ Emojicon.fromChar((char) 0x26a0),
+ Emojicon.fromCodePoint(0x1f6a7),
+ Emojicon.fromCodePoint(0x1f530),
+ Emojicon.fromChar((char) 0x26fd),
+ Emojicon.fromCodePoint(0x1f3ee),
+ Emojicon.fromCodePoint(0x1f3b0),
+ Emojicon.fromChar((char) 0x2668),
+ Emojicon.fromCodePoint(0x1f5ff),
+ Emojicon.fromCodePoint(0x1f3aa),
+ Emojicon.fromCodePoint(0x1f3ad),
+ Emojicon.fromCodePoint(0x1f4cd),
+ Emojicon.fromCodePoint(0x1f6a9),
+ Emojicon.fromChars("\ud83c\uddef\ud83c\uddf5"),
+ Emojicon.fromChars("\ud83c\uddf0\ud83c\uddf7"),
+ Emojicon.fromChars("\ud83c\udde9\ud83c\uddea"),
+ Emojicon.fromChars("\ud83c\udde8\ud83c\uddf3"),
+ Emojicon.fromChars("\ud83c\uddfa\ud83c\uddf8"),
+ Emojicon.fromChars("\ud83c\uddeb\ud83c\uddf7"),
+ Emojicon.fromChars("\ud83c\uddea\ud83c\uddf8"),
+ Emojicon.fromChars("\ud83c\uddee\ud83c\uddf9"),
+ Emojicon.fromChars("\ud83c\uddf7\ud83c\uddfa"),
+ Emojicon.fromChars("\ud83c\uddec\ud83c\udde7"),
+ };
+}
diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/Symbols.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/Symbols.java
new file mode 100644
index 00000000..b81c322f
--- /dev/null
+++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/emoji/Symbols.java
@@ -0,0 +1,237 @@
+/*
+ * Copyright 2014 Ankush Sachdeva
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package github.ankushsachdeva.emojicon.emoji;
+
+/**
+ * @author Hieu Rocker (rockerhieu@gmail.com)
+ */
+public class Symbols {
+ public static final Emojicon[] DATA = new Emojicon[]{
+ Emojicon.fromChars("\u0031\u20e3"),
+ Emojicon.fromChars("\u0032\u20e3"),
+ Emojicon.fromChars("\u0033\u20e3"),
+ Emojicon.fromChars("\u0034\u20e3"),
+ Emojicon.fromChars("\u0035\u20e3"),
+ Emojicon.fromChars("\u0036\u20e3"),
+ Emojicon.fromChars("\u0037\u20e3"),
+ Emojicon.fromChars("\u0038\u20e3"),
+ Emojicon.fromChars("\u0039\u20e3"),
+ Emojicon.fromChars("\u0030\u20e3"),
+ Emojicon.fromCodePoint(0x1f51f),
+ Emojicon.fromCodePoint(0x1f522),
+ Emojicon.fromChars("\u0023\u20e3"),
+ Emojicon.fromCodePoint(0x1f523),
+ Emojicon.fromChar((char) 0x2b06),
+ Emojicon.fromChar((char) 0x2b07),
+ Emojicon.fromChar((char) 0x2b05),
+ Emojicon.fromChar((char) 0x27a1),
+ Emojicon.fromCodePoint(0x1f520),
+ Emojicon.fromCodePoint(0x1f521),
+ Emojicon.fromCodePoint(0x1f524),
+ Emojicon.fromChar((char) 0x2197),
+ Emojicon.fromChar((char) 0x2196),
+ Emojicon.fromChar((char) 0x2198),
+ Emojicon.fromChar((char) 0x2199),
+ Emojicon.fromChar((char) 0x2194),
+ Emojicon.fromChar((char) 0x2195),
+ Emojicon.fromCodePoint(0x1f504),
+ Emojicon.fromChar((char) 0x25c0),
+ Emojicon.fromChar((char) 0x25b6),
+ Emojicon.fromCodePoint(0x1f53c),
+ Emojicon.fromCodePoint(0x1f53d),
+ Emojicon.fromChar((char) 0x21a9),
+ Emojicon.fromChar((char) 0x21aa),
+ Emojicon.fromChar((char) 0x2139),
+ Emojicon.fromChar((char) 0x23ea),
+ Emojicon.fromChar((char) 0x23e9),
+ Emojicon.fromChar((char) 0x23eb),
+ Emojicon.fromChar((char) 0x23ec),
+ Emojicon.fromChar((char) 0x2935),
+ Emojicon.fromChar((char) 0x2934),
+ Emojicon.fromCodePoint(0x1f197),
+ Emojicon.fromCodePoint(0x1f500),
+ Emojicon.fromCodePoint(0x1f501),
+ Emojicon.fromCodePoint(0x1f502),
+ Emojicon.fromCodePoint(0x1f195),
+ Emojicon.fromCodePoint(0x1f199),
+ Emojicon.fromCodePoint(0x1f192),
+ Emojicon.fromCodePoint(0x1f193),
+ Emojicon.fromCodePoint(0x1f196),
+ Emojicon.fromCodePoint(0x1f4f6),
+ Emojicon.fromCodePoint(0x1f3a6),
+ Emojicon.fromCodePoint(0x1f201),
+ Emojicon.fromCodePoint(0x1f22f),
+ Emojicon.fromCodePoint(0x1f233),
+ Emojicon.fromCodePoint(0x1f235),
+ Emojicon.fromCodePoint(0x1f234),
+ Emojicon.fromCodePoint(0x1f232),
+ Emojicon.fromCodePoint(0x1f250),
+ Emojicon.fromCodePoint(0x1f239),
+ Emojicon.fromCodePoint(0x1f23a),
+ Emojicon.fromCodePoint(0x1f236),
+ Emojicon.fromCodePoint(0x1f21a),
+ Emojicon.fromCodePoint(0x1f6bb),
+ Emojicon.fromCodePoint(0x1f6b9),
+ Emojicon.fromCodePoint(0x1f6ba),
+ Emojicon.fromCodePoint(0x1f6bc),
+ Emojicon.fromCodePoint(0x1f6be),
+ Emojicon.fromCodePoint(0x1f6b0),
+ Emojicon.fromCodePoint(0x1f6ae),
+ Emojicon.fromCodePoint(0x1f17f),
+ Emojicon.fromChar((char) 0x267f),
+ Emojicon.fromCodePoint(0x1f6ad),
+ Emojicon.fromCodePoint(0x1f237),
+ Emojicon.fromCodePoint(0x1f238),
+ Emojicon.fromCodePoint(0x1f202),
+ Emojicon.fromChar((char) 0x24c2),
+ Emojicon.fromCodePoint(0x1f6c2),
+ Emojicon.fromCodePoint(0x1f6c4),
+ Emojicon.fromCodePoint(0x1f6c5),
+ Emojicon.fromCodePoint(0x1f6c3),
+ Emojicon.fromCodePoint(0x1f251),
+ Emojicon.fromChar((char) 0x3299),
+ Emojicon.fromChar((char) 0x3297),
+ Emojicon.fromCodePoint(0x1f191),
+ Emojicon.fromCodePoint(0x1f198),
+ Emojicon.fromCodePoint(0x1f194),
+ Emojicon.fromCodePoint(0x1f6ab),
+ Emojicon.fromCodePoint(0x1f51e),
+ Emojicon.fromCodePoint(0x1f4f5),
+ Emojicon.fromCodePoint(0x1f6af),
+ Emojicon.fromCodePoint(0x1f6b1),
+ Emojicon.fromCodePoint(0x1f6b3),
+ Emojicon.fromCodePoint(0x1f6b7),
+ Emojicon.fromCodePoint(0x1f6b8),
+ Emojicon.fromChar((char) 0x26d4),
+ Emojicon.fromChar((char) 0x2733),
+ Emojicon.fromChar((char) 0x2747),
+ Emojicon.fromChar((char) 0x274e),
+ Emojicon.fromChar((char) 0x2705),
+ Emojicon.fromChar((char) 0x2734),
+ Emojicon.fromCodePoint(0x1f49f),
+ Emojicon.fromCodePoint(0x1f19a),
+ Emojicon.fromCodePoint(0x1f4f3),
+ Emojicon.fromCodePoint(0x1f4f4),
+ Emojicon.fromCodePoint(0x1f170),
+ Emojicon.fromCodePoint(0x1f171),
+ Emojicon.fromCodePoint(0x1f18e),
+ Emojicon.fromCodePoint(0x1f17e),
+ Emojicon.fromCodePoint(0x1f4a0),
+ Emojicon.fromChar((char) 0x27bf),
+ Emojicon.fromChar((char) 0x267b),
+ Emojicon.fromChar((char) 0x2648),
+ Emojicon.fromChar((char) 0x2649),
+ Emojicon.fromChar((char) 0x264a),
+ Emojicon.fromChar((char) 0x264b),
+ Emojicon.fromChar((char) 0x264c),
+ Emojicon.fromChar((char) 0x264d),
+ Emojicon.fromChar((char) 0x264e),
+ Emojicon.fromChar((char) 0x264f),
+ Emojicon.fromChar((char) 0x2650),
+ Emojicon.fromChar((char) 0x2651),
+ Emojicon.fromChar((char) 0x2652),
+ Emojicon.fromChar((char) 0x2653),
+ Emojicon.fromChar((char) 0x26ce),
+ Emojicon.fromCodePoint(0x1f52f),
+ Emojicon.fromCodePoint(0x1f3e7),
+ Emojicon.fromCodePoint(0x1f4b9),
+ Emojicon.fromCodePoint(0x1f4b2),
+ Emojicon.fromCodePoint(0x1f4b1),
+// Emoji.fromChar((char)0x00a9),
+// Emoji.fromChar((char)0x00ae),
+ Emojicon.fromChar((char) 0xe24e),
+ Emojicon.fromChar((char) 0xe24f),
+
+ Emojicon.fromChar((char) 0x2122),
+ Emojicon.fromChar((char) 0x274c),
+ Emojicon.fromChar((char) 0x203c),
+ Emojicon.fromChar((char) 0x2049),
+ Emojicon.fromChar((char) 0x2757),
+ Emojicon.fromChar((char) 0x2753),
+ Emojicon.fromChar((char) 0x2755),
+ Emojicon.fromChar((char) 0x2754),
+ Emojicon.fromChar((char) 0x2b55),
+ Emojicon.fromCodePoint(0x1f51d),
+ Emojicon.fromCodePoint(0x1f51a),
+ Emojicon.fromCodePoint(0x1f519),
+ Emojicon.fromCodePoint(0x1f51b),
+ Emojicon.fromCodePoint(0x1f51c),
+ Emojicon.fromCodePoint(0x1f503),
+ Emojicon.fromCodePoint(0x1f55b),
+ Emojicon.fromCodePoint(0x1f567),
+ Emojicon.fromCodePoint(0x1f550),
+ Emojicon.fromCodePoint(0x1f55c),
+ Emojicon.fromCodePoint(0x1f551),
+ Emojicon.fromCodePoint(0x1f55d),
+ Emojicon.fromCodePoint(0x1f552),
+ Emojicon.fromCodePoint(0x1f55e),
+ Emojicon.fromCodePoint(0x1f553),
+ Emojicon.fromCodePoint(0x1f55f),
+ Emojicon.fromCodePoint(0x1f554),
+ Emojicon.fromCodePoint(0x1f560),
+ Emojicon.fromCodePoint(0x1f555),
+ Emojicon.fromCodePoint(0x1f556),
+ Emojicon.fromCodePoint(0x1f557),
+ Emojicon.fromCodePoint(0x1f558),
+ Emojicon.fromCodePoint(0x1f559),
+ Emojicon.fromCodePoint(0x1f55a),
+ Emojicon.fromCodePoint(0x1f561),
+ Emojicon.fromCodePoint(0x1f562),
+ Emojicon.fromCodePoint(0x1f563),
+ Emojicon.fromCodePoint(0x1f564),
+ Emojicon.fromCodePoint(0x1f565),
+ Emojicon.fromCodePoint(0x1f566),
+ Emojicon.fromChar((char) 0x2716),
+ Emojicon.fromChar((char) 0x2795),
+ Emojicon.fromChar((char) 0x2796),
+ Emojicon.fromChar((char) 0x2797),
+ Emojicon.fromChar((char) 0x2660),
+ Emojicon.fromChar((char) 0x2665),
+ Emojicon.fromChar((char) 0x2663),
+ Emojicon.fromChar((char) 0x2666),
+ Emojicon.fromCodePoint(0x1f4ae),
+ Emojicon.fromCodePoint(0x1f4af),
+ Emojicon.fromChar((char) 0x2714),
+ Emojicon.fromChar((char) 0x2611),
+ Emojicon.fromCodePoint(0x1f518),
+ Emojicon.fromCodePoint(0x1f517),
+ Emojicon.fromChar((char) 0x27b0),
+ Emojicon.fromChar((char) 0x3030),
+ Emojicon.fromChar((char) 0x303d),
+ Emojicon.fromCodePoint(0x1f531),
+ Emojicon.fromChar((char) 0x25fc),
+ Emojicon.fromChar((char) 0x25fb),
+ Emojicon.fromChar((char) 0x25fe),
+ Emojicon.fromChar((char) 0x25fd),
+ Emojicon.fromChar((char) 0x25aa),
+ Emojicon.fromChar((char) 0x25ab),
+ Emojicon.fromCodePoint(0x1f53a),
+ Emojicon.fromCodePoint(0x1f532),
+ Emojicon.fromCodePoint(0x1f533),
+ Emojicon.fromChar((char) 0x26ab),
+ Emojicon.fromChar((char) 0x26aa),
+ Emojicon.fromCodePoint(0x1f534),
+ Emojicon.fromCodePoint(0x1f535),
+ Emojicon.fromCodePoint(0x1f53b),
+ Emojicon.fromChar((char) 0x2b1c),
+ Emojicon.fromChar((char) 0x2b1b),
+ Emojicon.fromCodePoint(0x1f536),
+ Emojicon.fromCodePoint(0x1f537),
+ Emojicon.fromCodePoint(0x1f538),
+ Emojicon.fromCodePoint(0x1f539),
+ };
+}