Start with emojis

This commit is contained in:
jaguillo 2015-10-23 14:22:43 +02:00
parent 7fb89b0c95
commit db20d52884
8 changed files with 2815 additions and 22 deletions

1757
emoji_gen.py Normal file

File diff suppressed because it is too large Load Diff

View File

@ -11,4 +11,4 @@
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target.
target=android-23
target=android-22

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<VerticalLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:hardwareAccelerated="false">
<juloo.keyboard2.EmojiGridView
android:background="@color/bg"
/>
</VerticalLayout>

View File

@ -0,0 +1,906 @@
package juloo.keyboard2;
import java.util.HashMap;
public class Emoji
{
public static final int TYPE_EMOTICONS = 1;
public static final int TYPE_DINGBATS = 2;
public static final int TYPE_TRANSPORT = 3;
public static final int TYPE_UNCATEGORIZED = 4;
public static final int TYPE_ENCLOSED_CHARACTERS = 5;
private final String _name;
private final String _bytecode;
private final String _desc;
private Emoji(String name, String bytecode, String desc)
{
_name = name;
_bytecode = bytecode;
_desc = desc;
}
public String getName()
{
return (_name);
}
public String getBytecode()
{
return (_bytecode);
}
public String getDescription()
{
return (_desc);
}
private static final HashMap<Integer, Emoji[]> emoji_type_map = new HashMap<Integer, Emoji[]>();
public static Emoji[] getEmojiByType(int type)
{
return (emoji_type_map.get(type));
}
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", "black scissors"),
new Emoji("", "\u2705", "white heavy check mark"),
new Emoji("", "\u2708", "airplane"),
new Emoji("", "\u2709", "envelope"),
new Emoji("", "\u270A", "raised fist"),
new Emoji("", "\u270B", "raised hand"),
new Emoji("", "\u270C", "victory hand"),
new Emoji("", "\u270F", "pencil"),
new Emoji("", "\u2712", "black nib"),
new Emoji("", "\u2714", "heavy check mark"),
new Emoji("", "\u2716", "heavy multiplication x"),
new Emoji("", "\u2728", "sparkles"),
new Emoji("", "\u2733", "eight spoked asterisk"),
new Emoji("", "\u2734", "eight pointed black star"),
new Emoji("", "\u2744", "snowflake"),
new Emoji("", "\u2747", "sparkle"),
new Emoji("", "\u274C", "cross mark"),
new Emoji("", "\u274E", "negative squared cross mark"),
new Emoji("", "\u2753", "black question mark ornament"),
new Emoji("", "\u2754", "white question mark ornament"),
new Emoji("", "\u2755", "white exclamation mark ornament"),
new Emoji("", "\u2757", "heavy exclamation mark symbol"),
new Emoji("", "\u2764", "heavy black heart"),
new Emoji("", "\u2795", "heavy plus sign"),
new Emoji("", "\u2796", "heavy minus sign"),
new Emoji("", "\u2797", "heavy division sign"),
new Emoji("", "\u27A1", "black rightwards arrow"),
new Emoji("", "\u27B0", "curly loop"),
});
emoji_type_map.put(TYPE_TRANSPORT, new Emoji[]
{
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"),
});
emoji_type_map.put(TYPE_ENCLOSED_CHARACTERS, new Emoji[]
{
new Emoji("", "\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("", "\uD83C\uDDE9\uD83C\uDDEA", "regional indicator symbol letter d + regional indicator symbol letter e"),
new Emoji("", "\uD83C\uDDEC\uD83C\uDDE7", "regional indicator symbol letter g + regional indicator symbol letter b"),
new Emoji("", "\uD83C\uDDE8\uD83C\uDDF3", "regional indicator symbol letter c + regional indicator symbol letter n"),
new Emoji("", "\uD83C\uDDEF\uD83C\uDDF5", "regional indicator symbol letter j + regional indicator symbol letter p"),
new Emoji("", "\uD83C\uDDF0\uD83C\uDDF7", "regional indicator symbol letter k + regional indicator symbol letter r"),
new Emoji("", "\uD83C\uDDEB\uD83C\uDDF7", "regional indicator symbol letter f + regional indicator symbol letter r"),
new Emoji("", "\uD83C\uDDEA\uD83C\uDDF8", "regional indicator symbol letter e + regional indicator symbol letter s"),
new Emoji("", "\uD83C\uDDEE\uD83C\uDDF9", "regional indicator symbol letter i + regional indicator symbol letter t"),
new Emoji("", "\uD83C\uDDFA\uD83C\uDDF8", "regional indicator symbol letter u + regional indicator symbol letter s"),
new Emoji("", "\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"),
});
emoji_type_map.put(TYPE_UNCATEGORIZED, new Emoji[]
{
new Emoji("", "\u00A9", "copyright sign"),
new Emoji("", "\u00AE", "registered sign"),
new Emoji("", "\u203C", "double exclamation mark"),
new Emoji("", "\u2049", "exclamation question mark"),
new Emoji("", "\u0038\u20E3", "digit eight + combining enclosing keycap"),
new Emoji("", "\u0039\u20E3", "digit nine + combining enclosing keycap"),
new Emoji("", "\u0037\u20E3", "digit seven + combining enclosing keycap"),
new Emoji("", "\u0036\u20E3", "digit six + combining enclosing keycap"),
new Emoji("", "\u0031\u20E3", "digit one + combining enclosing keycap"),
new Emoji("", "\u0030\u20E3", "digit zero + combining enclosing keycap"),
new Emoji("", "\u0032\u20E3", "digit two + combining enclosing keycap"),
new Emoji("", "\u0033\u20E3", "digit three + combining enclosing keycap"),
new Emoji("", "\u0035\u20E3", "digit five + combining enclosing keycap"),
new Emoji("", "\u0034\u20E3", "digit four + combining enclosing keycap"),
new Emoji("", "\u0023\u20E3", "number sign + combining enclosing keycap"),
new Emoji("", "\u2122", "trade mark sign"),
new Emoji("", "\u2139", "information source"),
new Emoji("", "\u2194", "left right arrow"),
new Emoji("", "\u2195", "up down arrow"),
new Emoji("", "\u2196", "north west arrow"),
new Emoji("", "\u2197", "north east arrow"),
new Emoji("", "\u2198", "south east arrow"),
new Emoji("", "\u2199", "south west arrow"),
new Emoji("", "\u21A9", "leftwards arrow with hook"),
new Emoji("", "\u21AA", "rightwards arrow with hook"),
new Emoji("", "\u231A", "watch"),
new Emoji("", "\u231B", "hourglass"),
new Emoji("", "\u23E9", "black right-pointing double triangle"),
new Emoji("", "\u23EA", "black left-pointing double triangle"),
new Emoji("", "\u23EB", "black up-pointing double triangle"),
new Emoji("", "\u23EC", "black down-pointing double triangle"),
new Emoji("", "\u23F0", "alarm clock"),
new Emoji("", "\u23F3", "hourglass with flowing sand"),
new Emoji("", "\u25AA", "black small square"),
new Emoji("", "\u25AB", "white small square"),
new Emoji("", "\u25B6", "black right-pointing triangle"),
new Emoji("", "\u25C0", "black left-pointing triangle"),
new Emoji("", "\u25FB", "white medium square"),
new Emoji("", "\u25FC", "black medium square"),
new Emoji("", "\u25FD", "white medium small square"),
new Emoji("", "\u25FE", "black medium small square"),
new Emoji("", "\u2600", "black sun with rays"),
new Emoji("", "\u2601", "cloud"),
new Emoji("", "\u260E", "black telephone"),
new Emoji("", "\u2611", "ballot box with check"),
new Emoji("", "\u2614", "umbrella with rain drops"),
new Emoji("", "\u2615", "hot beverage"),
new Emoji("", "\u261D", "white up pointing index"),
new Emoji("", "\u263A", "white smiling face"),
new Emoji("", "\u2648", "aries"),
new Emoji("", "\u2649", "taurus"),
new Emoji("", "\u264A", "gemini"),
new Emoji("", "\u264B", "cancer"),
new Emoji("", "\u264C", "leo"),
new Emoji("", "\u264D", "virgo"),
new Emoji("", "\u264E", "libra"),
new Emoji("", "\u264F", "scorpius"),
new Emoji("", "\u2650", "sagittarius"),
new Emoji("", "\u2651", "capricorn"),
new Emoji("", "\u2652", "aquarius"),
new Emoji("", "\u2653", "pisces"),
new Emoji("", "\u2660", "black spade suit"),
new Emoji("", "\u2663", "black club suit"),
new Emoji("", "\u2665", "black heart suit"),
new Emoji("", "\u2666", "black diamond suit"),
new Emoji("", "\u2668", "hot springs"),
new Emoji("", "\u267B", "black universal recycling symbol"),
new Emoji("", "\u267F", "wheelchair symbol"),
new Emoji("", "\u2693", "anchor"),
new Emoji("", "\u26A0", "warning sign"),
new Emoji("", "\u26A1", "high voltage sign"),
new Emoji("", "\u26AA", "medium white circle"),
new Emoji("", "\u26AB", "medium black circle"),
new Emoji("", "\u26BD", "soccer ball"),
new Emoji("", "\u26BE", "baseball"),
new Emoji("", "\u26C4", "snowman without snow"),
new Emoji("", "\u26C5", "sun behind cloud"),
new Emoji("", "\u26CE", "ophiuchus"),
new Emoji("", "\u26D4", "no entry"),
new Emoji("", "\u26EA", "church"),
new Emoji("", "\u26F2", "fountain"),
new Emoji("", "\u26F3", "flag in hole"),
new Emoji("", "\u26F5", "sailboat"),
new Emoji("", "\u26FA", "tent"),
new Emoji("", "\u26FD", "fuel pump"),
new Emoji("", "\u2934", "arrow pointing rightwards then curving upwards"),
new Emoji("", "\u2935", "arrow pointing rightwards then curving downwards"),
new Emoji("", "\u2B05", "leftwards black arrow"),
new Emoji("", "\u2B06", "upwards black arrow"),
new Emoji("", "\u2B07", "downwards black arrow"),
new Emoji("", "\u2B1B", "black large square"),
new Emoji("", "\u2B1C", "white large square"),
new Emoji("", "\u2B50", "white medium star"),
new Emoji("", "\u2B55", "heavy large circle"),
new Emoji("", "\u3030", "wavy dash"),
new Emoji("", "\u303D", "part alternation mark"),
new Emoji("", "\u3297", "circled ideograph congratulation"),
new Emoji("", "\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(":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(":earth_asia:", "\uD83C\uDF0F", "earth globe asia-australia"),
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"),
new Emoji(":star2:", "\uD83C\uDF1F", "glowing star"),
new Emoji("", "\uD83C\uDF20", "shooting star"),
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(":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"),
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"),
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"),
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(":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(":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(":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(":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(":footprints:", "\uD83D\uDC63", "footprints"),
new Emoji(":bust_in_silhouette:", "\uD83D\uDC64", "bust in silhouette"),
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(":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"),
new Emoji(":syringe:", "\uD83D\uDC89", "syringe"),
new Emoji(":pill:", "\uD83D\uDC8A", "pill"),
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"),
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(":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(":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(":earth_africa:", "\uD83C\uDF0D", "earth globe europe-africa"),
new Emoji(":earth_americas:", "\uD83C\uDF0E", "earth globe americas"),
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(":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"),
new Emoji(":baby_bottle:", "\uD83C\uDF7C", "baby bottle"),
new Emoji(":horse_racing:", "\uD83C\uDFC7", "horse racing"),
new Emoji(":rugby_football:", "\uD83C\uDFC9", "rugby football"),
new Emoji(":european_post_office:", "\uD83C\uDFE4", "european post office"),
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"),
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(":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"),
});
}
}

View File

@ -0,0 +1,107 @@
package juloo.keyboard2;
import android.graphics.Typeface;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.TextView;
public class EmojiGridView extends GridView
implements GridView.OnItemClickListener
{
public static final int COLUMN_WIDTH = 192;
public static final int EMOJI_PANE_HEIGHT = 720;
public static final int EMOJI_PANE_BG = 0xFF191919;
public static final float EMOJI_SIZE = 32.f;
public EmojiGridView(Keyboard2 context)
{
super(context);
setOnItemClickListener(this);
EmojiViewAdpater adpater = new EmojiViewAdpater(context);
adpater.setEmojiSet(Emoji.getEmojiByType(Emoji.TYPE_EMOTICONS));
setColumnWidth(COLUMN_WIDTH);
setBackgroundColor(EMOJI_PANE_BG);
setAdapter(adpater);
}
public void onItemClick(AdapterView<?> parent, View v, int pos, long id)
{
System.out.println("Lol emoji: " + Emoji.getEmojiByType(Emoji.TYPE_EMOTICONS)[pos].getName());
}
@Override
public void onMeasure(int wSpec, int hSpec)
{
super.onMeasure(wSpec, hSpec);
setNumColumns(getMeasuredWidth() / COLUMN_WIDTH);
setMeasuredDimension(wSpec, EMOJI_PANE_HEIGHT);
}
private static class EmojiView extends TextView
{
private static ViewGroup.LayoutParams _layoutParams = null;
public EmojiView(Keyboard2 context)
{
super(context);
setTextSize(EMOJI_SIZE);
setGravity(Gravity.CENTER);
if (_layoutParams == null)
_layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
setLayoutParams(_layoutParams);
}
public void setEmoji(Emoji emoji)
{
setText(emoji.getBytecode());
}
}
private static class EmojiViewAdpater extends BaseAdapter
{
private Keyboard2 _main;
private Emoji[] _emojiSet = null;
public EmojiViewAdpater(Keyboard2 main)
{
_main = main;
}
public void setEmojiSet(Emoji[] set)
{
_emojiSet = set;
}
public int getCount()
{
if (_emojiSet == null)
return (0);
return (_emojiSet.length);
}
public Object getItem(int pos)
{
return (_emojiSet[pos]);
}
public long getItemId(int pos)
{
return (pos);
}
public View getView(int pos, View convertView, ViewGroup parent)
{
EmojiView view = (EmojiView)convertView;
if (view == null)
view = new EmojiView(_main);
view.setEmoji(_emojiSet[pos]);
return (view);
}
}
}

View File

@ -12,10 +12,14 @@ import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
/*
** TODO: move config values in a Config object
*/
public class Keyboard2 extends InputMethodService
implements SharedPreferences.OnSharedPreferenceChangeListener
{
private Keyboard2View _inputView = null;
private Keyboard2View _keyboardView;
private ViewGroup _emojiPane = null;
private KeyboardData _textKeyboard = null;
private KeyboardData _numericKeyboard = null;
@ -26,34 +30,43 @@ public class Keyboard2 extends InputMethodService
PreferenceManager.setDefaultValues(this, R.xml.settings, false);
PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this);
updateConfig();
_inputView = (Keyboard2View)getLayoutInflater().inflate(R.layout.input, null);
_inputView.reset_prefs(this);
_keyboardView = (Keyboard2View)getLayoutInflater().inflate(R.layout.keyboard, null);
_keyboardView.reset_prefs(this);
}
private View getEmojiPane()
{
if (_emojiPane == null)
{
}
return (_emojiPane);
}
@Override
public View onCreateInputView()
{
ViewGroup parent = (ViewGroup)_inputView.getParent();
// return (new EmojiGridView(this)); // TMP
ViewGroup parent = (ViewGroup)_keyboardView.getParent();
if (parent != null)
parent.removeView(_inputView);
return (_inputView);
parent.removeView(_keyboardView);
return (_keyboardView);
}
@Override
public void onStartInputView(EditorInfo info, boolean restarting)
{
if ((info.inputType & InputType.TYPE_CLASS_NUMBER) != 0)
_inputView.setKeyboard(_numericKeyboard);
_keyboardView.setKeyboard(_numericKeyboard);
else
_inputView.setKeyboard(_textKeyboard);
_keyboardView.setKeyboard(_textKeyboard);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)
{
updateConfig();
_inputView.reset_prefs(this);
_keyboardView.reset_prefs(this);
}
@Override
@ -64,7 +77,7 @@ public class Keyboard2 extends InputMethodService
@Override
public void onConfigurationChanged(Configuration newConfig)
{
_inputView.reset();
_keyboardView.reset();
}
private void updateConfig()
@ -83,28 +96,31 @@ public class Keyboard2 extends InputMethodService
public void handleKeyUp(KeyValue key, int flags)
{
int eventCode = key.getEventCode();
char keyChar = key.getChar(flags);
if (getCurrentInputConnection() == null)
return ;
if (key.getEventCode() == KeyValue.EVENT_CONFIG)
if (eventCode == KeyValue.EVENT_CONFIG)
{
Intent intent = new Intent(this, SettingsActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
else if (key.getEventCode() == KeyValue.EVENT_SWITCH_TEXT)
_inputView.setKeyboard(_textKeyboard);
else if (key.getEventCode() == KeyValue.EVENT_SWITCH_NUMERIC)
_inputView.setKeyboard(_numericKeyboard);
else if (eventCode == KeyValue.EVENT_SWITCH_TEXT)
_keyboardView.setKeyboard(_textKeyboard);
else if (eventCode == KeyValue.EVENT_SWITCH_NUMERIC)
_keyboardView.setKeyboard(_numericKeyboard);
else if ((flags & (KeyValue.FLAG_CTRL | KeyValue.FLAG_ALT)) != 0)
handleMetaKeyUp(key, flags);
// else if (key.getEventCode() == KeyEvent.KEYCODE_DEL)
// else if (eventCode == KeyEvent.KEYCODE_DEL)
// handleDelKey(1, 0);
// else if (key.getEventCode() == KeyEvent.KEYCODE_FORWARD_DEL)
// else if (eventCode == KeyEvent.KEYCODE_FORWARD_DEL)
// handleDelKey(0, 1);
else if (key.getChar(flags) == KeyValue.CHAR_NONE && key.getEventCode() != KeyValue.EVENT_NONE)
else if (keyChar == KeyValue.CHAR_NONE && eventCode != KeyValue.EVENT_NONE)
handleMetaKeyUp(key, flags);
else if (key.getChar(flags) != KeyValue.CHAR_NONE)
sendKeyChar(key.getChar(flags));
else if (keyChar != KeyValue.CHAR_NONE)
sendKeyChar(keyChar);
}
// private void handleDelKey(int before, int after)

View File

@ -412,7 +412,7 @@ public class Keyboard2View extends View
canvas.drawText(k.getSymbol(_flags), x, y, right ? _keySubLabelRightPaint : _keySubLabelPaint);
}
private class KeyDown
private static class KeyDown
{
public int pointerId;
public KeyValue value;