Update the list of emojis

Take the list from https://unicode.org/Public/emoji/13.1/emoji-test.txt
Also change the list of groups, from the same source.
This commit is contained in:
Jules Aguillon 2021-01-16 21:57:51 +01:00
parent 5fa7187d16
commit a165a0ab2e
8 changed files with 5574 additions and 2752 deletions

File diff suppressed because it is too large Load Diff

View File

@ -2,52 +2,10 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:hardwareAccelerated="false">
<LinearLayout
<juloo.keyboard2.EmojiGroupButtonsBar
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<juloo.keyboard2.EmojiTypeButton
style="@style/emojiTypeButton"
emoji_type="LAST_USE"
/>
<juloo.keyboard2.EmojiTypeButton
style="@style/emojiTypeButton"
emoji_type="EMOTICONS"
/>
<juloo.keyboard2.EmojiTypeButton
style="@style/emojiTypeButton"
emoji_type="TRANSPORT"
/>
<juloo.keyboard2.EmojiTypeButton
style="@style/emojiTypeButton"
emoji_type="FOOD"
/>
<juloo.keyboard2.EmojiTypeButton
style="@style/emojiTypeButton"
emoji_type="NATURE"
/>
<juloo.keyboard2.EmojiTypeButton
style="@style/emojiTypeButton"
emoji_type="FEST"
/>
<juloo.keyboard2.EmojiTypeButton
style="@style/emojiTypeButton"
emoji_type="ANIMAL"
/>
<juloo.keyboard2.EmojiTypeButton
style="@style/emojiTypeButton"
emoji_type="HUMAN"
/>
<juloo.keyboard2.EmojiTypeButton
style="@style/emojiTypeButton"
emoji_type="UNCATEGORIZED"
/>
<juloo.keyboard2.EmojiTypeButton
style="@style/emojiTypeButton"
emoji_type="DINGBATS"
/>
</LinearLayout>
android:layout_height="wrap_content" />
<juloo.keyboard2.EmojiGridView
android:id="@+id/emoji_grid"
android:background="@color/bg"

4600
res/raw/emojis.txt Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="emojiTypeButton">
<item name="android:layout_width">0px</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_weight">1</item>
<item name="android:padding">0px</item>
<item name="android:background">@color/emoji_button_bg</item>
<item name="android:textColor">@color/emoji_key_text</item>

View File

@ -1,23 +1,15 @@
package juloo.keyboard2;
import android.content.res.Resources;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.BufferedReader;
import java.util.ArrayList;
import java.util.HashMap;
public class Emoji extends KeyValue
{
public static final int TYPE_EMOTICONS = 1;
public static final int TYPE_TRANSPORT = 2;
public static final int TYPE_FOOD = 3;
public static final int TYPE_NATURE = 4;
public static final int TYPE_FEST = 5;
// public static final int TYPE_MUSIC = 6;
// public static final int TYPE_SPORT = 7;
// public static final int TYPE_BUILDING = 8;
public static final int TYPE_ANIMAL = 9;
// public static final int TYPE_CLOTHES = 10;
public static final int TYPE_HUMAN = 11;
public static final int TYPE_UNCATEGORIZED = 13;
public static final int TYPE_DINGBATS = 14;
private final String _desc;
protected Emoji(String name, String bytecode, String desc)
@ -31,904 +23,49 @@ public class Emoji extends KeyValue
return (_desc);
}
private static final HashMap<Integer, Emoji[]> emoji_type_map = new HashMap<Integer, Emoji[]>();
public static int num_groups = 0;
private static Emoji[][] emojis_by_group = new Emoji[][]{};
public static Emoji getEmojiByName(String name)
{
return ((Emoji)KeyValue.getKeyByName(name));
}
public static Emoji[] getEmojisByType(int type)
public static Emoji[] getEmojisByGroup(int group_id)
{
return (emoji_type_map.get(type));
return (emojis_by_group[group_id]);
}
static
{
emoji_type_map.put(TYPE_EMOTICONS, new Emoji[]
{
new Emoji(":grin:", "\uD83D\uDE01", "grinning face with smiling eyes"),
new Emoji(":joy:", "\uD83D\uDE02", "face with tears of joy"),
new Emoji(":smiley:", "\uD83D\uDE03", "smiling face with open mouth"),
new Emoji(":smile:", "\uD83D\uDE04", "smiling face with open mouth and smiling eyes"),
new Emoji(":sweat_smile:", "\uD83D\uDE05", "smiling face with open mouth and cold sweat"),
new Emoji(":satisfied:", "\uD83D\uDE06", "smiling face with open mouth and tightly-closed eyes"),
new Emoji(":wink:", "\uD83D\uDE09", "winking face"),
new Emoji(":blush:", "\uD83D\uDE0A", "smiling face with smiling eyes"),
new Emoji(":yum:", "\uD83D\uDE0B", "face savouring delicious food"),
new Emoji(":relieved:", "\uD83D\uDE0C", "relieved face"),
new Emoji(":heart_eyes:", "\uD83D\uDE0D", "smiling face with heart-shaped eyes"),
new Emoji(":smirk:", "\uD83D\uDE0F", "smirking face"),
new Emoji(":unamused:", "\uD83D\uDE12", "unamused face"),
new Emoji(":sweat:", "\uD83D\uDE13", "face with cold sweat"),
new Emoji(":pensive:", "\uD83D\uDE14", "pensive face"),
new Emoji(":confounded:", "\uD83D\uDE16", "confounded face"),
new Emoji(":kissing_heart:", "\uD83D\uDE18", "face throwing a kiss"),
new Emoji(":kissing_closed_eyes:", "\uD83D\uDE1A", "kissing face with closed eyes"),
new Emoji(":stuck_out_tongue_winking_eye:", "\uD83D\uDE1C", "face with stuck-out tongue and winking eye"),
new Emoji(":stuck_out_tongue_closed_eyes:", "\uD83D\uDE1D", "face with stuck-out tongue and tightly-closed eyes"),
new Emoji(":disappointed:", "\uD83D\uDE1E", "disappointed face"),
new Emoji(":angry:", "\uD83D\uDE20", "angry face"),
new Emoji(":rage:", "\uD83D\uDE21", "pouting face"),
new Emoji(":cry:", "\uD83D\uDE22", "crying face"),
new Emoji(":persevere:", "\uD83D\uDE23", "persevering face"),
new Emoji(":triumph:", "\uD83D\uDE24", "face with look of triumph"),
new Emoji(":disappointed_relieved:", "\uD83D\uDE25", "disappointed but relieved face"),
new Emoji(":fearful:", "\uD83D\uDE28", "fearful face"),
new Emoji(":weary:", "\uD83D\uDE29", "weary face"),
new Emoji(":sleepy:", "\uD83D\uDE2A", "sleepy face"),
new Emoji(":tired_face:", "\uD83D\uDE2B", "tired face"),
new Emoji(":sob:", "\uD83D\uDE2D", "loudly crying face"),
new Emoji(":cold_sweat:", "\uD83D\uDE30", "face with open mouth and cold sweat"),
new Emoji(":scream:", "\uD83D\uDE31", "face screaming in fear"),
new Emoji(":astonished:", "\uD83D\uDE32", "astonished face"),
new Emoji(":flushed:", "\uD83D\uDE33", "flushed face"),
new Emoji(":dizzy_face:", "\uD83D\uDE35", "dizzy face"),
new Emoji(":mask:", "\uD83D\uDE37", "face with medical mask"),
new Emoji(":smile_cat:", "\uD83D\uDE38", "grinning cat face with smiling eyes"),
new Emoji(":joy_cat:", "\uD83D\uDE39", "cat face with tears of joy"),
new Emoji(":smiley_cat:", "\uD83D\uDE3A", "smiling cat face with open mouth"),
new Emoji(":heart_eyes_cat:", "\uD83D\uDE3B", "smiling cat face with heart-shaped eyes"),
new Emoji(":smirk_cat:", "\uD83D\uDE3C", "cat face with wry smile"),
new Emoji(":kissing_cat:", "\uD83D\uDE3D", "kissing cat face with closed eyes"),
new Emoji(":pouting_cat:", "\uD83D\uDE3E", "pouting cat face"),
new Emoji(":crying_cat_face:", "\uD83D\uDE3F", "crying cat face"),
new Emoji(":scream_cat:", "\uD83D\uDE40", "weary cat face"),
new Emoji(":no_good:", "\uD83D\uDE45", "face with no good gesture"),
new Emoji(":ok_woman:", "\uD83D\uDE46", "face with ok gesture"),
new Emoji(":bow:", "\uD83D\uDE47", "person bowing deeply"),
new Emoji(":see_no_evil:", "\uD83D\uDE48", "see-no-evil monkey"),
new Emoji(":hear_no_evil:", "\uD83D\uDE49", "hear-no-evil monkey"),
new Emoji(":speak_no_evil:", "\uD83D\uDE4A", "speak-no-evil monkey"),
new Emoji(":raising_hand:", "\uD83D\uDE4B", "happy person raising one hand"),
new Emoji(":raised_hands:", "\uD83D\uDE4C", "person raising both hands in celebration"),
new Emoji(":person_frowning:", "\uD83D\uDE4D", "person frowning"),
new Emoji(":person_with_pouting_face:", "\uD83D\uDE4E", "person with pouting face"),
new Emoji(":pray:", "\uD83D\uDE4F", "person with folded hands"),
new Emoji(":grinning:", "\uD83D\uDE00", "grinning face"),
new Emoji(":innocent:", "\uD83D\uDE07", "smiling face with halo"),
new Emoji(":smiling_imp:", "\uD83D\uDE08", "smiling face with horns"),
new Emoji(":sunglasses:", "\uD83D\uDE0E", "smiling face with sunglasses"),
new Emoji(":neutral_face:", "\uD83D\uDE10", "neutral face"),
new Emoji(":expressionless:", "\uD83D\uDE11", "expressionless face"),
new Emoji(":confused:", "\uD83D\uDE15", "confused face"),
new Emoji(":kissing:", "\uD83D\uDE17", "kissing face"),
new Emoji(":kissing_smiling_eyes:", "\uD83D\uDE19", "kissing face with smiling eyes"),
new Emoji(":stuck_out_tongue:", "\uD83D\uDE1B", "face with stuck-out tongue"),
new Emoji(":worried:", "\uD83D\uDE1F", "worried face"),
new Emoji(":frowning:", "\uD83D\uDE26", "frowning face with open mouth"),
new Emoji(":anguished:", "\uD83D\uDE27", "anguished face"),
new Emoji(":grimacing:", "\uD83D\uDE2C", "grimacing face"),
new Emoji(":open_mouth:", "\uD83D\uDE2E", "face with open mouth"),
new Emoji(":hushed:", "\uD83D\uDE2F", "hushed face"),
new Emoji(":sleeping:", "\uD83D\uDE34", "sleeping face"),
new Emoji(":no_mouth:", "\uD83D\uDE36", "face without mouth"),
});
emoji_type_map.put(TYPE_DINGBATS, new Emoji[]
{
new Emoji(":u2702:", "\u2702", "black scissors"),
new Emoji(":u2705:", "\u2705", "white heavy check mark"),
new Emoji(":u2708:", "\u2708", "airplane"),
new Emoji(":u2709:", "\u2709", "envelope"),
new Emoji(":u270A:", "\u270A", "raised fist"),
new Emoji(":u270B:", "\u270B", "raised hand"),
new Emoji(":u270C:", "\u270C", "victory hand"),
new Emoji(":u270F:", "\u270F", "pencil"),
new Emoji(":u2712:", "\u2712", "black nib"),
new Emoji(":u2714:", "\u2714", "heavy check mark"),
new Emoji(":u2716:", "\u2716", "heavy multiplication x"),
new Emoji(":u2728:", "\u2728", "sparkles"),
new Emoji(":u2733:", "\u2733", "eight spoked asterisk"),
new Emoji(":u2734:", "\u2734", "eight pointed black star"),
new Emoji(":u2744:", "\u2744", "snowflake"),
new Emoji(":u2747:", "\u2747", "sparkle"),
new Emoji(":u274C:", "\u274C", "cross mark"),
new Emoji(":u274E:", "\u274E", "negative squared cross mark"),
new Emoji(":u2753:", "\u2753", "black question mark ornament"),
new Emoji(":u2754:", "\u2754", "white question mark ornament"),
new Emoji(":u2755:", "\u2755", "white exclamation mark ornament"),
new Emoji(":u2757:", "\u2757", "heavy exclamation mark symbol"),
new Emoji(":u2764:", "\u2764", "heavy black heart"),
new Emoji(":u2795:", "\u2795", "heavy plus sign"),
new Emoji(":u2796:", "\u2796", "heavy minus sign"),
new Emoji(":u2797:", "\u2797", "heavy division sign"),
new Emoji(":u27A1:", "\u27A1", "black rightwards arrow"),
new Emoji(":u27B0:", "\u27B0", "curly loop"),
new Emoji(":u24C2:", "\u24C2", "circled latin capital letter m"),
new Emoji(":a:", "\uD83C\uDD70", "negative squared latin capital letter a"),
new Emoji(":b:", "\uD83C\uDD71", "negative squared latin capital letter b"),
new Emoji(":o2:", "\uD83C\uDD7E", "negative squared latin capital letter o"),
new Emoji(":parking:", "\uD83C\uDD7F", "negative squared latin capital letter p"),
new Emoji(":ab:", "\uD83C\uDD8E", "negative squared ab"),
new Emoji(":cl:", "\uD83C\uDD91", "squared cl"),
new Emoji(":cool:", "\uD83C\uDD92", "squared cool"),
new Emoji(":free:", "\uD83C\uDD93", "squared free"),
new Emoji(":id:", "\uD83C\uDD94", "squared id"),
new Emoji(":new:", "\uD83C\uDD95", "squared new"),
new Emoji(":ng:", "\uD83C\uDD96", "squared ng"),
new Emoji(":ok:", "\uD83C\uDD97", "squared ok"),
new Emoji(":sos:", "\uD83C\uDD98", "squared sos"),
new Emoji(":up:", "\uD83C\uDD99", "squared up with exclamation mark"),
new Emoji(":vs:", "\uD83C\uDD9A", "squared vs"),
new Emoji(":uD83CuDDE9uD83CuDDEA:", "\uD83C\uDDE9\uD83C\uDDEA", "regional indicator symbol letter d + regional indicator symbol letter e"),
new Emoji(":uD83CuDDECuD83CuDDE7:", "\uD83C\uDDEC\uD83C\uDDE7", "regional indicator symbol letter g + regional indicator symbol letter b"),
new Emoji(":uD83CuDDE8uD83CuDDF3:", "\uD83C\uDDE8\uD83C\uDDF3", "regional indicator symbol letter c + regional indicator symbol letter n"),
new Emoji(":uD83CuDDEFuD83CuDDF5:", "\uD83C\uDDEF\uD83C\uDDF5", "regional indicator symbol letter j + regional indicator symbol letter p"),
new Emoji(":uD83CuDDF0uD83CuDDF7:", "\uD83C\uDDF0\uD83C\uDDF7", "regional indicator symbol letter k + regional indicator symbol letter r"),
new Emoji(":uD83CuDDEBuD83CuDDF7:", "\uD83C\uDDEB\uD83C\uDDF7", "regional indicator symbol letter f + regional indicator symbol letter r"),
new Emoji(":uD83CuDDEAuD83CuDDF8:", "\uD83C\uDDEA\uD83C\uDDF8", "regional indicator symbol letter e + regional indicator symbol letter s"),
new Emoji(":uD83CuDDEEuD83CuDDF9:", "\uD83C\uDDEE\uD83C\uDDF9", "regional indicator symbol letter i + regional indicator symbol letter t"),
new Emoji(":uD83CuDDFAuD83CuDDF8:", "\uD83C\uDDFA\uD83C\uDDF8", "regional indicator symbol letter u + regional indicator symbol letter s"),
new Emoji(":uD83CuDDF7uD83CuDDFA:", "\uD83C\uDDF7\uD83C\uDDFA", "regional indicator symbol letter r + regional indicator symbol letter u"),
new Emoji(":koko:", "\uD83C\uDE01", "squared katakana koko"),
new Emoji(":sa:", "\uD83C\uDE02", "squared katakana sa"),
new Emoji(":u7121:", "\uD83C\uDE1A", "squared cjk unified ideograph-7121"),
new Emoji(":u6307:", "\uD83C\uDE2F", "squared cjk unified ideograph-6307"),
new Emoji(":u7981:", "\uD83C\uDE32", "squared cjk unified ideograph-7981"),
new Emoji(":u7a7a:", "\uD83C\uDE33", "squared cjk unified ideograph-7a7a"),
new Emoji(":u5408:", "\uD83C\uDE34", "squared cjk unified ideograph-5408"),
new Emoji(":u6e80:", "\uD83C\uDE35", "squared cjk unified ideograph-6e80"),
new Emoji(":u6709:", "\uD83C\uDE36", "squared cjk unified ideograph-6709"),
new Emoji(":u6708:", "\uD83C\uDE37", "squared cjk unified ideograph-6708"),
new Emoji(":u7533:", "\uD83C\uDE38", "squared cjk unified ideograph-7533"),
new Emoji(":u5272:", "\uD83C\uDE39", "squared cjk unified ideograph-5272"),
new Emoji(":u55b6:", "\uD83C\uDE3A", "squared cjk unified ideograph-55b6"),
new Emoji(":ideograph_advantage:", "\uD83C\uDE50", "circled ideograph advantage"),
new Emoji(":accept:", "\uD83C\uDE51", "circled ideograph accept"),
new Emoji(":u00A9:", "\u00A9", "copyright sign"),
new Emoji(":u00AE:", "\u00AE", "registered sign"),
new Emoji(":u203C:", "\u203C", "double exclamation mark"),
new Emoji(":u2049:", "\u2049", "exclamation question mark"),
new Emoji(":u0038u20E3:", "\u0038\u20E3", "digit eight + combining enclosing keycap"),
new Emoji(":u0039u20E3:", "\u0039\u20E3", "digit nine + combining enclosing keycap"),
new Emoji(":u0037u20E3:", "\u0037\u20E3", "digit seven + combining enclosing keycap"),
new Emoji(":u0036u20E3:", "\u0036\u20E3", "digit six + combining enclosing keycap"),
new Emoji(":u0031u20E3:", "\u0031\u20E3", "digit one + combining enclosing keycap"),
new Emoji(":u0030u20E3:", "\u0030\u20E3", "digit zero + combining enclosing keycap"),
new Emoji(":u0032u20E3:", "\u0032\u20E3", "digit two + combining enclosing keycap"),
new Emoji(":u0033u20E3:", "\u0033\u20E3", "digit three + combining enclosing keycap"),
new Emoji(":u0035u20E3:", "\u0035\u20E3", "digit five + combining enclosing keycap"),
new Emoji(":u0034u20E3:", "\u0034\u20E3", "digit four + combining enclosing keycap"),
new Emoji(":u0023u20E3:", "\u0023\u20E3", "number sign + combining enclosing keycap"),
new Emoji(":u2122:", "\u2122", "trade mark sign"),
new Emoji(":u2139:", "\u2139", "information source"),
new Emoji(":u2194:", "\u2194", "left right arrow"),
new Emoji(":u2195:", "\u2195", "up down arrow"),
new Emoji(":u2196:", "\u2196", "north west arrow"),
new Emoji(":u2197:", "\u2197", "north east arrow"),
new Emoji(":u2198:", "\u2198", "south east arrow"),
new Emoji(":u2199:", "\u2199", "south west arrow"),
new Emoji(":u21A9:", "\u21A9", "leftwards arrow with hook"),
new Emoji(":u21AA:", "\u21AA", "rightwards arrow with hook"),
new Emoji(":u231A:", "\u231A", "watch"),
new Emoji(":u231B:", "\u231B", "hourglass"),
new Emoji(":u23E9:", "\u23E9", "black right-pointing double triangle"),
new Emoji(":u23EA:", "\u23EA", "black left-pointing double triangle"),
new Emoji(":u23EB:", "\u23EB", "black up-pointing double triangle"),
new Emoji(":u23EC:", "\u23EC", "black down-pointing double triangle"),
new Emoji(":u23F0:", "\u23F0", "alarm clock"),
new Emoji(":u23F3:", "\u23F3", "hourglass with flowing sand"),
new Emoji(":u25AA:", "\u25AA", "black small square"),
new Emoji(":u25AB:", "\u25AB", "white small square"),
new Emoji(":u25B6:", "\u25B6", "black right-pointing triangle"),
new Emoji(":u25C0:", "\u25C0", "black left-pointing triangle"),
new Emoji(":u25FB:", "\u25FB", "white medium square"),
new Emoji(":u25FC:", "\u25FC", "black medium square"),
new Emoji(":u25FD:", "\u25FD", "white medium small square"),
new Emoji(":u25FE:", "\u25FE", "black medium small square"),
new Emoji(":u2600:", "\u2600", "black sun with rays"),
new Emoji(":u2601:", "\u2601", "cloud"),
new Emoji(":u260E:", "\u260E", "black telephone"),
new Emoji(":u2611:", "\u2611", "ballot box with check"),
});
emoji_type_map.put(TYPE_TRANSPORT, new Emoji[]
{
new Emoji(":earth_asia:", "\uD83C\uDF0F", "earth globe asia-australia"),
new Emoji(":earth_africa:", "\uD83C\uDF0D", "earth globe europe-africa"),
new Emoji(":earth_americas:", "\uD83C\uDF0E", "earth globe americas"),
new Emoji(":rocket:", "\uD83D\uDE80", "rocket"),
new Emoji(":train:", "\uD83D\uDE83", "railway car"),
new Emoji(":bullettrain_side:", "\uD83D\uDE84", "high-speed train"),
new Emoji(":bullettrain_front:", "\uD83D\uDE85", "high-speed train with bullet nose"),
new Emoji(":metro:", "\uD83D\uDE87", "metro"),
new Emoji(":station:", "\uD83D\uDE89", "station"),
new Emoji(":bus:", "\uD83D\uDE8C", "bus"),
new Emoji(":busstop:", "\uD83D\uDE8F", "bus stop"),
new Emoji(":ambulance:", "\uD83D\uDE91", "ambulance"),
new Emoji(":fire_engine:", "\uD83D\uDE92", "fire engine"),
new Emoji(":police_car:", "\uD83D\uDE93", "police car"),
new Emoji(":taxi:", "\uD83D\uDE95", "taxi"),
new Emoji(":red_car:", "\uD83D\uDE97", "automobile"),
new Emoji(":blue_car:", "\uD83D\uDE99", "recreational vehicle"),
new Emoji(":truck:", "\uD83D\uDE9A", "delivery truck"),
new Emoji(":ship:", "\uD83D\uDEA2", "ship"),
new Emoji(":speedboat:", "\uD83D\uDEA4", "speedboat"),
new Emoji(":traffic_light:", "\uD83D\uDEA5", "horizontal traffic light"),
new Emoji(":construction:", "\uD83D\uDEA7", "construction sign"),
new Emoji(":rotating_light:", "\uD83D\uDEA8", "police cars revolving light"),
new Emoji(":triangular_flag_on_post:", "\uD83D\uDEA9", "triangular flag on post"),
new Emoji(":door:", "\uD83D\uDEAA", "door"),
new Emoji(":no_entry_sign:", "\uD83D\uDEAB", "no entry sign"),
new Emoji(":smoking:", "\uD83D\uDEAC", "smoking symbol"),
new Emoji(":no_smoking:", "\uD83D\uDEAD", "no smoking symbol"),
new Emoji(":bike:", "\uD83D\uDEB2", "bicycle"),
new Emoji(":walking:", "\uD83D\uDEB6", "pedestrian"),
new Emoji(":mens:", "\uD83D\uDEB9", "mens symbol"),
new Emoji(":womens:", "\uD83D\uDEBA", "womens symbol"),
new Emoji(":restroom:", "\uD83D\uDEBB", "restroom"),
new Emoji(":baby_symbol:", "\uD83D\uDEBC", "baby symbol"),
new Emoji(":toilet:", "\uD83D\uDEBD", "toilet"),
new Emoji(":wc:", "\uD83D\uDEBE", "water closet"),
new Emoji(":bath:", "\uD83D\uDEC0", "bath"),
new Emoji(":helicopter:", "\uD83D\uDE81", "helicopter"),
new Emoji(":steam_locomotive:", "\uD83D\uDE82", "steam locomotive"),
new Emoji(":train2:", "\uD83D\uDE86", "train"),
new Emoji(":light_rail:", "\uD83D\uDE88", "light rail"),
new Emoji(":tram:", "\uD83D\uDE8A", "tram"),
new Emoji(":oncoming_bus:", "\uD83D\uDE8D", "oncoming bus"),
new Emoji(":trolleybus:", "\uD83D\uDE8E", "trolleybus"),
new Emoji(":minibus:", "\uD83D\uDE90", "minibus"),
new Emoji(":oncoming_police_car:", "\uD83D\uDE94", "oncoming police car"),
new Emoji(":oncoming_taxi:", "\uD83D\uDE96", "oncoming taxi"),
new Emoji(":oncoming_automobile:", "\uD83D\uDE98", "oncoming automobile"),
new Emoji(":articulated_lorry:", "\uD83D\uDE9B", "articulated lorry"),
new Emoji(":tractor:", "\uD83D\uDE9C", "tractor"),
new Emoji(":monorail:", "\uD83D\uDE9D", "monorail"),
new Emoji(":mountain_railway:", "\uD83D\uDE9E", "mountain railway"),
new Emoji(":suspension_railway:", "\uD83D\uDE9F", "suspension railway"),
new Emoji(":mountain_cableway:", "\uD83D\uDEA0", "mountain cableway"),
new Emoji(":aerial_tramway:", "\uD83D\uDEA1", "aerial tramway"),
new Emoji(":rowboat:", "\uD83D\uDEA3", "rowboat"),
new Emoji(":vertical_traffic_light:", "\uD83D\uDEA6", "vertical traffic light"),
new Emoji(":put_litter_in_its_place:", "\uD83D\uDEAE", "put litter in its place symbol"),
new Emoji(":do_not_litter:", "\uD83D\uDEAF", "do not litter symbol"),
new Emoji(":potable_water:", "\uD83D\uDEB0", "potable water symbol"),
new Emoji(":non-potable_water:", "\uD83D\uDEB1", "non-potable water symbol"),
new Emoji(":no_bicycles:", "\uD83D\uDEB3", "no bicycles"),
new Emoji(":bicyclist:", "\uD83D\uDEB4", "bicyclist"),
new Emoji(":mountain_bicyclist:", "\uD83D\uDEB5", "mountain bicyclist"),
new Emoji(":no_pedestrians:", "\uD83D\uDEB7", "no pedestrians"),
new Emoji(":children_crossing:", "\uD83D\uDEB8", "children crossing"),
new Emoji(":shower:", "\uD83D\uDEBF", "shower"),
new Emoji(":bathtub:", "\uD83D\uDEC1", "bathtub"),
new Emoji(":passport_control:", "\uD83D\uDEC2", "passport control"),
new Emoji(":customs:", "\uD83D\uDEC3", "customs"),
new Emoji(":baggage_claim:", "\uD83D\uDEC4", "baggage claim"),
new Emoji(":left_luggage:", "\uD83D\uDEC5", "left luggage"),
new Emoji(":foggy:", "\uD83C\uDF01", "foggy"),
new Emoji(":closed_umbrella:", "\uD83C\uDF02", "closed umbrella"),
new Emoji(":stars:", "\uD83C\uDF03", "night with stars"),
new Emoji(":sunrise_over_mountains:", "\uD83C\uDF04", "sunrise over mountains"),
new Emoji(":sunrise:", "\uD83C\uDF05", "sunrise"),
new Emoji(":city_sunset:", "\uD83C\uDF06", "cityscape at dusk"),
new Emoji(":city_sunrise:", "\uD83C\uDF07", "sunset over buildings"),
new Emoji(":rainbow:", "\uD83C\uDF08", "rainbow"),
new Emoji(":bridge_at_night:", "\uD83C\uDF09", "bridge at night"),
new Emoji(":ocean:", "\uD83C\uDF0A", "water wave"),
new Emoji(":volcano:", "\uD83C\uDF0B", "volcano"),
new Emoji(":milky_way:", "\uD83C\uDF0C", "milky way"),
new Emoji(":mount_fuji:", "\uD83D\uDDFB", "mount fuji"),
new Emoji(":tokyo_tower:", "\uD83D\uDDFC", "tokyo tower"),
new Emoji(":statue_of_liberty:", "\uD83D\uDDFD", "statue of liberty"),
new Emoji(":japan:", "\uD83D\uDDFE", "silhouette of japan"),
new Emoji(":moyai:", "\uD83D\uDDFF", "moyai"),
new Emoji(":house:", "\uD83C\uDFE0", "house building"),
new Emoji(":house_with_garden:", "\uD83C\uDFE1", "house with garden"),
new Emoji(":office:", "\uD83C\uDFE2", "office building"),
new Emoji(":post_office:", "\uD83C\uDFE3", "japanese post office"),
new Emoji(":hospital:", "\uD83C\uDFE5", "hospital"),
new Emoji(":bank:", "\uD83C\uDFE6", "bank"),
new Emoji(":atm:", "\uD83C\uDFE7", "automated teller machine"),
new Emoji(":hotel:", "\uD83C\uDFE8", "hotel"),
new Emoji(":love_hotel:", "\uD83C\uDFE9", "love hotel"),
new Emoji(":convenience_store:", "\uD83C\uDFEA", "convenience store"),
new Emoji(":school:", "\uD83C\uDFEB", "school"),
new Emoji(":department_store:", "\uD83C\uDFEC", "department store"),
new Emoji(":factory:", "\uD83C\uDFED", "factory"),
new Emoji(":lantern:", "\uD83C\uDFEE", "izakaya lantern"),
new Emoji(":japanese_castle:", "\uD83C\uDFEF", "japanese castle"),
new Emoji(":european_castle:", "\uD83C\uDFF0", "european castle"),
new Emoji(":new_moon:", "\uD83C\uDF11", "new moon symbol"),
new Emoji(":first_quarter_moon:", "\uD83C\uDF13", "first quarter moon symbol"),
new Emoji(":waxing_gibbous_moon:", "\uD83C\uDF14", "waxing gibbous moon symbol"),
new Emoji(":full_moon:", "\uD83C\uDF15", "full moon symbol"),
new Emoji(":crescent_moon:", "\uD83C\uDF19", "crescent moon"),
new Emoji(":first_quarter_moon_with_face:", "\uD83C\uDF1B", "first quarter moon with face"),
});
emoji_type_map.put(TYPE_NATURE, new Emoji[]
{
new Emoji(":chestnut:", "\uD83C\uDF30", "chestnut"),
new Emoji(":seedling:", "\uD83C\uDF31", "seedling"),
new Emoji(":palm_tree:", "\uD83C\uDF34", "palm tree"),
new Emoji(":cactus:", "\uD83C\uDF35", "cactus"),
new Emoji(":tulip:", "\uD83C\uDF37", "tulip"),
new Emoji(":cherry_blossom:", "\uD83C\uDF38", "cherry blossom"),
new Emoji(":rose:", "\uD83C\uDF39", "rose"),
new Emoji(":hibiscus:", "\uD83C\uDF3A", "hibiscus"),
new Emoji(":sunflower:", "\uD83C\uDF3B", "sunflower"),
new Emoji(":blossom:", "\uD83C\uDF3C", "blossom"),
new Emoji(":corn:", "\uD83C\uDF3D", "ear of maize"),
new Emoji(":ear_of_rice:", "\uD83C\uDF3E", "ear of rice"),
new Emoji(":herb:", "\uD83C\uDF3F", "herb"),
new Emoji(":four_leaf_clover:", "\uD83C\uDF40", "four leaf clover"),
new Emoji(":maple_leaf:", "\uD83C\uDF41", "maple leaf"),
new Emoji(":fallen_leaf:", "\uD83C\uDF42", "fallen leaf"),
new Emoji(":leaves:", "\uD83C\uDF43", "leaf fluttering in wind"),
new Emoji(":mushroom:", "\uD83C\uDF44", "mushroom"),
new Emoji(":tomato:", "\uD83C\uDF45", "tomato"),
new Emoji(":eggplant:", "\uD83C\uDF46", "aubergine"),
new Emoji(":grapes:", "\uD83C\uDF47", "grapes"),
new Emoji(":melon:", "\uD83C\uDF48", "melon"),
new Emoji(":watermelon:", "\uD83C\uDF49", "watermelon"),
new Emoji(":tangerine:", "\uD83C\uDF4A", "tangerine"),
new Emoji(":banana:", "\uD83C\uDF4C", "banana"),
new Emoji(":pineapple:", "\uD83C\uDF4D", "pineapple"),
new Emoji(":apple:", "\uD83C\uDF4E", "red apple"),
new Emoji(":green_apple:", "\uD83C\uDF4F", "green apple"),
new Emoji(":peach:", "\uD83C\uDF51", "peach"),
new Emoji(":cherries:", "\uD83C\uDF52", "cherries"),
new Emoji(":strawberry:", "\uD83C\uDF53", "strawberry"),
new Emoji(":evergreen_tree:", "\uD83C\uDF32", "evergreen tree"),
new Emoji(":deciduous_tree:", "\uD83C\uDF33", "deciduous tree"),
new Emoji(":lemon:", "\uD83C\uDF4B", "lemon"),
new Emoji(":pear:", "\uD83C\uDF50", "pear"),
});
emoji_type_map.put(TYPE_FOOD, new Emoji[]
{
new Emoji(":hamburger:", "\uD83C\uDF54", "hamburger"),
new Emoji(":pizza:", "\uD83C\uDF55", "slice of pizza"),
new Emoji(":meat_on_bone:", "\uD83C\uDF56", "meat on bone"),
new Emoji(":poultry_leg:", "\uD83C\uDF57", "poultry leg"),
new Emoji(":rice_cracker:", "\uD83C\uDF58", "rice cracker"),
new Emoji(":rice_ball:", "\uD83C\uDF59", "rice ball"),
new Emoji(":rice:", "\uD83C\uDF5A", "cooked rice"),
new Emoji(":curry:", "\uD83C\uDF5B", "curry and rice"),
new Emoji(":ramen:", "\uD83C\uDF5C", "steaming bowl"),
new Emoji(":spaghetti:", "\uD83C\uDF5D", "spaghetti"),
new Emoji(":bread:", "\uD83C\uDF5E", "bread"),
new Emoji(":fries:", "\uD83C\uDF5F", "french fries"),
new Emoji(":sweet_potato:", "\uD83C\uDF60", "roasted sweet potato"),
new Emoji(":dango:", "\uD83C\uDF61", "dango"),
new Emoji(":oden:", "\uD83C\uDF62", "oden"),
new Emoji(":sushi:", "\uD83C\uDF63", "sushi"),
new Emoji(":fried_shrimp:", "\uD83C\uDF64", "fried shrimp"),
new Emoji(":fish_cake:", "\uD83C\uDF65", "fish cake with swirl design"),
new Emoji(":icecream:", "\uD83C\uDF66", "soft ice cream"),
new Emoji(":shaved_ice:", "\uD83C\uDF67", "shaved ice"),
new Emoji(":ice_cream:", "\uD83C\uDF68", "ice cream"),
new Emoji(":doughnut:", "\uD83C\uDF69", "doughnut"),
new Emoji(":cookie:", "\uD83C\uDF6A", "cookie"),
new Emoji(":chocolate_bar:", "\uD83C\uDF6B", "chocolate bar"),
new Emoji(":candy:", "\uD83C\uDF6C", "candy"),
new Emoji(":lollipop:", "\uD83C\uDF6D", "lollipop"),
new Emoji(":custard:", "\uD83C\uDF6E", "custard"),
new Emoji(":honey_pot:", "\uD83C\uDF6F", "honey pot"),
new Emoji(":cake:", "\uD83C\uDF70", "shortcake"),
new Emoji(":bento:", "\uD83C\uDF71", "bento box"),
new Emoji(":stew:", "\uD83C\uDF72", "pot of food"),
new Emoji(":egg:", "\uD83C\uDF73", "cooking"),
new Emoji(":fork_and_knife:", "\uD83C\uDF74", "fork and knife"),
new Emoji(":tea:", "\uD83C\uDF75", "teacup without handle"),
new Emoji(":sake:", "\uD83C\uDF76", "sake bottle and cup"),
new Emoji(":wine_glass:", "\uD83C\uDF77", "wine glass"),
new Emoji(":cocktail:", "\uD83C\uDF78", "cocktail glass"),
new Emoji(":tropical_drink:", "\uD83C\uDF79", "tropical drink"),
new Emoji(":beer:", "\uD83C\uDF7A", "beer mug"),
new Emoji(":beers:", "\uD83C\uDF7B", "clinking beer mugs"),
new Emoji(":ribbon:", "\uD83C\uDF80", "ribbon"),
new Emoji(":gift:", "\uD83C\uDF81", "wrapped present"),
new Emoji(":birthday:", "\uD83C\uDF82", "birthday cake"),
});
emoji_type_map.put(TYPE_FEST, new Emoji[]
{
// TYPE_MUSIC
new Emoji(":musical_note:", "\uD83C\uDFB5", "musical note"),
new Emoji(":notes:", "\uD83C\uDFB6", "multiple musical notes"),
new Emoji(":saxophone:", "\uD83C\uDFB7", "saxophone"),
new Emoji(":guitar:", "\uD83C\uDFB8", "guitar"),
new Emoji(":musical_keyboard:", "\uD83C\uDFB9", "musical keyboard"),
new Emoji(":trumpet:", "\uD83C\uDFBA", "trumpet"),
new Emoji(":violin:", "\uD83C\uDFBB", "violin"),
new Emoji(":musical_score:", "\uD83C\uDFBC", "musical score"),
// TYPE_FEST
new Emoji(":jack_o_lantern:", "\uD83C\uDF83", "jack-o-lantern"),
new Emoji(":christmas_tree:", "\uD83C\uDF84", "christmas tree"),
new Emoji(":santa:", "\uD83C\uDF85", "father christmas"),
new Emoji(":fireworks:", "\uD83C\uDF86", "fireworks"),
new Emoji(":sparkler:", "\uD83C\uDF87", "firework sparkler"),
new Emoji(":balloon:", "\uD83C\uDF88", "balloon"),
new Emoji(":tada:", "\uD83C\uDF89", "party popper"),
new Emoji(":confetti_ball:", "\uD83C\uDF8A", "confetti ball"),
new Emoji(":tanabata_tree:", "\uD83C\uDF8B", "tanabata tree"),
new Emoji(":crossed_flags:", "\uD83C\uDF8C", "crossed flags"),
new Emoji(":bamboo:", "\uD83C\uDF8D", "pine decoration"),
new Emoji(":dolls:", "\uD83C\uDF8E", "japanese dolls"),
new Emoji(":flags:", "\uD83C\uDF8F", "carp streamer"),
new Emoji(":wind_chime:", "\uD83C\uDF90", "wind chime"),
new Emoji(":rice_scene:", "\uD83C\uDF91", "moon viewing ceremony"),
new Emoji(":school_satchel:", "\uD83C\uDF92", "school satchel"),
new Emoji(":mortar_board:", "\uD83C\uDF93", "graduation cap"),
new Emoji(":carousel_horse:", "\uD83C\uDFA0", "carousel horse"),
new Emoji(":ferris_wheel:", "\uD83C\uDFA1", "ferris wheel"),
new Emoji(":roller_coaster:", "\uD83C\uDFA2", "roller coaster"),
new Emoji(":fishing_pole_and_fish:", "\uD83C\uDFA3", "fishing pole and fish"),
new Emoji(":microphone:", "\uD83C\uDFA4", "microphone"),
new Emoji(":movie_camera:", "\uD83C\uDFA5", "movie camera"),
new Emoji(":cinema:", "\uD83C\uDFA6", "cinema"),
new Emoji(":headphones:", "\uD83C\uDFA7", "headphone"),
new Emoji(":art:", "\uD83C\uDFA8", "artist palette"),
new Emoji(":tophat:", "\uD83C\uDFA9", "top hat"),
new Emoji(":circus_tent:", "\uD83C\uDFAA", "circus tent"),
new Emoji(":ticket:", "\uD83C\uDFAB", "ticket"),
new Emoji(":clapper:", "\uD83C\uDFAC", "clapper board"),
new Emoji(":performing_arts:", "\uD83C\uDFAD", "performing arts"),
new Emoji(":video_game:", "\uD83C\uDFAE", "video game"),
new Emoji(":dart:", "\uD83C\uDFAF", "direct hit"),
new Emoji(":slot_machine:", "\uD83C\uDFB0", "slot machine"),
new Emoji(":8ball:", "\uD83C\uDFB1", "billiards"),
new Emoji(":game_die:", "\uD83C\uDFB2", "game die"),
new Emoji(":bowling:", "\uD83C\uDFB3", "bowling"),
new Emoji(":flower_playing_cards:", "\uD83C\uDFB4", "flower playing cards"),
// TYPE_SPORT
new Emoji(":u26BD:", "\u26BD", "soccer ball"),
new Emoji(":u26BE:", "\u26BE", "baseball"),
new Emoji(":running_shirt_with_sash:", "\uD83C\uDFBD", "running shirt with sash"),
new Emoji(":tennis:", "\uD83C\uDFBE", "tennis racquet and ball"),
new Emoji(":ski:", "\uD83C\uDFBF", "ski and ski boot"),
new Emoji(":basketball:", "\uD83C\uDFC0", "basketball and hoop"),
new Emoji(":checkered_flag:", "\uD83C\uDFC1", "chequered flag"),
new Emoji(":snowboarder:", "\uD83C\uDFC2", "snowboarder"),
new Emoji(":running:", "\uD83C\uDFC3", "runner"),
new Emoji(":surfer:", "\uD83C\uDFC4", "surfer"),
new Emoji(":trophy:", "\uD83C\uDFC6", "trophy"),
new Emoji(":football:", "\uD83C\uDFC8", "american football"),
new Emoji(":swimmer:", "\uD83C\uDFCA", "swimmer"),
new Emoji(":horse_racing:", "\uD83C\uDFC7", "horse racing"),
new Emoji(":rugby_football:", "\uD83C\uDFC9", "rugby football"),
});
emoji_type_map.put(TYPE_ANIMAL, new Emoji[]
{
new Emoji(":snail:", "\uD83D\uDC0C", "snail"),
new Emoji(":snake:", "\uD83D\uDC0D", "snake"),
new Emoji(":racehorse:", "\uD83D\uDC0E", "horse"),
new Emoji(":sheep:", "\uD83D\uDC11", "sheep"),
new Emoji(":monkey:", "\uD83D\uDC12", "monkey"),
new Emoji(":chicken:", "\uD83D\uDC14", "chicken"),
new Emoji(":boar:", "\uD83D\uDC17", "boar"),
new Emoji(":elephant:", "\uD83D\uDC18", "elephant"),
new Emoji(":octopus:", "\uD83D\uDC19", "octopus"),
new Emoji(":shell:", "\uD83D\uDC1A", "spiral shell"),
new Emoji(":bug:", "\uD83D\uDC1B", "bug"),
new Emoji(":ant:", "\uD83D\uDC1C", "ant"),
new Emoji(":honeybee:", "\uD83D\uDC1D", "honeybee"),
new Emoji(":beetle:", "\uD83D\uDC1E", "lady beetle"),
new Emoji(":fish:", "\uD83D\uDC1F", "fish"),
new Emoji(":tropical_fish:", "\uD83D\uDC20", "tropical fish"),
new Emoji(":blowfish:", "\uD83D\uDC21", "blowfish"),
new Emoji(":turtle:", "\uD83D\uDC22", "turtle"),
new Emoji(":hatching_chick:", "\uD83D\uDC23", "hatching chick"),
new Emoji(":baby_chick:", "\uD83D\uDC24", "baby chick"),
new Emoji(":hatched_chick:", "\uD83D\uDC25", "front-facing baby chick"),
new Emoji(":bird:", "\uD83D\uDC26", "bird"),
new Emoji(":penguin:", "\uD83D\uDC27", "penguin"),
new Emoji(":koala:", "\uD83D\uDC28", "koala"),
new Emoji(":poodle:", "\uD83D\uDC29", "poodle"),
new Emoji(":camel:", "\uD83D\uDC2B", "bactrian camel"),
new Emoji(":flipper:", "\uD83D\uDC2C", "dolphin"),
new Emoji(":mouse:", "\uD83D\uDC2D", "mouse face"),
new Emoji(":cow:", "\uD83D\uDC2E", "cow face"),
new Emoji(":tiger:", "\uD83D\uDC2F", "tiger face"),
new Emoji(":rabbit:", "\uD83D\uDC30", "rabbit face"),
new Emoji(":cat:", "\uD83D\uDC31", "cat face"),
new Emoji(":dragon_face:", "\uD83D\uDC32", "dragon face"),
new Emoji(":whale:", "\uD83D\uDC33", "spouting whale"),
new Emoji(":horse:", "\uD83D\uDC34", "horse face"),
new Emoji(":monkey_face:", "\uD83D\uDC35", "monkey face"),
new Emoji(":dog:", "\uD83D\uDC36", "dog face"),
new Emoji(":pig:", "\uD83D\uDC37", "pig face"),
new Emoji(":frog:", "\uD83D\uDC38", "frog face"),
new Emoji(":hamster:", "\uD83D\uDC39", "hamster face"),
new Emoji(":wolf:", "\uD83D\uDC3A", "wolf face"),
new Emoji(":bear:", "\uD83D\uDC3B", "bear face"),
new Emoji(":panda_face:", "\uD83D\uDC3C", "panda face"),
new Emoji(":pig_nose:", "\uD83D\uDC3D", "pig nose"),
new Emoji(":paw_prints:", "\uD83D\uDC3E", "paw prints"),
new Emoji(":rat:", "\uD83D\uDC00", "rat"),
new Emoji(":mouse2:", "\uD83D\uDC01", "mouse"),
new Emoji(":ox:", "\uD83D\uDC02", "ox"),
new Emoji(":water_buffalo:", "\uD83D\uDC03", "water buffalo"),
new Emoji(":cow2:", "\uD83D\uDC04", "cow"),
new Emoji(":tiger2:", "\uD83D\uDC05", "tiger"),
new Emoji(":leopard:", "\uD83D\uDC06", "leopard"),
new Emoji(":rabbit2:", "\uD83D\uDC07", "rabbit"),
new Emoji(":cat2:", "\uD83D\uDC08", "cat"),
new Emoji(":dragon:", "\uD83D\uDC09", "dragon"),
new Emoji(":crocodile:", "\uD83D\uDC0A", "crocodile"),
new Emoji(":whale2:", "\uD83D\uDC0B", "whale"),
new Emoji(":ram:", "\uD83D\uDC0F", "ram"),
new Emoji(":goat:", "\uD83D\uDC10", "goat"),
new Emoji(":rooster:", "\uD83D\uDC13", "rooster"),
new Emoji(":dog2:", "\uD83D\uDC15", "dog"),
new Emoji(":pig2:", "\uD83D\uDC16", "pig"),
new Emoji(":dromedary_camel:", "\uD83D\uDC2A", "dromedary camel"),
});
emoji_type_map.put(TYPE_HUMAN, new Emoji[]
{
// TYPE_CLOTHES
new Emoji(":crown:", "\uD83D\uDC51", "crown"),
new Emoji(":womans_hat:", "\uD83D\uDC52", "womans hat"),
new Emoji(":eyeglasses:", "\uD83D\uDC53", "eyeglasses"),
new Emoji(":necktie:", "\uD83D\uDC54", "necktie"),
new Emoji(":tshirt:", "\uD83D\uDC55", "t-shirt"),
new Emoji(":jeans:", "\uD83D\uDC56", "jeans"),
new Emoji(":dress:", "\uD83D\uDC57", "dress"),
new Emoji(":kimono:", "\uD83D\uDC58", "kimono"),
new Emoji(":bikini:", "\uD83D\uDC59", "bikini"),
new Emoji(":womans_clothes:", "\uD83D\uDC5A", "womans clothes"),
new Emoji(":purse:", "\uD83D\uDC5B", "purse"),
new Emoji(":handbag:", "\uD83D\uDC5C", "handbag"),
new Emoji(":pouch:", "\uD83D\uDC5D", "pouch"),
new Emoji(":shoe:", "\uD83D\uDC5E", "mans shoe"),
new Emoji(":athletic_shoe:", "\uD83D\uDC5F", "athletic shoe"),
new Emoji(":high_heel:", "\uD83D\uDC60", "high-heeled shoe"),
new Emoji(":sandal:", "\uD83D\uDC61", "womans sandal"),
new Emoji(":boot:", "\uD83D\uDC62", "womans boots"),
new Emoji(":lipstick:", "\uD83D\uDC84", "lipstick"),
new Emoji(":nail_care:", "\uD83D\uDC85", "nail polish"),
new Emoji(":massage:", "\uD83D\uDC86", "face massage"),
new Emoji(":haircut:", "\uD83D\uDC87", "haircut"),
new Emoji(":barber:", "\uD83D\uDC88", "barber pole"),
// TYPE_HUMAN
new Emoji(":boy:", "\uD83D\uDC66", "boy"),
new Emoji(":girl:", "\uD83D\uDC67", "girl"),
new Emoji(":man:", "\uD83D\uDC68", "man"),
new Emoji(":woman:", "\uD83D\uDC69", "woman"),
new Emoji(":family:", "\uD83D\uDC6A", "family"),
new Emoji(":couple:", "\uD83D\uDC6B", "man and woman holding hands"),
new Emoji(":cop:", "\uD83D\uDC6E", "police officer"),
new Emoji(":dancers:", "\uD83D\uDC6F", "woman with bunny ears"),
new Emoji(":bride_with_veil:", "\uD83D\uDC70", "bride with veil"),
new Emoji(":person_with_blond_hair:", "\uD83D\uDC71", "person with blond hair"),
new Emoji(":man_with_gua_pi_mao:", "\uD83D\uDC72", "man with gua pi mao"),
new Emoji(":man_with_turban:", "\uD83D\uDC73", "man with turban"),
new Emoji(":older_man:", "\uD83D\uDC74", "older man"),
new Emoji(":older_woman:", "\uD83D\uDC75", "older woman"),
new Emoji(":baby:", "\uD83D\uDC76", "baby"),
new Emoji(":construction_worker:", "\uD83D\uDC77", "construction worker"),
new Emoji(":princess:", "\uD83D\uDC78", "princess"),
new Emoji(":japanese_ogre:", "\uD83D\uDC79", "japanese ogre"),
new Emoji(":japanese_goblin:", "\uD83D\uDC7A", "japanese goblin"),
new Emoji(":ghost:", "\uD83D\uDC7B", "ghost"),
new Emoji(":angel:", "\uD83D\uDC7C", "baby angel"),
new Emoji(":alien:", "\uD83D\uDC7D", "extraterrestrial alien"),
new Emoji(":space_invader:", "\uD83D\uDC7E", "alien monster"),
new Emoji(":imp:", "\uD83D\uDC7F", "imp"),
new Emoji(":skull:", "\uD83D\uDC80", "skull"),
new Emoji(":information_desk_person:", "\uD83D\uDC81", "information desk person"),
new Emoji(":guardsman:", "\uD83D\uDC82", "guardsman"),
new Emoji(":dancer:", "\uD83D\uDC83", "dancer"),
new Emoji(":kiss:", "\uD83D\uDC8B", "kiss mark"),
new Emoji(":love_letter:", "\uD83D\uDC8C", "love letter"),
new Emoji(":ring:", "\uD83D\uDC8D", "ring"),
new Emoji(":gem:", "\uD83D\uDC8E", "gem stone"),
new Emoji(":couplekiss:", "\uD83D\uDC8F", "kiss"),
new Emoji(":bouquet:", "\uD83D\uDC90", "bouquet"),
new Emoji(":couple_with_heart:", "\uD83D\uDC91", "couple with heart"),
new Emoji(":wedding:", "\uD83D\uDC92", "wedding"),
new Emoji(":heartbeat:", "\uD83D\uDC93", "beating heart"),
new Emoji(":broken_heart:", "\uD83D\uDC94", "broken heart"),
new Emoji(":two_hearts:", "\uD83D\uDC95", "two hearts"),
new Emoji(":sparkling_heart:", "\uD83D\uDC96", "sparkling heart"),
new Emoji(":heartpulse:", "\uD83D\uDC97", "growing heart"),
new Emoji(":cupid:", "\uD83D\uDC98", "heart with arrow"),
new Emoji(":blue_heart:", "\uD83D\uDC99", "blue heart"),
new Emoji(":green_heart:", "\uD83D\uDC9A", "green heart"),
new Emoji(":yellow_heart:", "\uD83D\uDC9B", "yellow heart"),
new Emoji(":purple_heart:", "\uD83D\uDC9C", "purple heart"),
new Emoji(":gift_heart:", "\uD83D\uDC9D", "heart with ribbon"),
new Emoji(":revolving_hearts:", "\uD83D\uDC9E", "revolving hearts"),
new Emoji(":heart_decoration:", "\uD83D\uDC9F", "heart decoration"),
});
emoji_type_map.put(TYPE_UNCATEGORIZED, new Emoji[]
{
new Emoji(":u2614:", "\u2614", "umbrella with rain drops"),
new Emoji(":u2615:", "\u2615", "hot beverage"),
new Emoji(":u261D:", "\u261D", "white up pointing index"),
new Emoji(":u263A:", "\u263A", "white smiling face"),
new Emoji(":u2648:", "\u2648", "aries"),
new Emoji(":u2649:", "\u2649", "taurus"),
new Emoji(":u264A:", "\u264A", "gemini"),
new Emoji(":u264B:", "\u264B", "cancer"),
new Emoji(":u264C:", "\u264C", "leo"),
new Emoji(":u264D:", "\u264D", "virgo"),
new Emoji(":u264E:", "\u264E", "libra"),
new Emoji(":u264F:", "\u264F", "scorpius"),
new Emoji(":u2650:", "\u2650", "sagittarius"),
new Emoji(":u2651:", "\u2651", "capricorn"),
new Emoji(":u2652:", "\u2652", "aquarius"),
new Emoji(":u2653:", "\u2653", "pisces"),
new Emoji(":u2660:", "\u2660", "black spade suit"),
new Emoji(":u2663:", "\u2663", "black club suit"),
new Emoji(":u2665:", "\u2665", "black heart suit"),
new Emoji(":u2666:", "\u2666", "black diamond suit"),
new Emoji(":u2668:", "\u2668", "hot springs"),
new Emoji(":u267B:", "\u267B", "black universal recycling symbol"),
new Emoji(":u267F:", "\u267F", "wheelchair symbol"),
new Emoji(":u2693:", "\u2693", "anchor"),
new Emoji(":u26A0:", "\u26A0", "warning sign"),
new Emoji(":u26A1:", "\u26A1", "high voltage sign"),
new Emoji(":u26AA:", "\u26AA", "medium white circle"),
new Emoji(":u26AB:", "\u26AB", "medium black circle"),
new Emoji(":u26C4:", "\u26C4", "snowman without snow"),
new Emoji(":u26C5:", "\u26C5", "sun behind cloud"),
new Emoji(":u26CE:", "\u26CE", "ophiuchus"),
new Emoji(":u26D4:", "\u26D4", "no entry"),
new Emoji(":u26EA:", "\u26EA", "church"),
new Emoji(":u26F2:", "\u26F2", "fountain"),
new Emoji(":u26F3:", "\u26F3", "flag in hole"),
new Emoji(":u26F5:", "\u26F5", "sailboat"),
new Emoji(":u26FA:", "\u26FA", "tent"),
new Emoji(":u26FD:", "\u26FD", "fuel pump"),
new Emoji(":u2934:", "\u2934", "arrow pointing rightwards then curving upwards"),
new Emoji(":u2935:", "\u2935", "arrow pointing rightwards then curving downwards"),
new Emoji(":u2B05:", "\u2B05", "leftwards black arrow"),
new Emoji(":u2B06:", "\u2B06", "upwards black arrow"),
new Emoji(":u2B07:", "\u2B07", "downwards black arrow"),
new Emoji(":u2B1B:", "\u2B1B", "black large square"),
new Emoji(":u2B1C:", "\u2B1C", "white large square"),
new Emoji(":u2B50:", "\u2B50", "white medium star"),
new Emoji(":u2B55:", "\u2B55", "heavy large circle"),
new Emoji(":u3030:", "\u3030", "wavy dash"),
new Emoji(":u303D:", "\u303D", "part alternation mark"),
new Emoji(":u3297:", "\u3297", "circled ideograph congratulation"),
new Emoji(":u3299:", "\u3299", "circled ideograph secret"),
new Emoji(":mahjong:", "\uD83C\uDC04", "mahjong tile red dragon"),
new Emoji(":black_joker:", "\uD83C\uDCCF", "playing card black joker"),
new Emoji(":cyclone:", "\uD83C\uDF00", "cyclone"),
new Emoji(":star2:", "\uD83C\uDF1F", "glowing star"),
new Emoji("", "\uD83C\uDF20", "shooting star"),
new Emoji(":eyes:", "\uD83D\uDC40", "eyes"),
new Emoji(":ear:", "\uD83D\uDC42", "ear"),
new Emoji(":nose:", "\uD83D\uDC43", "nose"),
new Emoji(":lips:", "\uD83D\uDC44", "mouth"),
new Emoji(":tongue:", "\uD83D\uDC45", "tongue"),
new Emoji(":point_up_2:", "\uD83D\uDC46", "white up pointing backhand index"),
new Emoji(":point_down:", "\uD83D\uDC47", "white down pointing backhand index"),
new Emoji(":point_left:", "\uD83D\uDC48", "white left pointing backhand index"),
new Emoji(":point_right:", "\uD83D\uDC49", "white right pointing backhand index"),
new Emoji(":punch:", "\uD83D\uDC4A", "fisted hand sign"),
new Emoji(":wave:", "\uD83D\uDC4B", "waving hand sign"),
new Emoji(":ok_hand:", "\uD83D\uDC4C", "ok hand sign"),
new Emoji(":thumbsup:", "\uD83D\uDC4D", "thumbs up sign"),
new Emoji(":thumbsdown:", "\uD83D\uDC4E", "thumbs down sign"),
new Emoji(":clap:", "\uD83D\uDC4F", "clapping hands sign"),
new Emoji(":open_hands:", "\uD83D\uDC50", "open hands sign"),
new Emoji(":footprints:", "\uD83D\uDC63", "footprints"),
new Emoji(":bust_in_silhouette:", "\uD83D\uDC64", "bust in silhouette"),
new Emoji(":syringe:", "\uD83D\uDC89", "syringe"),
new Emoji(":pill:", "\uD83D\uDC8A", "pill"),
new Emoji(":diamond_shape_with_a_dot_inside:", "\uD83D\uDCA0", "diamond shape with a dot inside"),
new Emoji(":bulb:", "\uD83D\uDCA1", "electric light bulb"),
new Emoji(":anger:", "\uD83D\uDCA2", "anger symbol"),
new Emoji(":bomb:", "\uD83D\uDCA3", "bomb"),
new Emoji(":zzz:", "\uD83D\uDCA4", "sleeping symbol"),
new Emoji(":collision:", "\uD83D\uDCA5", "collision symbol"),
new Emoji(":sweat_drops:", "\uD83D\uDCA6", "splashing sweat symbol"),
new Emoji(":droplet:", "\uD83D\uDCA7", "droplet"),
new Emoji(":dash:", "\uD83D\uDCA8", "dash symbol"),
new Emoji(":shit:", "\uD83D\uDCA9", "pile of poo"),
new Emoji(":muscle:", "\uD83D\uDCAA", "flexed biceps"),
new Emoji(":dizzy:", "\uD83D\uDCAB", "dizzy symbol"),
new Emoji(":speech_balloon:", "\uD83D\uDCAC", "speech balloon"),
new Emoji(":white_flower:", "\uD83D\uDCAE", "white flower"),
new Emoji(":100:", "\uD83D\uDCAF", "hundred points symbol"),
new Emoji(":moneybag:", "\uD83D\uDCB0", "money bag"),
new Emoji(":currency_exchange:", "\uD83D\uDCB1", "currency exchange"),
new Emoji(":heavy_dollar_sign:", "\uD83D\uDCB2", "heavy dollar sign"),
new Emoji(":credit_card:", "\uD83D\uDCB3", "credit card"),
new Emoji(":yen:", "\uD83D\uDCB4", "banknote with yen sign"),
new Emoji(":dollar:", "\uD83D\uDCB5", "banknote with dollar sign"),
new Emoji(":money_with_wings:", "\uD83D\uDCB8", "money with wings"),
new Emoji(":chart:", "\uD83D\uDCB9", "chart with upwards trend and yen sign"),
new Emoji(":seat:", "\uD83D\uDCBA", "seat"),
new Emoji(":computer:", "\uD83D\uDCBB", "personal computer"),
new Emoji(":briefcase:", "\uD83D\uDCBC", "briefcase"),
new Emoji(":minidisc:", "\uD83D\uDCBD", "minidisc"),
new Emoji(":floppy_disk:", "\uD83D\uDCBE", "floppy disk"),
new Emoji(":cd:", "\uD83D\uDCBF", "optical disc"),
new Emoji(":dvd:", "\uD83D\uDCC0", "dvd"),
new Emoji(":file_folder:", "\uD83D\uDCC1", "file folder"),
new Emoji(":open_file_folder:", "\uD83D\uDCC2", "open file folder"),
new Emoji(":page_with_curl:", "\uD83D\uDCC3", "page with curl"),
new Emoji(":page_facing_up:", "\uD83D\uDCC4", "page facing up"),
new Emoji(":date:", "\uD83D\uDCC5", "calendar"),
new Emoji(":calendar:", "\uD83D\uDCC6", "tear-off calendar"),
new Emoji(":card_index:", "\uD83D\uDCC7", "card index"),
new Emoji(":chart_with_upwards_trend:", "\uD83D\uDCC8", "chart with upwards trend"),
new Emoji(":chart_with_downwards_trend:", "\uD83D\uDCC9", "chart with downwards trend"),
new Emoji(":bar_chart:", "\uD83D\uDCCA", "bar chart"),
new Emoji(":clipboard:", "\uD83D\uDCCB", "clipboard"),
new Emoji(":pushpin:", "\uD83D\uDCCC", "pushpin"),
new Emoji(":round_pushpin:", "\uD83D\uDCCD", "round pushpin"),
new Emoji(":paperclip:", "\uD83D\uDCCE", "paperclip"),
new Emoji(":straight_ruler:", "\uD83D\uDCCF", "straight ruler"),
new Emoji(":triangular_ruler:", "\uD83D\uDCD0", "triangular ruler"),
new Emoji(":bookmark_tabs:", "\uD83D\uDCD1", "bookmark tabs"),
new Emoji(":ledger:", "\uD83D\uDCD2", "ledger"),
new Emoji(":notebook:", "\uD83D\uDCD3", "notebook"),
new Emoji(":notebook_with_decorative_cover:", "\uD83D\uDCD4", "notebook with decorative cover"),
new Emoji(":closed_book:", "\uD83D\uDCD5", "closed book"),
new Emoji(":open_book:", "\uD83D\uDCD6", "open book"),
new Emoji(":green_book:", "\uD83D\uDCD7", "green book"),
new Emoji(":blue_book:", "\uD83D\uDCD8", "blue book"),
new Emoji(":orange_book:", "\uD83D\uDCD9", "orange book"),
new Emoji(":books:", "\uD83D\uDCDA", "books"),
new Emoji(":name_badge:", "\uD83D\uDCDB", "name badge"),
new Emoji(":scroll:", "\uD83D\uDCDC", "scroll"),
new Emoji(":pencil:", "\uD83D\uDCDD", "memo"),
new Emoji(":telephone_receiver:", "\uD83D\uDCDE", "telephone receiver"),
new Emoji(":pager:", "\uD83D\uDCDF", "pager"),
new Emoji(":fax:", "\uD83D\uDCE0", "fax machine"),
new Emoji(":satellite:", "\uD83D\uDCE1", "satellite antenna"),
new Emoji(":loudspeaker:", "\uD83D\uDCE2", "public address loudspeaker"),
new Emoji(":mega:", "\uD83D\uDCE3", "cheering megaphone"),
new Emoji(":outbox_tray:", "\uD83D\uDCE4", "outbox tray"),
new Emoji(":inbox_tray:", "\uD83D\uDCE5", "inbox tray"),
new Emoji(":package:", "\uD83D\uDCE6", "package"),
new Emoji(":e-mail:", "\uD83D\uDCE7", "e-mail symbol"),
new Emoji(":incoming_envelope:", "\uD83D\uDCE8", "incoming envelope"),
new Emoji(":envelope_with_arrow:", "\uD83D\uDCE9", "envelope with downwards arrow above"),
new Emoji(":mailbox_closed:", "\uD83D\uDCEA", "closed mailbox with lowered flag"),
new Emoji(":mailbox:", "\uD83D\uDCEB", "closed mailbox with raised flag"),
new Emoji(":postbox:", "\uD83D\uDCEE", "postbox"),
new Emoji(":newspaper:", "\uD83D\uDCF0", "newspaper"),
new Emoji(":iphone:", "\uD83D\uDCF1", "mobile phone"),
new Emoji(":calling:", "\uD83D\uDCF2", "mobile phone with rightwards arrow at left"),
new Emoji(":vibration_mode:", "\uD83D\uDCF3", "vibration mode"),
new Emoji(":mobile_phone_off:", "\uD83D\uDCF4", "mobile phone off"),
new Emoji(":signal_strength:", "\uD83D\uDCF6", "antenna with bars"),
new Emoji(":camera:", "\uD83D\uDCF7", "camera"),
new Emoji(":video_camera:", "\uD83D\uDCF9", "video camera"),
new Emoji(":tv:", "\uD83D\uDCFA", "television"),
new Emoji(":radio:", "\uD83D\uDCFB", "radio"),
new Emoji(":vhs:", "\uD83D\uDCFC", "videocassette"),
new Emoji(":arrows_clockwise:", "\uD83D\uDD03", "clockwise downwards and upwards open circle arrows"),
new Emoji(":speaker:", "\uD83D\uDD0A", "speaker with three sound waves"),
new Emoji(":battery:", "\uD83D\uDD0B", "battery"),
new Emoji(":electric_plug:", "\uD83D\uDD0C", "electric plug"),
new Emoji(":mag:", "\uD83D\uDD0D", "left-pointing magnifying glass"),
new Emoji(":mag_right:", "\uD83D\uDD0E", "right-pointing magnifying glass"),
new Emoji(":lock_with_ink_pen:", "\uD83D\uDD0F", "lock with ink pen"),
new Emoji(":closed_lock_with_key:", "\uD83D\uDD10", "closed lock with key"),
new Emoji(":key:", "\uD83D\uDD11", "key"),
new Emoji(":lock:", "\uD83D\uDD12", "lock"),
new Emoji(":unlock:", "\uD83D\uDD13", "open lock"),
new Emoji(":bell:", "\uD83D\uDD14", "bell"),
new Emoji(":bookmark:", "\uD83D\uDD16", "bookmark"),
new Emoji(":link:", "\uD83D\uDD17", "link symbol"),
new Emoji(":radio_button:", "\uD83D\uDD18", "radio button"),
new Emoji(":back:", "\uD83D\uDD19", "back with leftwards arrow above"),
new Emoji(":end:", "\uD83D\uDD1A", "end with leftwards arrow above"),
new Emoji(":on:", "\uD83D\uDD1B", "on with exclamation mark with left right arrow above"),
new Emoji(":soon:", "\uD83D\uDD1C", "soon with rightwards arrow above"),
new Emoji(":top:", "\uD83D\uDD1D", "top with upwards arrow above"),
new Emoji(":underage:", "\uD83D\uDD1E", "no one under eighteen symbol"),
new Emoji(":keycap_ten:", "\uD83D\uDD1F", "keycap ten"),
new Emoji(":capital_abcd:", "\uD83D\uDD20", "input symbol for latin capital letters"),
new Emoji(":abcd:", "\uD83D\uDD21", "input symbol for latin small letters"),
new Emoji(":1234:", "\uD83D\uDD22", "input symbol for numbers"),
new Emoji(":symbols:", "\uD83D\uDD23", "input symbol for symbols"),
new Emoji(":abc:", "\uD83D\uDD24", "input symbol for latin letters"),
new Emoji(":fire:", "\uD83D\uDD25", "fire"),
new Emoji(":flashlight:", "\uD83D\uDD26", "electric torch"),
new Emoji(":wrench:", "\uD83D\uDD27", "wrench"),
new Emoji(":hammer:", "\uD83D\uDD28", "hammer"),
new Emoji(":nut_and_bolt:", "\uD83D\uDD29", "nut and bolt"),
new Emoji(":hocho:", "\uD83D\uDD2A", "hocho"),
new Emoji(":gun:", "\uD83D\uDD2B", "pistol"),
new Emoji(":crystal_ball:", "\uD83D\uDD2E", "crystal ball"),
new Emoji(":six_pointed_star:", "\uD83D\uDD2F", "six pointed star with middle dot"),
new Emoji(":beginner:", "\uD83D\uDD30", "japanese symbol for beginner"),
new Emoji(":trident:", "\uD83D\uDD31", "trident emblem"),
new Emoji(":black_square_button:", "\uD83D\uDD32", "black square button"),
new Emoji(":white_square_button:", "\uD83D\uDD33", "white square button"),
new Emoji(":red_circle:", "\uD83D\uDD34", "large red circle"),
new Emoji(":large_blue_circle:", "\uD83D\uDD35", "large blue circle"),
new Emoji(":large_orange_diamond:", "\uD83D\uDD36", "large orange diamond"),
new Emoji(":large_blue_diamond:", "\uD83D\uDD37", "large blue diamond"),
new Emoji(":small_orange_diamond:", "\uD83D\uDD38", "small orange diamond"),
new Emoji(":small_blue_diamond:", "\uD83D\uDD39", "small blue diamond"),
new Emoji(":small_red_triangle:", "\uD83D\uDD3A", "up-pointing red triangle"),
new Emoji(":small_red_triangle_down:", "\uD83D\uDD3B", "down-pointing red triangle"),
new Emoji(":arrow_up_small:", "\uD83D\uDD3C", "up-pointing small red triangle"),
new Emoji(":arrow_down_small:", "\uD83D\uDD3D", "down-pointing small red triangle"),
new Emoji(":globe_with_meridians:", "\uD83C\uDF10", "globe with meridians"),
new Emoji(":waxing_crescent_moon:", "\uD83C\uDF12", "waxing crescent moon symbol"),
new Emoji(":waning_gibbous_moon:", "\uD83C\uDF16", "waning gibbous moon symbol"),
new Emoji(":last_quarter_moon:", "\uD83C\uDF17", "last quarter moon symbol"),
new Emoji(":waning_crescent_moon:", "\uD83C\uDF18", "waning crescent moon symbol"),
new Emoji(":new_moon_with_face:", "\uD83C\uDF1A", "new moon with face"),
new Emoji(":last_quarter_moon_with_face:", "\uD83C\uDF1C", "last quarter moon with face"),
new Emoji(":full_moon_with_face:", "\uD83C\uDF1D", "full moon with face"),
new Emoji(":sun_with_face:", "\uD83C\uDF1E", "sun with face"),
new Emoji(":baby_bottle:", "\uD83C\uDF7C", "baby bottle"),
new Emoji(":european_post_office:", "\uD83C\uDFE4", "european post office"),
new Emoji(":busts_in_silhouette:", "\uD83D\uDC65", "busts in silhouette"),
new Emoji(":two_men_holding_hands:", "\uD83D\uDC6C", "two men holding hands"),
new Emoji(":two_women_holding_hands:", "\uD83D\uDC6D", "two women holding hands"),
new Emoji(":thought_balloon:", "\uD83D\uDCAD", "thought balloon"),
new Emoji(":euro:", "\uD83D\uDCB6", "banknote with euro sign"),
new Emoji(":pound:", "\uD83D\uDCB7", "banknote with pound sign"),
new Emoji(":mailbox_with_mail:", "\uD83D\uDCEC", "open mailbox with raised flag"),
new Emoji(":mailbox_with_no_mail:", "\uD83D\uDCED", "open mailbox with lowered flag"),
new Emoji(":postal_horn:", "\uD83D\uDCEF", "postal horn"),
new Emoji(":no_mobile_phones:", "\uD83D\uDCF5", "no mobile phones"),
new Emoji(":twisted_rightwards_arrows:", "\uD83D\uDD00", "twisted rightwards arrows"),
new Emoji(":repeat:", "\uD83D\uDD01", "clockwise rightwards and leftwards open circle arrows"),
new Emoji(":repeat_one:", "\uD83D\uDD02", "clockwise rightwards and leftwards open circle arrows with circled one overlay"),
new Emoji(":arrows_counterclockwise:", "\uD83D\uDD04", "anticlockwise downwards and upwards open circle arrows"),
new Emoji(":low_brightness:", "\uD83D\uDD05", "low brightness symbol"),
new Emoji(":high_brightness:", "\uD83D\uDD06", "high brightness symbol"),
new Emoji(":mute:", "\uD83D\uDD07", "speaker with cancellation stroke"),
new Emoji(":sound:", "\uD83D\uDD09", "speaker with one sound wave"),
new Emoji(":no_bell:", "\uD83D\uDD15", "bell with cancellation stroke"),
new Emoji(":microscope:", "\uD83D\uDD2C", "microscope"),
new Emoji(":telescope:", "\uD83D\uDD2D", "telescope"),
new Emoji(":clock1:", "\uD83D\uDD50", "clock face one oclock"),
new Emoji(":clock2:", "\uD83D\uDD51", "clock face two oclock"),
new Emoji(":clock3:", "\uD83D\uDD52", "clock face three oclock"),
new Emoji(":clock4:", "\uD83D\uDD53", "clock face four oclock"),
new Emoji(":clock5:", "\uD83D\uDD54", "clock face five oclock"),
new Emoji(":clock6:", "\uD83D\uDD55", "clock face six oclock"),
new Emoji(":clock7:", "\uD83D\uDD56", "clock face seven oclock"),
new Emoji(":clock8:", "\uD83D\uDD57", "clock face eight oclock"),
new Emoji(":clock9:", "\uD83D\uDD58", "clock face nine oclock"),
new Emoji(":clock10:", "\uD83D\uDD59", "clock face ten oclock"),
new Emoji(":clock11:", "\uD83D\uDD5A", "clock face eleven oclock"),
new Emoji(":clock12:", "\uD83D\uDD5B", "clock face twelve oclock"),
new Emoji(":clock130:", "\uD83D\uDD5C", "clock face one-thirty"),
new Emoji(":clock230:", "\uD83D\uDD5D", "clock face two-thirty"),
new Emoji(":clock330:", "\uD83D\uDD5E", "clock face three-thirty"),
new Emoji(":clock430:", "\uD83D\uDD5F", "clock face four-thirty"),
new Emoji(":clock530:", "\uD83D\uDD60", "clock face five-thirty"),
new Emoji(":clock630:", "\uD83D\uDD61", "clock face six-thirty"),
new Emoji(":clock730:", "\uD83D\uDD62", "clock face seven-thirty"),
new Emoji(":clock830:", "\uD83D\uDD63", "clock face eight-thirty"),
new Emoji(":clock930:", "\uD83D\uDD64", "clock face nine-thirty"),
new Emoji(":clock1030:", "\uD83D\uDD65", "clock face ten-thirty"),
new Emoji(":clock1130:", "\uD83D\uDD66", "clock face eleven-thirty"),
new Emoji(":clock1230:", "\uD83D\uDD67", "clock face twelve-thirty"),
});
}
/* Read the list of emojis from a raw file. Will initialize only once. */
public static void init(Resources res)
{
if (num_groups > 0)
return;
try
{
ArrayList<Emoji[]> groups = new ArrayList<Emoji[]>();
InputStream inputStream = res.openRawResource(R.raw.emojis);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while (true)
{
line = reader.readLine();
if (line == null)
break;
int group_len = Integer.parseInt(line);
Emoji[] grp = new Emoji[group_len];
for (int i = 0; i < group_len; i++)
{
line = reader.readLine();
String[] f = line.split(" ", 3);
grp[i] = new Emoji(f[0], f[1], f[2]);
}
groups.add(grp);
}
num_groups = groups.size();
emojis_by_group = groups.toArray(new Emoji[0][]);
}
catch (IOException e) {}
}
}

View File

@ -21,7 +21,7 @@ import java.util.HashSet;
public class EmojiGridView extends GridView
implements GridView.OnItemClickListener
{
public static final int TYPE_LAST_USE = -1;
public static final int GROUP_LAST_USE = -1;
public static final int COLUMN_WIDTH = 192;
public static final float EMOJI_SIZE = 32.f;
@ -38,15 +38,16 @@ public class EmojiGridView extends GridView
public EmojiGridView(Context context, AttributeSet attrs)
{
super(context, attrs);
Emoji.init(context.getResources());
setOnItemClickListener(this);
setColumnWidth(COLUMN_WIDTH);
loadLastUsed();
setEmojiType((_lastUsed.size() == 0) ? Emoji.TYPE_EMOTICONS : TYPE_LAST_USE);
setEmojiGroup((_lastUsed.size() == 0) ? 0 : GROUP_LAST_USE);
}
public void setEmojiType(int type)
public void setEmojiGroup(int group)
{
_emojiArray = (type == TYPE_LAST_USE) ? getLastEmojis() : Emoji.getEmojisByType(type);
_emojiArray = (group == GROUP_LAST_USE) ? getLastEmojis() : Emoji.getEmojisByGroup(group);
setAdapter(new EmojiViewAdpater((Keyboard2)getContext(), _emojiArray));
}

View File

@ -0,0 +1,26 @@
package juloo.keyboard2;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
public class EmojiGroupButtonsBar extends LinearLayout
{
public EmojiGroupButtonsBar(Context context, AttributeSet attrs)
{
super(context, attrs);
Emoji.init(context.getResources());
add_group(EmojiGridView.GROUP_LAST_USE, "\uD83D\uDD59");
for (int i = 0; i < Emoji.num_groups; i++)
{
Emoji first = Emoji.getEmojisByGroup(i)[0];
add_group(i, first.getSymbol(0));
}
}
private void add_group(int id, String symbol)
{
addView(new EmojiTypeButton(getContext(), id, symbol), new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1.f));
}
}

View File

@ -1,26 +1,26 @@
package juloo.keyboard2;
import android.content.Context;
import android.util.AttributeSet;
import android.view.ContextThemeWrapper;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;
import java.util.HashMap;
/* Emoji "types" are groups. This class is misnamed. */
public class EmojiTypeButton extends Button
implements View.OnTouchListener
{
private int _emojiType;
public EmojiTypeButton(Context context, AttributeSet attrs)
{
super(context, attrs);
EmojiTypeDef def = _types.get(attrs.getAttributeValue(null, "emoji_type"));
static private final int DEFAULT_GROUP = 0;
_emojiType = def.getTypeId();
setText(def.getButtonText());
public EmojiTypeButton(Context context, int group_id, String symbol)
{
super(new ContextThemeWrapper(context, R.style.emojiTypeButton), null, 0);
_emojiType = group_id;
setText(symbol);
setOnTouchListener(this);
}
@ -31,45 +31,7 @@ public class EmojiTypeButton extends Button
if (event.getAction() != MotionEvent.ACTION_DOWN)
return (false);
emojiGrid = (EmojiGridView)((ViewGroup)(getParent().getParent())).findViewById(R.id.emoji_grid);
emojiGrid.setEmojiType(_emojiType);
emojiGrid.setEmojiGroup(_emojiType);
return (true);
}
private static HashMap<String, EmojiTypeDef> _types = new HashMap<String, EmojiTypeDef>();
static
{
_types.put("LAST_USE", new EmojiTypeDef(EmojiGridView.TYPE_LAST_USE, "\uD83D\uDD59"));
_types.put("EMOTICONS", new EmojiTypeDef(Emoji.TYPE_EMOTICONS, "\uD83D\uDE03"));
_types.put("TRANSPORT", new EmojiTypeDef(Emoji.TYPE_TRANSPORT, "\uD83D\uDE8C"));
_types.put("FOOD", new EmojiTypeDef(Emoji.TYPE_FOOD, "\uD83C\uDF55"));
_types.put("NATURE", new EmojiTypeDef(Emoji.TYPE_NATURE, "\uD83C\uDF37"));
_types.put("FEST", new EmojiTypeDef(Emoji.TYPE_FEST, "\uD83C\uDF88"));
_types.put("ANIMAL", new EmojiTypeDef(Emoji.TYPE_ANIMAL, "\uD83D\uDC31"));
_types.put("HUMAN", new EmojiTypeDef(Emoji.TYPE_HUMAN, "\uD83D\uDC9C"));
_types.put("UNCATEGORIZED", new EmojiTypeDef(Emoji.TYPE_UNCATEGORIZED, "\uD83D\uDCA5"));
_types.put("DINGBATS", new EmojiTypeDef(Emoji.TYPE_DINGBATS, "\u2705"));
}
private static class EmojiTypeDef
{
private int _typeId;
private String _buttonText;
public EmojiTypeDef(int typeId, String buttonText)
{
_typeId = typeId;
_buttonText = buttonText;
}
public int getTypeId()
{
return (_typeId);
}
public String getButtonText()
{
return (_buttonText);
}
}
}