Merge branch 'dev/13/fp3/lineage-20.0' into int/13/fp3
* dev/13/fp3/lineage-20.0: (29 commits)
LatinIME: Theme swipe elements with Material You styling
LatinIME: Add tabletNumSpaceKeyStyle style for Material You theme
LatinIME: update follow system theme label
LatinIME: Initial You
LatinIME: add attr for vertical hint padding
LatinIME: show emoji key when language switch key is not showing
LatinIME: fit more emoji in a page
LatinIME: remove unused drawables
LatinIME: Properly refresh summary
LatinIME: Remove unused resources
LatinIME: Fix invisible icon
LatinIME: Remove hardcoded emoji row logic
LatinIME: Enable full flag emoji support
LatinIME: Fix NPE in getKeyboardThemeName
LatinIME: Move keyboard height setting from debug to advanced
LatinIME: Fix back-arrow finishing activity
LatinIME: Remove dividers everywhere
LatinIME: Do we really still want Holo?
LatinIME: Add setting for theme to follow system setting
LatinIME: Update key_styles_currency euro lists.
...
Change-Id: Iec087a0f0e9545607a6b7c2857a6c5b6a698ca98
diff --git a/java/res/anim/key_preview_dismiss_holo.xml b/java/res/anim/key_preview_dismiss_holo.xml
deleted file mode 100644
index 0bf7254..0000000
--- a/java/res/anim/key_preview_dismiss_holo.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2014, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<set xmlns:android="http://schemas.android.com/apk/res/android">
- <objectAnimator
- android:propertyName="scaleX"
- android:duration="53"
- android:valueFrom="1.00"
- android:valueTo="0.94" />
- <objectAnimator
- android:propertyName="scaleY"
- android:duration="53"
- android:valueFrom="1.00"
- android:valueTo="0.94" />
-</set>
diff --git a/java/res/anim/key_preview_show_up_holo.xml b/java/res/anim/key_preview_show_up_holo.xml
deleted file mode 100644
index ad2e413..0000000
--- a/java/res/anim/key_preview_show_up_holo.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2014, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<set xmlns:android="http://schemas.android.com/apk/res/android">
- <objectAnimator
- android:propertyName="scaleX"
- android:duration="17"
- android:valueFrom="0.98"
- android:valueTo="1.00" />
- <objectAnimator
- android:propertyName="scaleY"
- android:duration="17"
- android:valueFrom="0.98"
- android:valueTo="1.00" />
-</set>
diff --git a/java/res/color/gesture_floating_preview_color_you.xml b/java/res/color/gesture_floating_preview_color_you.xml
new file mode 100644
index 0000000..5406500
--- /dev/null
+++ b/java/res/color/gesture_floating_preview_color_you.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <!-- This is necessary to add alpha to dynamic colors to a single theme -->
+ <item
+ android:alpha=".9"
+ android:color="@color/keyboard_background_you" />
+</selector>
diff --git a/java/res/color/sliding_key_input_preview_color_you.xml b/java/res/color/sliding_key_input_preview_color_you.xml
new file mode 100644
index 0000000..ac8e712
--- /dev/null
+++ b/java/res/color/sliding_key_input_preview_color_you.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <!-- This is necessary to add alpha to dynamic colors to a single theme -->
+ <item
+ android:alpha=".7"
+ android:color="@color/gesture_trail_color_you" />
+</selector>
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_active_ics_dark.9.png b/java/res/drawable-hdpi/btn_keyboard_key_active_ics_dark.9.png
deleted file mode 100644
index 9aa8db6..0000000
--- a/java/res/drawable-hdpi/btn_keyboard_key_active_ics_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_active_klp_dark.9.png b/java/res/drawable-hdpi/btn_keyboard_key_active_klp_dark.9.png
deleted file mode 100644
index fa2cb85..0000000
--- a/java/res/drawable-hdpi/btn_keyboard_key_active_klp_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_normal_holo_dark.9.png b/java/res/drawable-hdpi/btn_keyboard_key_normal_holo_dark.9.png
deleted file mode 100644
index fa2cb85..0000000
--- a/java/res/drawable-hdpi/btn_keyboard_key_normal_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_normal_holo_light.9.png b/java/res/drawable-hdpi/btn_keyboard_key_normal_holo_light.9.png
deleted file mode 100644
index 6da273b..0000000
--- a/java/res/drawable-hdpi/btn_keyboard_key_normal_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_normal_off_holo_dark.9.png b/java/res/drawable-hdpi/btn_keyboard_key_normal_off_holo_dark.9.png
deleted file mode 100644
index b1af23b..0000000
--- a/java/res/drawable-hdpi/btn_keyboard_key_normal_off_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_normal_on_ics_dark.9.png b/java/res/drawable-hdpi/btn_keyboard_key_normal_on_ics_dark.9.png
deleted file mode 100644
index 9f4587b..0000000
--- a/java/res/drawable-hdpi/btn_keyboard_key_normal_on_ics_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_normal_on_klp_dark.9.png b/java/res/drawable-hdpi/btn_keyboard_key_normal_on_klp_dark.9.png
deleted file mode 100644
index 814e402..0000000
--- a/java/res/drawable-hdpi/btn_keyboard_key_normal_on_klp_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_ics.9.png b/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_ics.9.png
deleted file mode 100644
index c2e8b37..0000000
--- a/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_klp.9.png b/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_klp.9.png
deleted file mode 100644
index 10f8e97..0000000
--- a/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_pressed_ics_dark.9.png b/java/res/drawable-hdpi/btn_keyboard_key_pressed_ics_dark.9.png
deleted file mode 100644
index 7ec33dd..0000000
--- a/java/res/drawable-hdpi/btn_keyboard_key_pressed_ics_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_pressed_ics_light.9.png b/java/res/drawable-hdpi/btn_keyboard_key_pressed_ics_light.9.png
deleted file mode 100644
index 5612c51..0000000
--- a/java/res/drawable-hdpi/btn_keyboard_key_pressed_ics_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_pressed_klp_dark.9.png b/java/res/drawable-hdpi/btn_keyboard_key_pressed_klp_dark.9.png
deleted file mode 100644
index 90abe39..0000000
--- a/java/res/drawable-hdpi/btn_keyboard_key_pressed_klp_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_pressed_klp_light.9.png b/java/res/drawable-hdpi/btn_keyboard_key_pressed_klp_light.9.png
deleted file mode 100644
index 6768241..0000000
--- a/java/res/drawable-hdpi/btn_keyboard_key_pressed_klp_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_pressed_off_ics_dark.9.png b/java/res/drawable-hdpi/btn_keyboard_key_pressed_off_ics_dark.9.png
deleted file mode 100644
index 655bc01..0000000
--- a/java/res/drawable-hdpi/btn_keyboard_key_pressed_off_ics_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_pressed_off_klp_dark.9.png b/java/res/drawable-hdpi/btn_keyboard_key_pressed_off_klp_dark.9.png
deleted file mode 100644
index 48eeb3f..0000000
--- a/java/res/drawable-hdpi/btn_keyboard_key_pressed_off_klp_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_pressed_on_ics_dark.9.png b/java/res/drawable-hdpi/btn_keyboard_key_pressed_on_ics_dark.9.png
deleted file mode 100644
index 138e915..0000000
--- a/java/res/drawable-hdpi/btn_keyboard_key_pressed_on_ics_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_pressed_on_klp_dark.9.png b/java/res/drawable-hdpi/btn_keyboard_key_pressed_on_klp_dark.9.png
deleted file mode 100644
index 71e0683..0000000
--- a/java/res/drawable-hdpi/btn_keyboard_key_pressed_on_klp_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/emoji_category_tab_selected_ics.9.png b/java/res/drawable-hdpi/emoji_category_tab_selected_ics.9.png
deleted file mode 100644
index 9138cef..0000000
--- a/java/res/drawable-hdpi/emoji_category_tab_selected_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/emoji_category_tab_selected_klp.9.png b/java/res/drawable-hdpi/emoji_category_tab_selected_klp.9.png
deleted file mode 100644
index 345d05e..0000000
--- a/java/res/drawable-hdpi/emoji_category_tab_selected_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/emoji_category_tab_unselected_holo_dark.9.png b/java/res/drawable-hdpi/emoji_category_tab_unselected_holo_dark.9.png
deleted file mode 100644
index bbcfb2c..0000000
--- a/java/res/drawable-hdpi/emoji_category_tab_unselected_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_add_circle_white_24dp.png b/java/res/drawable-hdpi/ic_add_circle_white_24dp.png
deleted file mode 100644
index 314c521..0000000
--- a/java/res/drawable-hdpi/ic_add_circle_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_activity_activated_holo_dark.png b/java/res/drawable-hdpi/ic_emoji_activity_activated_holo_dark.png
deleted file mode 100644
index a79fb06..0000000
--- a/java/res/drawable-hdpi/ic_emoji_activity_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_activity_normal_holo_dark.png b/java/res/drawable-hdpi/ic_emoji_activity_normal_holo_dark.png
deleted file mode 100644
index 91b31d6..0000000
--- a/java/res/drawable-hdpi/ic_emoji_activity_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_emoticons_activated_holo_dark.png b/java/res/drawable-hdpi/ic_emoji_emoticons_activated_holo_dark.png
deleted file mode 100644
index 1c937c9..0000000
--- a/java/res/drawable-hdpi/ic_emoji_emoticons_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_emoticons_normal_holo_dark.png b/java/res/drawable-hdpi/ic_emoji_emoticons_normal_holo_dark.png
deleted file mode 100644
index 3508d24..0000000
--- a/java/res/drawable-hdpi/ic_emoji_emoticons_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_flag_activated_holo_dark.png b/java/res/drawable-hdpi/ic_emoji_flag_activated_holo_dark.png
deleted file mode 100644
index a79fcef..0000000
--- a/java/res/drawable-hdpi/ic_emoji_flag_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_flag_normal_holo_dark.png b/java/res/drawable-hdpi/ic_emoji_flag_normal_holo_dark.png
deleted file mode 100644
index 3200e39..0000000
--- a/java/res/drawable-hdpi/ic_emoji_flag_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_food_activated_holo_dark.png b/java/res/drawable-hdpi/ic_emoji_food_activated_holo_dark.png
deleted file mode 100644
index ea97f38..0000000
--- a/java/res/drawable-hdpi/ic_emoji_food_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_food_normal_holo_dark.png b/java/res/drawable-hdpi/ic_emoji_food_normal_holo_dark.png
deleted file mode 100644
index 6c214d7..0000000
--- a/java/res/drawable-hdpi/ic_emoji_food_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_nature_activated_holo_dark.png b/java/res/drawable-hdpi/ic_emoji_nature_activated_holo_dark.png
deleted file mode 100644
index 5525df2..0000000
--- a/java/res/drawable-hdpi/ic_emoji_nature_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_nature_normal_holo_dark.png b/java/res/drawable-hdpi/ic_emoji_nature_normal_holo_dark.png
deleted file mode 100644
index 34e16b9..0000000
--- a/java/res/drawable-hdpi/ic_emoji_nature_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_objects_activated_holo_dark.png b/java/res/drawable-hdpi/ic_emoji_objects_activated_holo_dark.png
deleted file mode 100644
index c3c7ec1..0000000
--- a/java/res/drawable-hdpi/ic_emoji_objects_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_objects_normal_holo_dark.png b/java/res/drawable-hdpi/ic_emoji_objects_normal_holo_dark.png
deleted file mode 100644
index f012d77..0000000
--- a/java/res/drawable-hdpi/ic_emoji_objects_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_people_activated_holo_dark.png b/java/res/drawable-hdpi/ic_emoji_people_activated_holo_dark.png
deleted file mode 100644
index cfacbc2..0000000
--- a/java/res/drawable-hdpi/ic_emoji_people_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_people_normal_holo_dark.png b/java/res/drawable-hdpi/ic_emoji_people_normal_holo_dark.png
deleted file mode 100644
index c54dbc1..0000000
--- a/java/res/drawable-hdpi/ic_emoji_people_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_places_activated_holo_dark.png b/java/res/drawable-hdpi/ic_emoji_places_activated_holo_dark.png
deleted file mode 100644
index 959dfdf..0000000
--- a/java/res/drawable-hdpi/ic_emoji_places_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_places_normal_holo_dark.png b/java/res/drawable-hdpi/ic_emoji_places_normal_holo_dark.png
deleted file mode 100644
index fc0d971..0000000
--- a/java/res/drawable-hdpi/ic_emoji_places_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_recents_activated_holo_dark.png b/java/res/drawable-hdpi/ic_emoji_recents_activated_holo_dark.png
deleted file mode 100644
index de570a1..0000000
--- a/java/res/drawable-hdpi/ic_emoji_recents_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_recents_normal_holo_dark.png b/java/res/drawable-hdpi/ic_emoji_recents_normal_holo_dark.png
deleted file mode 100644
index b256208..0000000
--- a/java/res/drawable-hdpi/ic_emoji_recents_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_symbols_activated_holo_dark.png b/java/res/drawable-hdpi/ic_emoji_symbols_activated_holo_dark.png
deleted file mode 100644
index af1fd27..0000000
--- a/java/res/drawable-hdpi/ic_emoji_symbols_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_symbols_normal_holo_dark.png b/java/res/drawable-hdpi/ic_emoji_symbols_normal_holo_dark.png
deleted file mode 100644
index 02b84d5..0000000
--- a/java/res/drawable-hdpi/ic_emoji_symbols_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_background_holo.9.png b/java/res/drawable-hdpi/keyboard_background_holo.9.png
deleted file mode 100644
index 7386875..0000000
--- a/java/res/drawable-hdpi/keyboard_background_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_background_ics.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_background_ics.9.png
deleted file mode 100644
index 28b406a..0000000
--- a/java/res/drawable-hdpi/keyboard_key_feedback_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_background_klp.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_background_klp.9.png
deleted file mode 100644
index be39415..0000000
--- a/java/res/drawable-hdpi/keyboard_key_feedback_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_left_background_ics.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_left_background_ics.9.png
deleted file mode 100644
index e42cd88..0000000
--- a/java/res/drawable-hdpi/keyboard_key_feedback_left_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_left_background_klp.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_left_background_klp.9.png
deleted file mode 100644
index 9fa6d00..0000000
--- a/java/res/drawable-hdpi/keyboard_key_feedback_left_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_ics.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_ics.9.png
deleted file mode 100644
index 1603440..0000000
--- a/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_klp.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_klp.9.png
deleted file mode 100644
index c73269b..0000000
--- a/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_more_background_ics.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_more_background_ics.9.png
deleted file mode 100644
index a40d427..0000000
--- a/java/res/drawable-hdpi/keyboard_key_feedback_more_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_more_background_klp.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_more_background_klp.9.png
deleted file mode 100644
index fffd402..0000000
--- a/java/res/drawable-hdpi/keyboard_key_feedback_more_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_right_background_ics.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_right_background_ics.9.png
deleted file mode 100644
index 1f68073..0000000
--- a/java/res/drawable-hdpi/keyboard_key_feedback_right_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_right_background_klp.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_right_background_klp.9.png
deleted file mode 100644
index 61c23c1..0000000
--- a/java/res/drawable-hdpi/keyboard_key_feedback_right_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_ics.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_ics.9.png
deleted file mode 100644
index ec53593..0000000
--- a/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_klp.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_klp.9.png
deleted file mode 100644
index 827d743..0000000
--- a/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_popup_panel_background_ics.9.png b/java/res/drawable-hdpi/keyboard_popup_panel_background_ics.9.png
deleted file mode 100644
index 53d7b6f..0000000
--- a/java/res/drawable-hdpi/keyboard_popup_panel_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_popup_panel_background_klp.9.png b/java/res/drawable-hdpi/keyboard_popup_panel_background_klp.9.png
deleted file mode 100644
index f9dd3b8..0000000
--- a/java/res/drawable-hdpi/keyboard_popup_panel_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_suggest_strip_holo.9.png b/java/res/drawable-hdpi/keyboard_suggest_strip_holo.9.png
deleted file mode 100644
index 32f4264..0000000
--- a/java/res/drawable-hdpi/keyboard_suggest_strip_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/suggestions_strip_divider_holo.png b/java/res/drawable-hdpi/suggestions_strip_divider_holo.png
deleted file mode 100644
index 5d44d9c..0000000
--- a/java/res/drawable-hdpi/suggestions_strip_divider_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_delete_holo_dark.png b/java/res/drawable-hdpi/sym_keyboard_delete_holo_dark.png
deleted file mode 100644
index d2d3560..0000000
--- a/java/res/drawable-hdpi/sym_keyboard_delete_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_language_switch_dark.png b/java/res/drawable-hdpi/sym_keyboard_language_switch_dark.png
deleted file mode 100644
index 78d3a1f..0000000
--- a/java/res/drawable-hdpi/sym_keyboard_language_switch_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_return_holo_dark.png b/java/res/drawable-hdpi/sym_keyboard_return_holo_dark.png
deleted file mode 100644
index 60d893c..0000000
--- a/java/res/drawable-hdpi/sym_keyboard_return_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_search_holo_dark.png b/java/res/drawable-hdpi/sym_keyboard_search_holo_dark.png
deleted file mode 100644
index fa0d1bd..0000000
--- a/java/res/drawable-hdpi/sym_keyboard_search_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_settings_holo_dark.png b/java/res/drawable-hdpi/sym_keyboard_settings_holo_dark.png
deleted file mode 100644
index 2ea4a74..0000000
--- a/java/res/drawable-hdpi/sym_keyboard_settings_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_shift_holo_dark.png b/java/res/drawable-hdpi/sym_keyboard_shift_holo_dark.png
deleted file mode 100644
index 544b7e1..0000000
--- a/java/res/drawable-hdpi/sym_keyboard_shift_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_shift_locked_holo_dark.png b/java/res/drawable-hdpi/sym_keyboard_shift_locked_holo_dark.png
deleted file mode 100644
index 9b1d6a0..0000000
--- a/java/res/drawable-hdpi/sym_keyboard_shift_locked_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_smiley_holo_dark.png b/java/res/drawable-hdpi/sym_keyboard_smiley_holo_dark.png
deleted file mode 100644
index cfacbc2..0000000
--- a/java/res/drawable-hdpi/sym_keyboard_smiley_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_space_holo_dark.png b/java/res/drawable-hdpi/sym_keyboard_space_holo_dark.png
deleted file mode 100644
index 12e27ad..0000000
--- a/java/res/drawable-hdpi/sym_keyboard_space_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_tab_holo_dark.png b/java/res/drawable-hdpi/sym_keyboard_tab_holo_dark.png
deleted file mode 100644
index 2e5f811..0000000
--- a/java/res/drawable-hdpi/sym_keyboard_tab_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_voice_holo_dark.png b/java/res/drawable-hdpi/sym_keyboard_voice_holo_dark.png
deleted file mode 100644
index 8a6336a..0000000
--- a/java/res/drawable-hdpi/sym_keyboard_voice_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_voice_off_holo_dark.png b/java/res/drawable-hdpi/sym_keyboard_voice_off_holo_dark.png
deleted file mode 100644
index edf1379..0000000
--- a/java/res/drawable-hdpi/sym_keyboard_voice_off_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_zwj_holo_dark.png b/java/res/drawable-hdpi/sym_keyboard_zwj_holo_dark.png
deleted file mode 100644
index 9f9bc17..0000000
--- a/java/res/drawable-hdpi/sym_keyboard_zwj_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_zwnj_holo_dark.png b/java/res/drawable-hdpi/sym_keyboard_zwnj_holo_dark.png
deleted file mode 100644
index f0f832e..0000000
--- a/java/res/drawable-hdpi/sym_keyboard_zwnj_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_active_ics_dark.9.png b/java/res/drawable-mdpi/btn_keyboard_key_active_ics_dark.9.png
deleted file mode 100644
index e810c77..0000000
--- a/java/res/drawable-mdpi/btn_keyboard_key_active_ics_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_active_klp_dark.9.png b/java/res/drawable-mdpi/btn_keyboard_key_active_klp_dark.9.png
deleted file mode 100644
index 8e9a349..0000000
--- a/java/res/drawable-mdpi/btn_keyboard_key_active_klp_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_normal_holo_dark.9.png b/java/res/drawable-mdpi/btn_keyboard_key_normal_holo_dark.9.png
deleted file mode 100644
index 8e9a349..0000000
--- a/java/res/drawable-mdpi/btn_keyboard_key_normal_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_normal_holo_light.9.png b/java/res/drawable-mdpi/btn_keyboard_key_normal_holo_light.9.png
deleted file mode 100644
index 2915588..0000000
--- a/java/res/drawable-mdpi/btn_keyboard_key_normal_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_normal_off_holo_dark.9.png b/java/res/drawable-mdpi/btn_keyboard_key_normal_off_holo_dark.9.png
deleted file mode 100644
index 58a316f..0000000
--- a/java/res/drawable-mdpi/btn_keyboard_key_normal_off_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_normal_on_ics_dark.9.png b/java/res/drawable-mdpi/btn_keyboard_key_normal_on_ics_dark.9.png
deleted file mode 100644
index f3fc641..0000000
--- a/java/res/drawable-mdpi/btn_keyboard_key_normal_on_ics_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_normal_on_klp_dark.9.png b/java/res/drawable-mdpi/btn_keyboard_key_normal_on_klp_dark.9.png
deleted file mode 100644
index b7b2dca..0000000
--- a/java/res/drawable-mdpi/btn_keyboard_key_normal_on_klp_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_ics.9.png b/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_ics.9.png
deleted file mode 100644
index 93a6e79..0000000
--- a/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_klp.9.png b/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_klp.9.png
deleted file mode 100644
index ee0aae2..0000000
--- a/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_pressed_ics_dark.9.png b/java/res/drawable-mdpi/btn_keyboard_key_pressed_ics_dark.9.png
deleted file mode 100644
index 8f340d3..0000000
--- a/java/res/drawable-mdpi/btn_keyboard_key_pressed_ics_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_pressed_ics_light.9.png b/java/res/drawable-mdpi/btn_keyboard_key_pressed_ics_light.9.png
deleted file mode 100644
index c39dd4a..0000000
--- a/java/res/drawable-mdpi/btn_keyboard_key_pressed_ics_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_pressed_klp_dark.9.png b/java/res/drawable-mdpi/btn_keyboard_key_pressed_klp_dark.9.png
deleted file mode 100644
index 4a92b80..0000000
--- a/java/res/drawable-mdpi/btn_keyboard_key_pressed_klp_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_pressed_klp_light.9.png b/java/res/drawable-mdpi/btn_keyboard_key_pressed_klp_light.9.png
deleted file mode 100644
index 0493859..0000000
--- a/java/res/drawable-mdpi/btn_keyboard_key_pressed_klp_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_pressed_off_ics_dark.9.png b/java/res/drawable-mdpi/btn_keyboard_key_pressed_off_ics_dark.9.png
deleted file mode 100644
index 53ea5f8..0000000
--- a/java/res/drawable-mdpi/btn_keyboard_key_pressed_off_ics_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_pressed_off_klp_dark.9.png b/java/res/drawable-mdpi/btn_keyboard_key_pressed_off_klp_dark.9.png
deleted file mode 100644
index 72125a0..0000000
--- a/java/res/drawable-mdpi/btn_keyboard_key_pressed_off_klp_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_pressed_on_ics_dark.9.png b/java/res/drawable-mdpi/btn_keyboard_key_pressed_on_ics_dark.9.png
deleted file mode 100644
index 69c84e7..0000000
--- a/java/res/drawable-mdpi/btn_keyboard_key_pressed_on_ics_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_pressed_on_klp_dark.9.png b/java/res/drawable-mdpi/btn_keyboard_key_pressed_on_klp_dark.9.png
deleted file mode 100644
index 82413d4..0000000
--- a/java/res/drawable-mdpi/btn_keyboard_key_pressed_on_klp_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/emoji_category_tab_selected_ics.9.png b/java/res/drawable-mdpi/emoji_category_tab_selected_ics.9.png
deleted file mode 100644
index 1731b46..0000000
--- a/java/res/drawable-mdpi/emoji_category_tab_selected_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/emoji_category_tab_selected_klp.9.png b/java/res/drawable-mdpi/emoji_category_tab_selected_klp.9.png
deleted file mode 100644
index 6354b99..0000000
--- a/java/res/drawable-mdpi/emoji_category_tab_selected_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/emoji_category_tab_unselected_holo_dark.9.png b/java/res/drawable-mdpi/emoji_category_tab_unselected_holo_dark.9.png
deleted file mode 100644
index bb45ab9..0000000
--- a/java/res/drawable-mdpi/emoji_category_tab_unselected_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_add_circle_white_24dp.png b/java/res/drawable-mdpi/ic_add_circle_white_24dp.png
deleted file mode 100644
index 11363b1..0000000
--- a/java/res/drawable-mdpi/ic_add_circle_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_activity_activated_holo_dark.png b/java/res/drawable-mdpi/ic_emoji_activity_activated_holo_dark.png
deleted file mode 100644
index 06fe3f5..0000000
--- a/java/res/drawable-mdpi/ic_emoji_activity_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_activity_normal_holo_dark.png b/java/res/drawable-mdpi/ic_emoji_activity_normal_holo_dark.png
deleted file mode 100644
index 57d5713..0000000
--- a/java/res/drawable-mdpi/ic_emoji_activity_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_emoticons_activated_holo_dark.png b/java/res/drawable-mdpi/ic_emoji_emoticons_activated_holo_dark.png
deleted file mode 100644
index c7394e1..0000000
--- a/java/res/drawable-mdpi/ic_emoji_emoticons_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_emoticons_normal_holo_dark.png b/java/res/drawable-mdpi/ic_emoji_emoticons_normal_holo_dark.png
deleted file mode 100644
index eb4dab4..0000000
--- a/java/res/drawable-mdpi/ic_emoji_emoticons_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_flag_activated_holo_dark.png b/java/res/drawable-mdpi/ic_emoji_flag_activated_holo_dark.png
deleted file mode 100644
index 859da81..0000000
--- a/java/res/drawable-mdpi/ic_emoji_flag_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_flag_normal_holo_dark.png b/java/res/drawable-mdpi/ic_emoji_flag_normal_holo_dark.png
deleted file mode 100644
index e1852e6..0000000
--- a/java/res/drawable-mdpi/ic_emoji_flag_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_food_activated_holo_dark.png b/java/res/drawable-mdpi/ic_emoji_food_activated_holo_dark.png
deleted file mode 100644
index 0d759e8..0000000
--- a/java/res/drawable-mdpi/ic_emoji_food_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_food_normal_holo_dark.png b/java/res/drawable-mdpi/ic_emoji_food_normal_holo_dark.png
deleted file mode 100644
index 3c817be..0000000
--- a/java/res/drawable-mdpi/ic_emoji_food_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_nature_activated_holo_dark.png b/java/res/drawable-mdpi/ic_emoji_nature_activated_holo_dark.png
deleted file mode 100644
index d4c8d8d..0000000
--- a/java/res/drawable-mdpi/ic_emoji_nature_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_nature_normal_holo_dark.png b/java/res/drawable-mdpi/ic_emoji_nature_normal_holo_dark.png
deleted file mode 100644
index 1555aa7..0000000
--- a/java/res/drawable-mdpi/ic_emoji_nature_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_objects_activated_holo_dark.png b/java/res/drawable-mdpi/ic_emoji_objects_activated_holo_dark.png
deleted file mode 100644
index 081dc66..0000000
--- a/java/res/drawable-mdpi/ic_emoji_objects_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_objects_normal_holo_dark.png b/java/res/drawable-mdpi/ic_emoji_objects_normal_holo_dark.png
deleted file mode 100644
index 58e6f6e..0000000
--- a/java/res/drawable-mdpi/ic_emoji_objects_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_people_activated_holo_dark.png b/java/res/drawable-mdpi/ic_emoji_people_activated_holo_dark.png
deleted file mode 100644
index 067ad54..0000000
--- a/java/res/drawable-mdpi/ic_emoji_people_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_people_normal_holo_dark.png b/java/res/drawable-mdpi/ic_emoji_people_normal_holo_dark.png
deleted file mode 100644
index d835d4e..0000000
--- a/java/res/drawable-mdpi/ic_emoji_people_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_places_activated_holo_dark.png b/java/res/drawable-mdpi/ic_emoji_places_activated_holo_dark.png
deleted file mode 100644
index 1aecec5..0000000
--- a/java/res/drawable-mdpi/ic_emoji_places_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_places_normal_holo_dark.png b/java/res/drawable-mdpi/ic_emoji_places_normal_holo_dark.png
deleted file mode 100644
index c70e484..0000000
--- a/java/res/drawable-mdpi/ic_emoji_places_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_recents_activated_holo_dark.png b/java/res/drawable-mdpi/ic_emoji_recents_activated_holo_dark.png
deleted file mode 100644
index 8009e93..0000000
--- a/java/res/drawable-mdpi/ic_emoji_recents_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_recents_normal_holo_dark.png b/java/res/drawable-mdpi/ic_emoji_recents_normal_holo_dark.png
deleted file mode 100644
index c2e598d..0000000
--- a/java/res/drawable-mdpi/ic_emoji_recents_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_symbols_activated_holo_dark.png b/java/res/drawable-mdpi/ic_emoji_symbols_activated_holo_dark.png
deleted file mode 100644
index caea871..0000000
--- a/java/res/drawable-mdpi/ic_emoji_symbols_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_symbols_normal_holo_dark.png b/java/res/drawable-mdpi/ic_emoji_symbols_normal_holo_dark.png
deleted file mode 100644
index 0edada6..0000000
--- a/java/res/drawable-mdpi/ic_emoji_symbols_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_background_holo.9.png b/java/res/drawable-mdpi/keyboard_background_holo.9.png
deleted file mode 100644
index fbe97f7..0000000
--- a/java/res/drawable-mdpi/keyboard_background_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_background_ics.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_background_ics.9.png
deleted file mode 100644
index 7a9f640..0000000
--- a/java/res/drawable-mdpi/keyboard_key_feedback_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_background_klp.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_background_klp.9.png
deleted file mode 100644
index 625490b..0000000
--- a/java/res/drawable-mdpi/keyboard_key_feedback_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_left_background_ics.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_left_background_ics.9.png
deleted file mode 100644
index 5b06f09..0000000
--- a/java/res/drawable-mdpi/keyboard_key_feedback_left_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_left_background_klp.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_left_background_klp.9.png
deleted file mode 100644
index 427c870..0000000
--- a/java/res/drawable-mdpi/keyboard_key_feedback_left_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_ics.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_ics.9.png
deleted file mode 100644
index fd992d6..0000000
--- a/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_klp.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_klp.9.png
deleted file mode 100644
index ea75729..0000000
--- a/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_more_background_ics.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_more_background_ics.9.png
deleted file mode 100644
index 128dcd6..0000000
--- a/java/res/drawable-mdpi/keyboard_key_feedback_more_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_more_background_klp.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_more_background_klp.9.png
deleted file mode 100644
index 1911c42..0000000
--- a/java/res/drawable-mdpi/keyboard_key_feedback_more_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_right_background_ics.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_right_background_ics.9.png
deleted file mode 100644
index 0b08d17..0000000
--- a/java/res/drawable-mdpi/keyboard_key_feedback_right_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_right_background_klp.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_right_background_klp.9.png
deleted file mode 100644
index cdef116..0000000
--- a/java/res/drawable-mdpi/keyboard_key_feedback_right_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_ics.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_ics.9.png
deleted file mode 100644
index cf0b33c..0000000
--- a/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_klp.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_klp.9.png
deleted file mode 100644
index dea5d07..0000000
--- a/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_popup_panel_background_ics.9.png b/java/res/drawable-mdpi/keyboard_popup_panel_background_ics.9.png
deleted file mode 100644
index 61988a8..0000000
--- a/java/res/drawable-mdpi/keyboard_popup_panel_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_popup_panel_background_klp.9.png b/java/res/drawable-mdpi/keyboard_popup_panel_background_klp.9.png
deleted file mode 100644
index 8965055..0000000
--- a/java/res/drawable-mdpi/keyboard_popup_panel_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_suggest_strip_holo.9.png b/java/res/drawable-mdpi/keyboard_suggest_strip_holo.9.png
deleted file mode 100644
index b1c18b4..0000000
--- a/java/res/drawable-mdpi/keyboard_suggest_strip_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/suggestions_strip_divider_holo.png b/java/res/drawable-mdpi/suggestions_strip_divider_holo.png
deleted file mode 100644
index 21e9049..0000000
--- a/java/res/drawable-mdpi/suggestions_strip_divider_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_delete_holo_dark.png b/java/res/drawable-mdpi/sym_keyboard_delete_holo_dark.png
deleted file mode 100644
index edd9d16..0000000
--- a/java/res/drawable-mdpi/sym_keyboard_delete_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_language_switch_dark.png b/java/res/drawable-mdpi/sym_keyboard_language_switch_dark.png
deleted file mode 100644
index 828929b..0000000
--- a/java/res/drawable-mdpi/sym_keyboard_language_switch_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_return_holo_dark.png b/java/res/drawable-mdpi/sym_keyboard_return_holo_dark.png
deleted file mode 100644
index e10103c..0000000
--- a/java/res/drawable-mdpi/sym_keyboard_return_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_search_holo_dark.png b/java/res/drawable-mdpi/sym_keyboard_search_holo_dark.png
deleted file mode 100644
index 290cde4..0000000
--- a/java/res/drawable-mdpi/sym_keyboard_search_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_settings_holo_dark.png b/java/res/drawable-mdpi/sym_keyboard_settings_holo_dark.png
deleted file mode 100644
index 613f4dc..0000000
--- a/java/res/drawable-mdpi/sym_keyboard_settings_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_shift_holo_dark.png b/java/res/drawable-mdpi/sym_keyboard_shift_holo_dark.png
deleted file mode 100644
index 37375d9..0000000
--- a/java/res/drawable-mdpi/sym_keyboard_shift_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_shift_locked_holo_dark.png b/java/res/drawable-mdpi/sym_keyboard_shift_locked_holo_dark.png
deleted file mode 100644
index 3654868..0000000
--- a/java/res/drawable-mdpi/sym_keyboard_shift_locked_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_smiley_holo_dark.png b/java/res/drawable-mdpi/sym_keyboard_smiley_holo_dark.png
deleted file mode 100644
index 067ad54..0000000
--- a/java/res/drawable-mdpi/sym_keyboard_smiley_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_space_holo_dark.png b/java/res/drawable-mdpi/sym_keyboard_space_holo_dark.png
deleted file mode 100644
index a38f994..0000000
--- a/java/res/drawable-mdpi/sym_keyboard_space_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_tab_holo_dark.png b/java/res/drawable-mdpi/sym_keyboard_tab_holo_dark.png
deleted file mode 100644
index f883807..0000000
--- a/java/res/drawable-mdpi/sym_keyboard_tab_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_voice_holo_dark.png b/java/res/drawable-mdpi/sym_keyboard_voice_holo_dark.png
deleted file mode 100644
index 0795fcc..0000000
--- a/java/res/drawable-mdpi/sym_keyboard_voice_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_voice_off_holo_dark.png b/java/res/drawable-mdpi/sym_keyboard_voice_off_holo_dark.png
deleted file mode 100644
index f76da57..0000000
--- a/java/res/drawable-mdpi/sym_keyboard_voice_off_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_zwj_holo_dark.png b/java/res/drawable-mdpi/sym_keyboard_zwj_holo_dark.png
deleted file mode 100644
index 8957e28..0000000
--- a/java/res/drawable-mdpi/sym_keyboard_zwj_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_zwnj_holo_dark.png b/java/res/drawable-mdpi/sym_keyboard_zwnj_holo_dark.png
deleted file mode 100644
index 5f49e64..0000000
--- a/java/res/drawable-mdpi/sym_keyboard_zwnj_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_active_ics_dark.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_active_ics_dark.9.png
deleted file mode 100644
index d990c02..0000000
--- a/java/res/drawable-xhdpi/btn_keyboard_key_active_ics_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_active_klp_dark.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_active_klp_dark.9.png
deleted file mode 100644
index a2f6ac0..0000000
--- a/java/res/drawable-xhdpi/btn_keyboard_key_active_klp_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_normal_holo_dark.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_normal_holo_dark.9.png
deleted file mode 100644
index a2f6ac0..0000000
--- a/java/res/drawable-xhdpi/btn_keyboard_key_normal_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_normal_holo_light.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_normal_holo_light.9.png
deleted file mode 100644
index 0ef4a4b..0000000
--- a/java/res/drawable-xhdpi/btn_keyboard_key_normal_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_normal_off_holo_dark.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_normal_off_holo_dark.9.png
deleted file mode 100644
index 2f00fc6..0000000
--- a/java/res/drawable-xhdpi/btn_keyboard_key_normal_off_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_ics_dark.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_ics_dark.9.png
deleted file mode 100644
index ab8fb2e..0000000
--- a/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_ics_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_klp_dark.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_klp_dark.9.png
deleted file mode 100644
index 20251a0..0000000
--- a/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_klp_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_ics.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_ics.9.png
deleted file mode 100644
index 0c7bfda..0000000
--- a/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_klp.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_klp.9.png
deleted file mode 100644
index 891d000..0000000
--- a/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_pressed_ics_dark.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_pressed_ics_dark.9.png
deleted file mode 100644
index 3871689..0000000
--- a/java/res/drawable-xhdpi/btn_keyboard_key_pressed_ics_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_pressed_ics_light.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_pressed_ics_light.9.png
deleted file mode 100644
index c23a4b2..0000000
--- a/java/res/drawable-xhdpi/btn_keyboard_key_pressed_ics_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_pressed_klp_dark.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_pressed_klp_dark.9.png
deleted file mode 100644
index 84d1739..0000000
--- a/java/res/drawable-xhdpi/btn_keyboard_key_pressed_klp_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_pressed_klp_light.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_pressed_klp_light.9.png
deleted file mode 100644
index f770962..0000000
--- a/java/res/drawable-xhdpi/btn_keyboard_key_pressed_klp_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off_ics_dark.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off_ics_dark.9.png
deleted file mode 100644
index 9125063..0000000
--- a/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off_ics_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off_klp_dark.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off_klp_dark.9.png
deleted file mode 100644
index ee4490e..0000000
--- a/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off_klp_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on_ics_dark.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on_ics_dark.9.png
deleted file mode 100644
index 35ce67f..0000000
--- a/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on_ics_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on_klp_dark.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on_klp_dark.9.png
deleted file mode 100644
index e812477..0000000
--- a/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on_klp_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/emoji_category_tab_selected_ics.9.png b/java/res/drawable-xhdpi/emoji_category_tab_selected_ics.9.png
deleted file mode 100644
index 11bc966..0000000
--- a/java/res/drawable-xhdpi/emoji_category_tab_selected_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/emoji_category_tab_selected_klp.9.png b/java/res/drawable-xhdpi/emoji_category_tab_selected_klp.9.png
deleted file mode 100644
index 5e8549b..0000000
--- a/java/res/drawable-xhdpi/emoji_category_tab_selected_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/emoji_category_tab_unselected_holo_dark.9.png b/java/res/drawable-xhdpi/emoji_category_tab_unselected_holo_dark.9.png
deleted file mode 100644
index 8cede8d..0000000
--- a/java/res/drawable-xhdpi/emoji_category_tab_unselected_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_add_circle_white_24dp.png b/java/res/drawable-xhdpi/ic_add_circle_white_24dp.png
deleted file mode 100644
index 32a5b05..0000000
--- a/java/res/drawable-xhdpi/ic_add_circle_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_activity_activated_holo_dark.png b/java/res/drawable-xhdpi/ic_emoji_activity_activated_holo_dark.png
deleted file mode 100644
index 5bfa54f..0000000
--- a/java/res/drawable-xhdpi/ic_emoji_activity_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_activity_normal_holo_dark.png b/java/res/drawable-xhdpi/ic_emoji_activity_normal_holo_dark.png
deleted file mode 100644
index 2221716..0000000
--- a/java/res/drawable-xhdpi/ic_emoji_activity_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_emoticons_activated_holo_dark.png b/java/res/drawable-xhdpi/ic_emoji_emoticons_activated_holo_dark.png
deleted file mode 100644
index 997c9b7..0000000
--- a/java/res/drawable-xhdpi/ic_emoji_emoticons_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_emoticons_normal_holo_dark.png b/java/res/drawable-xhdpi/ic_emoji_emoticons_normal_holo_dark.png
deleted file mode 100644
index 23a519c..0000000
--- a/java/res/drawable-xhdpi/ic_emoji_emoticons_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_flag_activated_holo_dark.png b/java/res/drawable-xhdpi/ic_emoji_flag_activated_holo_dark.png
deleted file mode 100644
index dbb3f60..0000000
--- a/java/res/drawable-xhdpi/ic_emoji_flag_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_flag_normal_holo_dark.png b/java/res/drawable-xhdpi/ic_emoji_flag_normal_holo_dark.png
deleted file mode 100644
index 9d852fe..0000000
--- a/java/res/drawable-xhdpi/ic_emoji_flag_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_food_activated_holo_dark.png b/java/res/drawable-xhdpi/ic_emoji_food_activated_holo_dark.png
deleted file mode 100644
index 67d27a8..0000000
--- a/java/res/drawable-xhdpi/ic_emoji_food_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_food_normal_holo_dark.png b/java/res/drawable-xhdpi/ic_emoji_food_normal_holo_dark.png
deleted file mode 100644
index fc299e3..0000000
--- a/java/res/drawable-xhdpi/ic_emoji_food_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_nature_activated_holo_dark.png b/java/res/drawable-xhdpi/ic_emoji_nature_activated_holo_dark.png
deleted file mode 100644
index 3e67443..0000000
--- a/java/res/drawable-xhdpi/ic_emoji_nature_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_nature_normal_holo_dark.png b/java/res/drawable-xhdpi/ic_emoji_nature_normal_holo_dark.png
deleted file mode 100644
index 5344a9e..0000000
--- a/java/res/drawable-xhdpi/ic_emoji_nature_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_objects_activated_holo_dark.png b/java/res/drawable-xhdpi/ic_emoji_objects_activated_holo_dark.png
deleted file mode 100644
index 75695d4..0000000
--- a/java/res/drawable-xhdpi/ic_emoji_objects_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_objects_normal_holo_dark.png b/java/res/drawable-xhdpi/ic_emoji_objects_normal_holo_dark.png
deleted file mode 100644
index 2adb186..0000000
--- a/java/res/drawable-xhdpi/ic_emoji_objects_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_people_activated_holo_dark.png b/java/res/drawable-xhdpi/ic_emoji_people_activated_holo_dark.png
deleted file mode 100644
index e6baa2e..0000000
--- a/java/res/drawable-xhdpi/ic_emoji_people_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_people_normal_holo_dark.png b/java/res/drawable-xhdpi/ic_emoji_people_normal_holo_dark.png
deleted file mode 100644
index c26aa4e..0000000
--- a/java/res/drawable-xhdpi/ic_emoji_people_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_places_activated_holo_dark.png b/java/res/drawable-xhdpi/ic_emoji_places_activated_holo_dark.png
deleted file mode 100644
index eaa3b86..0000000
--- a/java/res/drawable-xhdpi/ic_emoji_places_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_places_normal_holo_dark.png b/java/res/drawable-xhdpi/ic_emoji_places_normal_holo_dark.png
deleted file mode 100644
index d6e1eaa..0000000
--- a/java/res/drawable-xhdpi/ic_emoji_places_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_recents_activated_holo_dark.png b/java/res/drawable-xhdpi/ic_emoji_recents_activated_holo_dark.png
deleted file mode 100644
index 06003b8..0000000
--- a/java/res/drawable-xhdpi/ic_emoji_recents_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_recents_normal_holo_dark.png b/java/res/drawable-xhdpi/ic_emoji_recents_normal_holo_dark.png
deleted file mode 100644
index da2effe..0000000
--- a/java/res/drawable-xhdpi/ic_emoji_recents_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_symbols_activated_holo_dark.png b/java/res/drawable-xhdpi/ic_emoji_symbols_activated_holo_dark.png
deleted file mode 100644
index 438fde2..0000000
--- a/java/res/drawable-xhdpi/ic_emoji_symbols_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_symbols_normal_holo_dark.png b/java/res/drawable-xhdpi/ic_emoji_symbols_normal_holo_dark.png
deleted file mode 100644
index 7578632..0000000
--- a/java/res/drawable-xhdpi/ic_emoji_symbols_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_background_holo.9.png b/java/res/drawable-xhdpi/keyboard_background_holo.9.png
deleted file mode 100644
index f5c9df3..0000000
--- a/java/res/drawable-xhdpi/keyboard_background_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_background_ics.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_background_ics.9.png
deleted file mode 100644
index d999127..0000000
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_background_klp.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_background_klp.9.png
deleted file mode 100644
index c211d89..0000000
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_ics.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_ics.9.png
deleted file mode 100644
index c4d6941..0000000
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_klp.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_klp.9.png
deleted file mode 100644
index 543bc76..0000000
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_ics.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_ics.9.png
deleted file mode 100644
index 5429c17..0000000
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_klp.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_klp.9.png
deleted file mode 100644
index ec42aad..0000000
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_ics.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_ics.9.png
deleted file mode 100644
index 5135a08..0000000
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_klp.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_klp.9.png
deleted file mode 100644
index 319e9d7..0000000
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_ics.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_ics.9.png
deleted file mode 100644
index 19a77a2..0000000
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_klp.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_klp.9.png
deleted file mode 100644
index 052032b..0000000
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_ics.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_ics.9.png
deleted file mode 100644
index ae2ffff..0000000
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_klp.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_klp.9.png
deleted file mode 100644
index c7e9d1c..0000000
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_popup_panel_background_ics.9.png b/java/res/drawable-xhdpi/keyboard_popup_panel_background_ics.9.png
deleted file mode 100644
index 1dee699..0000000
--- a/java/res/drawable-xhdpi/keyboard_popup_panel_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_popup_panel_background_klp.9.png b/java/res/drawable-xhdpi/keyboard_popup_panel_background_klp.9.png
deleted file mode 100644
index 36df715..0000000
--- a/java/res/drawable-xhdpi/keyboard_popup_panel_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_suggest_strip_holo.9.png b/java/res/drawable-xhdpi/keyboard_suggest_strip_holo.9.png
deleted file mode 100644
index 4c27072..0000000
--- a/java/res/drawable-xhdpi/keyboard_suggest_strip_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/suggestions_strip_divider_holo.png b/java/res/drawable-xhdpi/suggestions_strip_divider_holo.png
deleted file mode 100644
index 4101ebc..0000000
--- a/java/res/drawable-xhdpi/suggestions_strip_divider_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_delete_holo_dark.png b/java/res/drawable-xhdpi/sym_keyboard_delete_holo_dark.png
deleted file mode 100644
index e3e37d5..0000000
--- a/java/res/drawable-xhdpi/sym_keyboard_delete_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_language_switch_dark.png b/java/res/drawable-xhdpi/sym_keyboard_language_switch_dark.png
deleted file mode 100644
index b8687f5..0000000
--- a/java/res/drawable-xhdpi/sym_keyboard_language_switch_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_return_holo_dark.png b/java/res/drawable-xhdpi/sym_keyboard_return_holo_dark.png
deleted file mode 100644
index 7b7ad17..0000000
--- a/java/res/drawable-xhdpi/sym_keyboard_return_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_search_holo_dark.png b/java/res/drawable-xhdpi/sym_keyboard_search_holo_dark.png
deleted file mode 100644
index 36b1646..0000000
--- a/java/res/drawable-xhdpi/sym_keyboard_search_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_settings_holo_dark.png b/java/res/drawable-xhdpi/sym_keyboard_settings_holo_dark.png
deleted file mode 100644
index 15a9739..0000000
--- a/java/res/drawable-xhdpi/sym_keyboard_settings_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_shift_holo_dark.png b/java/res/drawable-xhdpi/sym_keyboard_shift_holo_dark.png
deleted file mode 100644
index 5ab5491..0000000
--- a/java/res/drawable-xhdpi/sym_keyboard_shift_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_shift_locked_holo_dark.png b/java/res/drawable-xhdpi/sym_keyboard_shift_locked_holo_dark.png
deleted file mode 100644
index b820eaa..0000000
--- a/java/res/drawable-xhdpi/sym_keyboard_shift_locked_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_smiley_holo_dark.png b/java/res/drawable-xhdpi/sym_keyboard_smiley_holo_dark.png
deleted file mode 100644
index e6baa2e..0000000
--- a/java/res/drawable-xhdpi/sym_keyboard_smiley_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_space_holo_dark.png b/java/res/drawable-xhdpi/sym_keyboard_space_holo_dark.png
deleted file mode 100644
index 7114b74..0000000
--- a/java/res/drawable-xhdpi/sym_keyboard_space_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_tab_holo_dark.png b/java/res/drawable-xhdpi/sym_keyboard_tab_holo_dark.png
deleted file mode 100644
index 73ebfe5..0000000
--- a/java/res/drawable-xhdpi/sym_keyboard_tab_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_voice_holo_dark.png b/java/res/drawable-xhdpi/sym_keyboard_voice_holo_dark.png
deleted file mode 100644
index b2bb9b8..0000000
--- a/java/res/drawable-xhdpi/sym_keyboard_voice_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_voice_off_holo_dark.png b/java/res/drawable-xhdpi/sym_keyboard_voice_off_holo_dark.png
deleted file mode 100644
index 23e75bf..0000000
--- a/java/res/drawable-xhdpi/sym_keyboard_voice_off_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_zwj_holo_dark.png b/java/res/drawable-xhdpi/sym_keyboard_zwj_holo_dark.png
deleted file mode 100644
index 2f9607a..0000000
--- a/java/res/drawable-xhdpi/sym_keyboard_zwj_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_zwnj_holo_dark.png b/java/res/drawable-xhdpi/sym_keyboard_zwnj_holo_dark.png
deleted file mode 100644
index ab07f75..0000000
--- a/java/res/drawable-xhdpi/sym_keyboard_zwnj_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_active_ics_dark.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_active_ics_dark.9.png
deleted file mode 100644
index 680421e..0000000
--- a/java/res/drawable-xxhdpi/btn_keyboard_key_active_ics_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_active_klp_dark.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_active_klp_dark.9.png
deleted file mode 100644
index 17f0a7a..0000000
--- a/java/res/drawable-xxhdpi/btn_keyboard_key_active_klp_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_normal_holo_dark.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_normal_holo_dark.9.png
deleted file mode 100644
index 17f0a7a..0000000
--- a/java/res/drawable-xxhdpi/btn_keyboard_key_normal_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_normal_holo_light.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_normal_holo_light.9.png
deleted file mode 100644
index 4ddfdcb..0000000
--- a/java/res/drawable-xxhdpi/btn_keyboard_key_normal_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_normal_off_holo_dark.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_normal_off_holo_dark.9.png
deleted file mode 100644
index b0e815e..0000000
--- a/java/res/drawable-xxhdpi/btn_keyboard_key_normal_off_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_normal_on_ics_dark.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_normal_on_ics_dark.9.png
deleted file mode 100644
index 40f5011..0000000
--- a/java/res/drawable-xxhdpi/btn_keyboard_key_normal_on_ics_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_normal_on_klp_dark.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_normal_on_klp_dark.9.png
deleted file mode 100644
index 97f9625..0000000
--- a/java/res/drawable-xxhdpi/btn_keyboard_key_normal_on_klp_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_ics.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_ics.9.png
deleted file mode 100644
index 6d2af59..0000000
--- a/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_klp.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_klp.9.png
deleted file mode 100644
index 0cbb2ec..0000000
--- a/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_ics_dark.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_ics_dark.9.png
deleted file mode 100644
index 6ff6319..0000000
--- a/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_ics_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_ics_light.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_ics_light.9.png
deleted file mode 100644
index 3c17c5e..0000000
--- a/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_ics_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_klp_dark.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_klp_dark.9.png
deleted file mode 100644
index dfb16a7..0000000
--- a/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_klp_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_klp_light.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_klp_light.9.png
deleted file mode 100644
index 17144b6..0000000
--- a/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_klp_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_off_ics_dark.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_off_ics_dark.9.png
deleted file mode 100644
index 818ea70..0000000
--- a/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_off_ics_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_off_klp_dark.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_off_klp_dark.9.png
deleted file mode 100644
index bf1d346..0000000
--- a/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_off_klp_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_on_ics_dark.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_on_ics_dark.9.png
deleted file mode 100644
index a476d2a..0000000
--- a/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_on_ics_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_on_klp_dark.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_on_klp_dark.9.png
deleted file mode 100644
index 9622771..0000000
--- a/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_on_klp_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/emoji_category_tab_selected_ics.9.png b/java/res/drawable-xxhdpi/emoji_category_tab_selected_ics.9.png
deleted file mode 100644
index b13ee2b..0000000
--- a/java/res/drawable-xxhdpi/emoji_category_tab_selected_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/emoji_category_tab_selected_klp.9.png b/java/res/drawable-xxhdpi/emoji_category_tab_selected_klp.9.png
deleted file mode 100644
index c81e651..0000000
--- a/java/res/drawable-xxhdpi/emoji_category_tab_selected_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/emoji_category_tab_unselected_holo_dark.9.png b/java/res/drawable-xxhdpi/emoji_category_tab_unselected_holo_dark.9.png
deleted file mode 100644
index 3891886..0000000
--- a/java/res/drawable-xxhdpi/emoji_category_tab_unselected_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_add_circle_white_24dp.png b/java/res/drawable-xxhdpi/ic_add_circle_white_24dp.png
deleted file mode 100644
index a22c463..0000000
--- a/java/res/drawable-xxhdpi/ic_add_circle_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_activity_activated_holo_dark.png b/java/res/drawable-xxhdpi/ic_emoji_activity_activated_holo_dark.png
deleted file mode 100644
index c9f4aab..0000000
--- a/java/res/drawable-xxhdpi/ic_emoji_activity_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_activity_normal_holo_dark.png b/java/res/drawable-xxhdpi/ic_emoji_activity_normal_holo_dark.png
deleted file mode 100644
index 3ab3f7d..0000000
--- a/java/res/drawable-xxhdpi/ic_emoji_activity_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_emoticons_activated_holo_dark.png b/java/res/drawable-xxhdpi/ic_emoji_emoticons_activated_holo_dark.png
deleted file mode 100644
index a217269..0000000
--- a/java/res/drawable-xxhdpi/ic_emoji_emoticons_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_emoticons_normal_holo_dark.png b/java/res/drawable-xxhdpi/ic_emoji_emoticons_normal_holo_dark.png
deleted file mode 100644
index dfa43cd..0000000
--- a/java/res/drawable-xxhdpi/ic_emoji_emoticons_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_flag_activated_holo_dark.png b/java/res/drawable-xxhdpi/ic_emoji_flag_activated_holo_dark.png
deleted file mode 100644
index 99229a2..0000000
--- a/java/res/drawable-xxhdpi/ic_emoji_flag_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_flag_normal_holo_dark.png b/java/res/drawable-xxhdpi/ic_emoji_flag_normal_holo_dark.png
deleted file mode 100644
index a28fdd0..0000000
--- a/java/res/drawable-xxhdpi/ic_emoji_flag_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_food_activated_holo_dark.png b/java/res/drawable-xxhdpi/ic_emoji_food_activated_holo_dark.png
deleted file mode 100644
index 02bd4f0..0000000
--- a/java/res/drawable-xxhdpi/ic_emoji_food_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_food_normal_holo_dark.png b/java/res/drawable-xxhdpi/ic_emoji_food_normal_holo_dark.png
deleted file mode 100644
index bd3bd42..0000000
--- a/java/res/drawable-xxhdpi/ic_emoji_food_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_nature_activated_holo_dark.png b/java/res/drawable-xxhdpi/ic_emoji_nature_activated_holo_dark.png
deleted file mode 100644
index 470fd69..0000000
--- a/java/res/drawable-xxhdpi/ic_emoji_nature_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_nature_normal_holo_dark.png b/java/res/drawable-xxhdpi/ic_emoji_nature_normal_holo_dark.png
deleted file mode 100644
index a7fde0e..0000000
--- a/java/res/drawable-xxhdpi/ic_emoji_nature_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_objects_activated_holo_dark.png b/java/res/drawable-xxhdpi/ic_emoji_objects_activated_holo_dark.png
deleted file mode 100644
index c582b70..0000000
--- a/java/res/drawable-xxhdpi/ic_emoji_objects_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_objects_normal_holo_dark.png b/java/res/drawable-xxhdpi/ic_emoji_objects_normal_holo_dark.png
deleted file mode 100644
index acc95d7..0000000
--- a/java/res/drawable-xxhdpi/ic_emoji_objects_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_people_activated_holo_dark.png b/java/res/drawable-xxhdpi/ic_emoji_people_activated_holo_dark.png
deleted file mode 100644
index 5973ac3..0000000
--- a/java/res/drawable-xxhdpi/ic_emoji_people_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_people_normal_holo_dark.png b/java/res/drawable-xxhdpi/ic_emoji_people_normal_holo_dark.png
deleted file mode 100644
index 22e06f8..0000000
--- a/java/res/drawable-xxhdpi/ic_emoji_people_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_places_activated_holo_dark.png b/java/res/drawable-xxhdpi/ic_emoji_places_activated_holo_dark.png
deleted file mode 100644
index 690e95f..0000000
--- a/java/res/drawable-xxhdpi/ic_emoji_places_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_places_normal_holo_dark.png b/java/res/drawable-xxhdpi/ic_emoji_places_normal_holo_dark.png
deleted file mode 100644
index ced4b08..0000000
--- a/java/res/drawable-xxhdpi/ic_emoji_places_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_recents_activated_holo_dark.png b/java/res/drawable-xxhdpi/ic_emoji_recents_activated_holo_dark.png
deleted file mode 100644
index 25e847e..0000000
--- a/java/res/drawable-xxhdpi/ic_emoji_recents_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_recents_normal_holo_dark.png b/java/res/drawable-xxhdpi/ic_emoji_recents_normal_holo_dark.png
deleted file mode 100644
index c86368d..0000000
--- a/java/res/drawable-xxhdpi/ic_emoji_recents_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_symbols_activated_holo_dark.png b/java/res/drawable-xxhdpi/ic_emoji_symbols_activated_holo_dark.png
deleted file mode 100644
index 29dfc71..0000000
--- a/java/res/drawable-xxhdpi/ic_emoji_symbols_activated_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_symbols_normal_holo_dark.png b/java/res/drawable-xxhdpi/ic_emoji_symbols_normal_holo_dark.png
deleted file mode 100644
index 0570567..0000000
--- a/java/res/drawable-xxhdpi/ic_emoji_symbols_normal_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_background_holo.9.png b/java/res/drawable-xxhdpi/keyboard_background_holo.9.png
deleted file mode 100644
index bcef0f8..0000000
--- a/java/res/drawable-xxhdpi/keyboard_background_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_background_ics.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_background_ics.9.png
deleted file mode 100644
index bd1ef3c..0000000
--- a/java/res/drawable-xxhdpi/keyboard_key_feedback_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_background_klp.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_background_klp.9.png
deleted file mode 100644
index fd2f9e5..0000000
--- a/java/res/drawable-xxhdpi/keyboard_key_feedback_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_left_background_ics.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_left_background_ics.9.png
deleted file mode 100644
index 65af4b5..0000000
--- a/java/res/drawable-xxhdpi/keyboard_key_feedback_left_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_left_background_klp.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_left_background_klp.9.png
deleted file mode 100644
index 3ab7900..0000000
--- a/java/res/drawable-xxhdpi/keyboard_key_feedback_left_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_left_more_background_ics.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_left_more_background_ics.9.png
deleted file mode 100644
index ac6750d..0000000
--- a/java/res/drawable-xxhdpi/keyboard_key_feedback_left_more_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_left_more_background_klp.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_left_more_background_klp.9.png
deleted file mode 100644
index 99543a1..0000000
--- a/java/res/drawable-xxhdpi/keyboard_key_feedback_left_more_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_ics.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_ics.9.png
deleted file mode 100644
index cea7c05..0000000
--- a/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_klp.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_klp.9.png
deleted file mode 100644
index 121411a..0000000
--- a/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_right_background_ics.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_right_background_ics.9.png
deleted file mode 100644
index 520fa7c..0000000
--- a/java/res/drawable-xxhdpi/keyboard_key_feedback_right_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_right_background_klp.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_right_background_klp.9.png
deleted file mode 100644
index e9e3792..0000000
--- a/java/res/drawable-xxhdpi/keyboard_key_feedback_right_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_right_more_background_ics.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_right_more_background_ics.9.png
deleted file mode 100644
index eee2217..0000000
--- a/java/res/drawable-xxhdpi/keyboard_key_feedback_right_more_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_right_more_background_klp.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_right_more_background_klp.9.png
deleted file mode 100644
index 6c1143a..0000000
--- a/java/res/drawable-xxhdpi/keyboard_key_feedback_right_more_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_popup_panel_background_ics.9.png b/java/res/drawable-xxhdpi/keyboard_popup_panel_background_ics.9.png
deleted file mode 100644
index 721c244..0000000
--- a/java/res/drawable-xxhdpi/keyboard_popup_panel_background_ics.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_popup_panel_background_klp.9.png b/java/res/drawable-xxhdpi/keyboard_popup_panel_background_klp.9.png
deleted file mode 100644
index 91d5d7f..0000000
--- a/java/res/drawable-xxhdpi/keyboard_popup_panel_background_klp.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_suggest_strip_holo.9.png b/java/res/drawable-xxhdpi/keyboard_suggest_strip_holo.9.png
deleted file mode 100644
index 08176fe..0000000
--- a/java/res/drawable-xxhdpi/keyboard_suggest_strip_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/suggestions_strip_divider_holo.png b/java/res/drawable-xxhdpi/suggestions_strip_divider_holo.png
deleted file mode 100644
index d13ca42..0000000
--- a/java/res/drawable-xxhdpi/suggestions_strip_divider_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/sym_keyboard_delete_holo_dark.png b/java/res/drawable-xxhdpi/sym_keyboard_delete_holo_dark.png
deleted file mode 100644
index 92be792..0000000
--- a/java/res/drawable-xxhdpi/sym_keyboard_delete_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/sym_keyboard_language_switch_dark.png b/java/res/drawable-xxhdpi/sym_keyboard_language_switch_dark.png
deleted file mode 100644
index 88b55bb..0000000
--- a/java/res/drawable-xxhdpi/sym_keyboard_language_switch_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/sym_keyboard_return_holo_dark.png b/java/res/drawable-xxhdpi/sym_keyboard_return_holo_dark.png
deleted file mode 100644
index 46ee50e..0000000
--- a/java/res/drawable-xxhdpi/sym_keyboard_return_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/sym_keyboard_search_holo_dark.png b/java/res/drawable-xxhdpi/sym_keyboard_search_holo_dark.png
deleted file mode 100644
index f518748..0000000
--- a/java/res/drawable-xxhdpi/sym_keyboard_search_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/sym_keyboard_settings_holo_dark.png b/java/res/drawable-xxhdpi/sym_keyboard_settings_holo_dark.png
deleted file mode 100644
index bf643e1..0000000
--- a/java/res/drawable-xxhdpi/sym_keyboard_settings_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/sym_keyboard_shift_holo_dark.png b/java/res/drawable-xxhdpi/sym_keyboard_shift_holo_dark.png
deleted file mode 100644
index 523286e..0000000
--- a/java/res/drawable-xxhdpi/sym_keyboard_shift_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/sym_keyboard_shift_locked_holo_dark.png b/java/res/drawable-xxhdpi/sym_keyboard_shift_locked_holo_dark.png
deleted file mode 100644
index 87926d9..0000000
--- a/java/res/drawable-xxhdpi/sym_keyboard_shift_locked_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/sym_keyboard_smiley_holo_dark.png b/java/res/drawable-xxhdpi/sym_keyboard_smiley_holo_dark.png
deleted file mode 100644
index 5973ac3..0000000
--- a/java/res/drawable-xxhdpi/sym_keyboard_smiley_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/sym_keyboard_space_holo_dark.png b/java/res/drawable-xxhdpi/sym_keyboard_space_holo_dark.png
deleted file mode 100644
index 1dab1f4..0000000
--- a/java/res/drawable-xxhdpi/sym_keyboard_space_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/sym_keyboard_tab_holo_dark.png b/java/res/drawable-xxhdpi/sym_keyboard_tab_holo_dark.png
deleted file mode 100644
index 6eb3eb0..0000000
--- a/java/res/drawable-xxhdpi/sym_keyboard_tab_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/sym_keyboard_voice_holo_dark.png b/java/res/drawable-xxhdpi/sym_keyboard_voice_holo_dark.png
deleted file mode 100644
index f04cadf..0000000
--- a/java/res/drawable-xxhdpi/sym_keyboard_voice_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/sym_keyboard_voice_off_holo_dark.png b/java/res/drawable-xxhdpi/sym_keyboard_voice_off_holo_dark.png
deleted file mode 100644
index e74d523..0000000
--- a/java/res/drawable-xxhdpi/sym_keyboard_voice_off_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/sym_keyboard_zwj_holo_dark.png b/java/res/drawable-xxhdpi/sym_keyboard_zwj_holo_dark.png
deleted file mode 100644
index 5e225b8..0000000
--- a/java/res/drawable-xxhdpi/sym_keyboard_zwj_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxhdpi/sym_keyboard_zwnj_holo_dark.png b/java/res/drawable-xxhdpi/sym_keyboard_zwnj_holo_dark.png
deleted file mode 100644
index cdfc029..0000000
--- a/java/res/drawable-xxhdpi/sym_keyboard_zwnj_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xxxhdpi/ic_add_circle_white_24dp.png b/java/res/drawable-xxxhdpi/ic_add_circle_white_24dp.png
deleted file mode 100644
index a0116fa..0000000
--- a/java/res/drawable-xxxhdpi/ic_add_circle_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable/btn_keyboard_key_functional_ics.xml b/java/res/drawable/btn_keyboard_key_functional_ics.xml
deleted file mode 100644
index 846bccc..0000000
--- a/java/res/drawable/btn_keyboard_key_functional_ics.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <!-- Functional keys. -->
- <item android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_pressed_ics_dark" />
- <item android:drawable="@drawable/btn_keyboard_key_normal_holo_dark" />
-</selector>
diff --git a/java/res/drawable/btn_keyboard_key_functional_klp.xml b/java/res/drawable/btn_keyboard_key_functional_klp.xml
deleted file mode 100644
index 7b444f7..0000000
--- a/java/res/drawable/btn_keyboard_key_functional_klp.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <!-- Functional keys. -->
- <item android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_pressed_klp_dark" />
- <item android:drawable="@drawable/btn_keyboard_key_normal_holo_dark" />
-</selector>
diff --git a/java/res/drawable/btn_keyboard_key_functional_normal_you.xml b/java/res/drawable/btn_keyboard_key_functional_normal_you.xml
new file mode 100644
index 0000000..80ff431
--- /dev/null
+++ b/java/res/drawable/btn_keyboard_key_functional_normal_you.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="@color/functional_normal_color_you" />
+
+ <padding android:left="1dp"
+ android:top="1dp"
+ android:right="1dp"
+ android:bottom="1dp" />
+
+ <corners android:radius="@dimen/keyboard_key_corner_radius_you" />
+</shape>
diff --git a/java/res/drawable/btn_keyboard_key_functional_pressed_you.xml b/java/res/drawable/btn_keyboard_key_functional_pressed_you.xml
new file mode 100644
index 0000000..44a7fb7
--- /dev/null
+++ b/java/res/drawable/btn_keyboard_key_functional_pressed_you.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="@color/functional_pressed_color_you"/>
+
+ <padding android:left="1dp"
+ android:top="1dp"
+ android:right="1dp"
+ android:bottom="1dp" />
+
+ <corners android:radius="@dimen/keyboard_key_corner_radius_you" />
+</shape>
diff --git a/java/res/drawable/btn_keyboard_spacebar_ics.xml b/java/res/drawable/btn_keyboard_key_functional_you.xml
similarity index 76%
rename from java/res/drawable/btn_keyboard_spacebar_ics.xml
rename to java/res/drawable/btn_keyboard_key_functional_you.xml
index 229f7a9..ecb1721 100644
--- a/java/res/drawable/btn_keyboard_spacebar_ics.xml
+++ b/java/res/drawable/btn_keyboard_key_functional_you.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
+<!-- Copyright (C) 2014 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -16,6 +16,6 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_pressed_ics_light" />
- <item android:drawable="@drawable/btn_keyboard_key_normal_holo_light" />
+ android:drawable="@drawable/btn_keyboard_key_functional_pressed_you" />
+ <item android:drawable="@drawable/btn_keyboard_key_functional_normal_you" />
</selector>
diff --git a/java/res/drawable/btn_keyboard_key_ics.xml b/java/res/drawable/btn_keyboard_key_ics.xml
deleted file mode 100644
index bacd5d7..0000000
--- a/java/res/drawable/btn_keyboard_key_ics.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <!-- Action keys. -->
- <item android:state_active="true" android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_pressed_ics_dark" />
- <item android:state_active="true"
- android:drawable="@drawable/btn_keyboard_key_active_ics_dark" />
-
- <!-- Toggle keys. Use checkable/checked state. -->
- <item android:state_checkable="true" android:state_checked="true" android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_pressed_on_ics_dark" />
- <item android:state_checkable="true" android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_pressed_off_ics_dark" />
- <item android:state_checkable="true" android:state_checked="true"
- android:drawable="@drawable/btn_keyboard_key_normal_on_ics_dark" />
- <item android:state_checkable="true"
- android:drawable="@drawable/btn_keyboard_key_normal_off_holo_dark" />
-
- <!-- Empty background keys. -->
- <item android:state_empty="true" android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_pressed_ics_light" />
- <item android:state_empty="true"
- android:drawable="@android:color/transparent" />
-
- <!-- Normal keys. -->
- <item android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_pressed_ics_light" />
- <item android:drawable="@drawable/btn_keyboard_key_normal_holo_light" />
-</selector>
diff --git a/java/res/drawable/btn_keyboard_key_klp.xml b/java/res/drawable/btn_keyboard_key_klp.xml
deleted file mode 100644
index e2f2085..0000000
--- a/java/res/drawable/btn_keyboard_key_klp.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <!-- Action keys. -->
- <item android:state_active="true" android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_pressed_klp_dark" />
- <item android:state_active="true"
- android:drawable="@drawable/btn_keyboard_key_active_klp_dark" />
-
- <!-- Toggle keys. Use checkable/checked state. -->
- <item android:state_checkable="true" android:state_checked="true" android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_pressed_on_klp_dark" />
- <item android:state_checkable="true" android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_pressed_off_klp_dark" />
- <item android:state_checkable="true" android:state_checked="true"
- android:drawable="@drawable/btn_keyboard_key_normal_on_klp_dark" />
- <item android:state_checkable="true"
- android:drawable="@drawable/btn_keyboard_key_normal_off_holo_dark" />
-
- <!-- Empty background keys. -->
- <item android:state_empty="true" android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_pressed_klp_light" />
- <item android:state_empty="true"
- android:drawable="@android:color/transparent" />
-
- <!-- Normal keys. -->
- <item android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_pressed_klp_light" />
- <item android:drawable="@drawable/btn_keyboard_key_normal_holo_light" />
-</selector>
diff --git a/java/res/drawable/btn_keyboard_key_normal_you.xml b/java/res/drawable/btn_keyboard_key_normal_you.xml
new file mode 100644
index 0000000..6a5eb99
--- /dev/null
+++ b/java/res/drawable/btn_keyboard_key_normal_you.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="@color/keyboard_key_normal_color_you"/>
+ <corners android:radius="@dimen/keyboard_key_corner_radius_you" />
+</shape>
diff --git a/java/res/drawable/btn_keyboard_key_popup_ics.xml b/java/res/drawable/btn_keyboard_key_popup_ics.xml
deleted file mode 100644
index 17d646b..0000000
--- a/java/res/drawable/btn_keyboard_key_popup_ics.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_popup_selected_ics" />
- <item android:drawable="@android:color/transparent" />
-</selector>
diff --git a/java/res/drawable/btn_keyboard_key_pressed_you.xml b/java/res/drawable/btn_keyboard_key_pressed_you.xml
new file mode 100644
index 0000000..c5958b2
--- /dev/null
+++ b/java/res/drawable/btn_keyboard_key_pressed_you.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="@color/keyboard_key_pressed_color_you" />
+ <corners android:radius="@dimen/keyboard_key_corner_radius_you" />
+</shape>
diff --git a/java/res/drawable/btn_keyboard_spacebar_ics.xml b/java/res/drawable/btn_keyboard_key_you.xml
similarity index 60%
copy from java/res/drawable/btn_keyboard_spacebar_ics.xml
copy to java/res/drawable/btn_keyboard_key_you.xml
index 229f7a9..0792ade 100644
--- a/java/res/drawable/btn_keyboard_spacebar_ics.xml
+++ b/java/res/drawable/btn_keyboard_key_you.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
+<!-- Copyright (C) 2014 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -15,7 +15,13 @@
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <!-- Action keys. -->
+ <item android:state_active="true" android:state_pressed="true"
+ android:drawable="@drawable/btn_keyboard_key_active_pressed_lxx_dark" />
+ <item android:state_active="true"
+ android:drawable="@drawable/btn_keyboard_key_normal_you" />
+
<item android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_pressed_ics_light" />
- <item android:drawable="@drawable/btn_keyboard_key_normal_holo_light" />
+ android:drawable="@drawable/btn_keyboard_key_pressed_you" />
+ <item android:drawable="@drawable/btn_keyboard_key_normal_you" />
</selector>
diff --git a/java/res/drawable/btn_keyboard_spacebar_klp.xml b/java/res/drawable/btn_keyboard_spacebar_klp.xml
deleted file mode 100644
index 9882f9a..0000000
--- a/java/res/drawable/btn_keyboard_spacebar_klp.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_pressed_klp_light" />
- <item android:drawable="@drawable/btn_keyboard_key_normal_holo_light" />
-</selector>
diff --git a/java/res/drawable/btn_suggestion_ics.xml b/java/res/drawable/btn_suggestion_ics.xml
deleted file mode 100644
index 8f528ee..0000000
--- a/java/res/drawable/btn_suggestion_ics.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<selector
- xmlns:android="http://schemas.android.com/apk/res/android"
->
- <item
- android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_popup_selected_ics" />
-</selector>
diff --git a/java/res/drawable/ic_add_circle.xml b/java/res/drawable/ic_add_circle.xml
new file mode 100644
index 0000000..4a8e14b
--- /dev/null
+++ b/java/res/drawable/ic_add_circle.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+
+ <path
+ android:fillColor="?android:attr/colorControlNormal"
+ android:pathData="M17,13H13V17H11V13H7V11H11V7H13V11H17M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z" />
+</vector>
diff --git a/java/res/drawable/ic_emoji_activity_holo_dark.xml b/java/res/drawable/ic_emoji_activity_holo_dark.xml
deleted file mode 100644
index 8eeb640..0000000
--- a/java/res/drawable/ic_emoji_activity_holo_dark.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2015, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:state_focused="true"
- android:drawable="@drawable/ic_emoji_activity_activated_holo_dark" />
- <item
- android:state_pressed="true"
- android:drawable="@drawable/ic_emoji_activity_activated_holo_dark" />
- <item
- android:state_selected="true"
- android:drawable="@drawable/ic_emoji_activity_activated_holo_dark" />
- <item
- android:drawable="@drawable/ic_emoji_activity_normal_holo_dark" />
-</selector>
diff --git a/java/res/drawable/ic_emoji_emoticons_holo_dark.xml b/java/res/drawable/ic_emoji_emoticons_holo_dark.xml
deleted file mode 100644
index 59e2349..0000000
--- a/java/res/drawable/ic_emoji_emoticons_holo_dark.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2014, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:state_focused="true"
- android:drawable="@drawable/ic_emoji_emoticons_activated_holo_dark" />
- <item
- android:state_pressed="true"
- android:drawable="@drawable/ic_emoji_emoticons_activated_holo_dark" />
- <item
- android:state_selected="true"
- android:drawable="@drawable/ic_emoji_emoticons_activated_holo_dark" />
- <item android:drawable="@drawable/ic_emoji_emoticons_normal_holo_dark" />
-</selector>
diff --git a/java/res/drawable/ic_emoji_flag_holo_dark.xml b/java/res/drawable/ic_emoji_flag_holo_dark.xml
deleted file mode 100644
index c9857fe..0000000
--- a/java/res/drawable/ic_emoji_flag_holo_dark.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2015, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:state_focused="true"
- android:drawable="@drawable/ic_emoji_flag_activated_holo_dark" />
- <item
- android:state_pressed="true"
- android:drawable="@drawable/ic_emoji_flag_activated_holo_dark" />
- <item
- android:state_selected="true"
- android:drawable="@drawable/ic_emoji_flag_activated_holo_dark" />
- <item
- android:drawable="@drawable/ic_emoji_flag_normal_holo_dark" />
-</selector>
diff --git a/java/res/drawable/ic_emoji_food_holo_dark.xml b/java/res/drawable/ic_emoji_food_holo_dark.xml
deleted file mode 100644
index 2c6c0f2..0000000
--- a/java/res/drawable/ic_emoji_food_holo_dark.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2015, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:state_focused="true"
- android:drawable="@drawable/ic_emoji_food_activated_holo_dark" />
- <item
- android:state_pressed="true"
- android:drawable="@drawable/ic_emoji_food_activated_holo_dark" />
- <item
- android:state_selected="true"
- android:drawable="@drawable/ic_emoji_food_activated_holo_dark" />
- <item
- android:drawable="@drawable/ic_emoji_food_normal_holo_dark" />
-</selector>
diff --git a/java/res/drawable/ic_emoji_nature_holo_dark.xml b/java/res/drawable/ic_emoji_nature_holo_dark.xml
deleted file mode 100644
index b946295..0000000
--- a/java/res/drawable/ic_emoji_nature_holo_dark.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:state_focused="true"
- android:drawable="@drawable/ic_emoji_nature_activated_holo_dark" />
- <item
- android:state_pressed="true"
- android:drawable="@drawable/ic_emoji_nature_activated_holo_dark" />
- <item
- android:state_selected="true"
- android:drawable="@drawable/ic_emoji_nature_activated_holo_dark" />
- <item
- android:drawable="@drawable/ic_emoji_nature_normal_holo_dark" />
-</selector>
diff --git a/java/res/drawable/ic_emoji_objects_holo_dark.xml b/java/res/drawable/ic_emoji_objects_holo_dark.xml
deleted file mode 100644
index 266e81e..0000000
--- a/java/res/drawable/ic_emoji_objects_holo_dark.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:state_focused="true"
- android:drawable="@drawable/ic_emoji_objects_activated_holo_dark" />
- <item
- android:state_pressed="true"
- android:drawable="@drawable/ic_emoji_objects_activated_holo_dark" />
- <item
- android:state_selected="true"
- android:drawable="@drawable/ic_emoji_objects_activated_holo_dark" />
- <item android:drawable="@drawable/ic_emoji_objects_normal_holo_dark" />
-</selector>
diff --git a/java/res/drawable/ic_emoji_people_holo_dark.xml b/java/res/drawable/ic_emoji_people_holo_dark.xml
deleted file mode 100644
index 15955d2..0000000
--- a/java/res/drawable/ic_emoji_people_holo_dark.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:state_focused="true"
- android:drawable="@drawable/ic_emoji_people_activated_holo_dark" />
- <item
- android:state_pressed="true"
- android:drawable="@drawable/ic_emoji_people_activated_holo_dark" />
- <item
- android:state_selected="true"
- android:drawable="@drawable/ic_emoji_people_activated_holo_dark" />
- <item android:drawable="@drawable/ic_emoji_people_normal_holo_dark" />
-</selector>
diff --git a/java/res/drawable/ic_emoji_places_holo_dark.xml b/java/res/drawable/ic_emoji_places_holo_dark.xml
deleted file mode 100644
index 260bbd8..0000000
--- a/java/res/drawable/ic_emoji_places_holo_dark.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:state_focused="true"
- android:drawable="@drawable/ic_emoji_places_activated_holo_dark" />
- <item
- android:state_pressed="true"
- android:drawable="@drawable/ic_emoji_places_activated_holo_dark" />
- <item
- android:state_selected="true"
- android:drawable="@drawable/ic_emoji_places_activated_holo_dark" />
- <item android:drawable="@drawable/ic_emoji_places_normal_holo_dark" />
-</selector>
diff --git a/java/res/drawable/ic_emoji_recents_holo_dark.xml b/java/res/drawable/ic_emoji_recents_holo_dark.xml
deleted file mode 100644
index f14349f..0000000
--- a/java/res/drawable/ic_emoji_recents_holo_dark.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:state_focused="true"
- android:drawable="@drawable/ic_emoji_recents_activated_holo_dark" />
- <item
- android:state_pressed="true"
- android:drawable="@drawable/ic_emoji_recents_activated_holo_dark" />
- <item
- android:state_selected="true"
- android:drawable="@drawable/ic_emoji_recents_activated_holo_dark" />
- <item android:drawable="@drawable/ic_emoji_recents_normal_holo_dark" />
-</selector>
diff --git a/java/res/drawable/ic_emoji_symbols_holo_dark.xml b/java/res/drawable/ic_emoji_symbols_holo_dark.xml
deleted file mode 100644
index 831d659..0000000
--- a/java/res/drawable/ic_emoji_symbols_holo_dark.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:state_focused="true"
- android:drawable="@drawable/ic_emoji_symbols_activated_holo_dark" />
- <item
- android:state_pressed="true"
- android:drawable="@drawable/ic_emoji_symbols_activated_holo_dark" />
- <item
- android:state_selected="true"
- android:drawable="@drawable/ic_emoji_symbols_activated_holo_dark" />
- <item android:drawable="@drawable/ic_emoji_symbols_normal_holo_dark" />
-</selector>
diff --git a/java/res/drawable/keyboard_key_feedback_background_you.xml b/java/res/drawable/keyboard_key_feedback_background_you.xml
new file mode 100644
index 0000000..b6d874c
--- /dev/null
+++ b/java/res/drawable/keyboard_key_feedback_background_you.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="@color/keyboard_key_normal_color_you"/>
+ <corners android:radius="@dimen/keyboard_key_corner_radius_you" />
+ <size
+ android:width="40dp"
+ android:height="1dp" />
+</shape>
diff --git a/java/res/drawable/keyboard_key_feedback_ics.xml b/java/res/drawable/keyboard_key_feedback_ics.xml
deleted file mode 100644
index b52a61f..0000000
--- a/java/res/drawable/keyboard_key_feedback_ics.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<selector
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <!-- Left edge -->
- <item latin:state_left_edge="true" latin:state_has_morekeys="true"
- android:drawable="@drawable/keyboard_key_feedback_left_more_background_ics" />
- <item latin:state_left_edge="true"
- android:drawable="@drawable/keyboard_key_feedback_left_background_ics" />
-
- <!-- Right edge -->
- <item latin:state_right_edge="true" latin:state_has_morekeys="true"
- android:drawable="@drawable/keyboard_key_feedback_right_more_background_ics" />
- <item latin:state_right_edge="true"
- android:drawable="@drawable/keyboard_key_feedback_right_background_ics" />
-
- <item latin:state_has_morekeys="true"
- android:drawable="@drawable/keyboard_key_feedback_more_background_ics" />
- <item android:drawable="@drawable/keyboard_key_feedback_background_ics" />
-</selector>
diff --git a/java/res/drawable/keyboard_key_feedback_klp.xml b/java/res/drawable/keyboard_key_feedback_klp.xml
deleted file mode 100644
index a386556..0000000
--- a/java/res/drawable/keyboard_key_feedback_klp.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<selector
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <!-- Left edge -->
- <item latin:state_left_edge="true" latin:state_has_morekeys="true"
- android:drawable="@drawable/keyboard_key_feedback_left_more_background_klp" />
- <item latin:state_left_edge="true"
- android:drawable="@drawable/keyboard_key_feedback_left_background_klp" />
-
- <!-- Right edge -->
- <item latin:state_right_edge="true" latin:state_has_morekeys="true"
- android:drawable="@drawable/keyboard_key_feedback_right_more_background_klp" />
- <item latin:state_right_edge="true"
- android:drawable="@drawable/keyboard_key_feedback_right_background_klp" />
-
- <item latin:state_has_morekeys="true"
- android:drawable="@drawable/keyboard_key_feedback_more_background_klp" />
- <item android:drawable="@drawable/keyboard_key_feedback_background_klp" />
-</selector>
diff --git a/java/res/drawable/btn_keyboard_key_popup_klp.xml b/java/res/drawable/keyboard_key_feedback_you.xml
similarity index 67%
rename from java/res/drawable/btn_keyboard_key_popup_klp.xml
rename to java/res/drawable/keyboard_key_feedback_you.xml
index 9dfc93a..76d327c 100644
--- a/java/res/drawable/btn_keyboard_key_popup_klp.xml
+++ b/java/res/drawable/keyboard_key_feedback_you.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
+<!-- Copyright (C) 2014 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,8 +14,9 @@
limitations under the License.
-->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_popup_selected_klp" />
- <item android:drawable="@android:color/transparent" />
+<selector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <item android:drawable="@drawable/keyboard_key_feedback_background_you" />
</selector>
diff --git a/java/res/drawable/sym_keyboard_delete_you.xml b/java/res/drawable/sym_keyboard_delete_you.xml
new file mode 100644
index 0000000..0cd1886
--- /dev/null
+++ b/java/res/drawable/sym_keyboard_delete_you.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+
+ <path
+ android:fillColor="@color/icon_color_you"
+ android:pathData="M22,3H7C6.31,3 5.77,3.35 5.41,3.88L0,12L5.41,20.11C5.77,20.64 6.31,21 7,21H22A2,2 0 0,0 24,19V5A2,2 0 0,0 22,3M19,15.59L17.59,17L14,13.41L10.41,17L9,15.59L12.59,12L9,8.41L10.41,7L14,10.59L17.59,7L19,8.41L15.41,12" />
+</vector>
diff --git a/java/res/drawable/sym_keyboard_done_you.xml b/java/res/drawable/sym_keyboard_done_you.xml
new file mode 100644
index 0000000..e295a4c
--- /dev/null
+++ b/java/res/drawable/sym_keyboard_done_you.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+
+ <path
+ android:fillColor="@color/icon_color_you"
+ android:pathData="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" />
+</vector>
diff --git a/java/res/drawable/sym_keyboard_language_switch_you.xml b/java/res/drawable/sym_keyboard_language_switch_you.xml
new file mode 100644
index 0000000..a110e2a
--- /dev/null
+++ b/java/res/drawable/sym_keyboard_language_switch_you.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+
+ <path
+ android:fillColor="@color/icon_color_you"
+ android:pathData="M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z" />
+</vector>
diff --git a/java/res/drawable/sym_keyboard_next_you.xml b/java/res/drawable/sym_keyboard_next_you.xml
new file mode 100644
index 0000000..7821bfe
--- /dev/null
+++ b/java/res/drawable/sym_keyboard_next_you.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+
+ <path
+ android:fillColor="@color/icon_color_you"
+ android:pathData="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z" />
+</vector>
diff --git a/java/res/drawable/sym_keyboard_previous_you.xml b/java/res/drawable/sym_keyboard_previous_you.xml
new file mode 100644
index 0000000..1f89790
--- /dev/null
+++ b/java/res/drawable/sym_keyboard_previous_you.xml
@@ -0,0 +1,17 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+
+ <group
+ android:translateY="24"
+ android:translateX="24"
+ android:rotation="180">
+
+ <path
+ android:fillColor="@color/icon_color_you"
+ android:pathData="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z" />
+ </group>
+</vector>
+
diff --git a/java/res/drawable/sym_keyboard_return_you.xml b/java/res/drawable/sym_keyboard_return_you.xml
new file mode 100644
index 0000000..292128d
--- /dev/null
+++ b/java/res/drawable/sym_keyboard_return_you.xml
@@ -0,0 +1,11 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+
+ <path
+ android:fillColor="@color/icon_color_you"
+ android:pathData="M19,7v4H5.83l3.58,-3.59L8,6l-6,6 6,6 1.41,-1.41L5.83,13H21V7z"/>
+</vector>
+
diff --git a/java/res/drawable/sym_keyboard_search_you.xml b/java/res/drawable/sym_keyboard_search_you.xml
new file mode 100644
index 0000000..48ce580
--- /dev/null
+++ b/java/res/drawable/sym_keyboard_search_you.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+
+ <path
+ android:fillColor="@color/icon_color_you"
+ android:pathData="M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z" />
+</vector>
diff --git a/java/res/drawable/sym_keyboard_send_you.xml b/java/res/drawable/sym_keyboard_send_you.xml
new file mode 100644
index 0000000..674c9c1
--- /dev/null
+++ b/java/res/drawable/sym_keyboard_send_you.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+
+ <path
+ android:fillColor="@color/icon_color_you"
+ android:pathData="M2,21L23,12L2,3V10L17,12L2,14V21Z" />
+</vector>
diff --git a/java/res/drawable/sym_keyboard_settings_you.xml b/java/res/drawable/sym_keyboard_settings_you.xml
new file mode 100644
index 0000000..1f47957
--- /dev/null
+++ b/java/res/drawable/sym_keyboard_settings_you.xml
@@ -0,0 +1,11 @@
+<!-- drawable/cog.xml -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+
+ <path
+ android:fillColor="@color/icon_color_you"
+ android:pathData="M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z" />
+</vector>
diff --git a/java/res/drawable/sym_keyboard_shift_locked_you.xml b/java/res/drawable/sym_keyboard_shift_locked_you.xml
new file mode 100644
index 0000000..8e76a9b
--- /dev/null
+++ b/java/res/drawable/sym_keyboard_shift_locked_you.xml
@@ -0,0 +1,15 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <group
+ android:translateY="24"
+ android:translateX="24"
+ android:rotation="180">
+
+ <path
+ android:fillColor="@color/shift_locked_color_you"
+ android:pathData="M9,4H15V12H19.84L12,19.84L4.16,12H9V4Z" />
+ </group>
+</vector>
diff --git a/java/res/drawable/sym_keyboard_shift_you.xml b/java/res/drawable/sym_keyboard_shift_you.xml
new file mode 100644
index 0000000..dbe359e
--- /dev/null
+++ b/java/res/drawable/sym_keyboard_shift_you.xml
@@ -0,0 +1,15 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <group
+ android:translateY="24"
+ android:translateX="24"
+ android:rotation="180">
+
+ <path
+ android:fillColor="@color/shift_normal_color_you"
+ android:pathData="M9,4H15V12H19.84L12,19.84L4.16,12H9V4Z" />
+ </group>
+</vector>
diff --git a/java/res/drawable/sym_keyboard_smiley_you.xml b/java/res/drawable/sym_keyboard_smiley_you.xml
new file mode 100644
index 0000000..c86ede3
--- /dev/null
+++ b/java/res/drawable/sym_keyboard_smiley_you.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+
+ <path
+ android:fillColor="@color/icon_color_you"
+ android:pathData="M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M15.5,8A1.5,1.5 0 0,1 17,9.5A1.5,1.5 0 0,1 15.5,11A1.5,1.5 0 0,1 14,9.5A1.5,1.5 0 0,1 15.5,8M8.5,8A1.5,1.5 0 0,1 10,9.5A1.5,1.5 0 0,1 8.5,11A1.5,1.5 0 0,1 7,9.5A1.5,1.5 0 0,1 8.5,8M12,17.5C9.67,17.5 7.69,16.04 6.89,14H17.11C16.3,16.04 14.33,17.5 12,17.5Z" />
+</vector>
diff --git a/java/res/drawable/sym_keyboard_tab_you.xml b/java/res/drawable/sym_keyboard_tab_you.xml
new file mode 100644
index 0000000..726268a
--- /dev/null
+++ b/java/res/drawable/sym_keyboard_tab_you.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+
+ <path
+ android:fillColor="@color/icon_color_you"
+ android:pathData="M20,18H22V6H20M11.59,7.41L15.17,11H1V13H15.17L11.59,16.58L13,18L19,12L13,6L11.59,7.41Z" />
+</vector>
diff --git a/java/res/drawable/sym_keyboard_voice_off_you.xml b/java/res/drawable/sym_keyboard_voice_off_you.xml
new file mode 100644
index 0000000..da922cd
--- /dev/null
+++ b/java/res/drawable/sym_keyboard_voice_off_you.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+
+ <path
+ android:fillColor="@color/icon_color_you"
+ android:pathData="M19,11C19,12.19 18.66,13.3 18.1,14.28L16.87,13.05C17.14,12.43 17.3,11.74 17.3,11H19M15,11.16L9,5.18V5A3,3 0 0,1 12,2A3,3 0 0,1 15,5V11L15,11.16M4.27,3L21,19.73L19.73,21L15.54,16.81C14.77,17.27 13.91,17.58 13,17.72V21H11V17.72C7.72,17.23 5,14.41 5,11H6.7C6.7,14 9.24,16.1 12,16.1C12.81,16.1 13.6,15.91 14.31,15.58L12.65,13.92L12,14A3,3 0 0,1 9,11V10.28L3,4.27L4.27,3Z" />
+</vector>
diff --git a/java/res/drawable/sym_keyboard_voice_you.xml b/java/res/drawable/sym_keyboard_voice_you.xml
new file mode 100644
index 0000000..ca2d0c2
--- /dev/null
+++ b/java/res/drawable/sym_keyboard_voice_you.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+
+ <path
+ android:fillColor="@color/icon_color_you"
+ android:pathData="M12,2A3,3 0 0,1 15,5V11A3,3 0 0,1 12,14A3,3 0 0,1 9,11V5A3,3 0 0,1 12,2M19,11C19,14.53 16.39,17.44 13,17.93V21H11V17.93C7.61,17.44 5,14.53 5,11H7A5,5 0 0,0 12,16A5,5 0 0,0 17,11H19Z" />
+</vector>
diff --git a/java/res/menu/add_style.xml b/java/res/menu/add_style.xml
index befa3f2..62aa9c0 100644
--- a/java/res/menu/add_style.xml
+++ b/java/res/menu/add_style.xml
@@ -20,7 +20,7 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_add_style"
- android:icon="@drawable/ic_add_circle_white_24dp"
+ android:icon="@drawable/ic_add_circle"
android:title="@string/add_style"
android:showAsAction="always" />
</menu>
diff --git a/java/res/values-land/config.xml b/java/res/values-land/config.xml
index d36f6a0..fdaba14 100644
--- a/java/res/values-land/config.xml
+++ b/java/res/values-land/config.xml
@@ -78,7 +78,7 @@
<!-- Emoji keyboard -->
<fraction name="config_emoji_keyboard_key_width">10%p</fraction>
- <fraction name="config_emoji_keyboard_row_height">50%p</fraction>
+ <fraction name="config_emoji_keyboard_row_height">33%p</fraction>
<fraction name="config_emoji_keyboard_key_letter_size">54%p</fraction>
- <integer name="config_emoji_keyboard_max_page_key_count">20</integer>
+ <integer name="config_emoji_keyboard_max_page_key_count">30</integer>
</resources>
diff --git a/java/res/values-night/themes-you-colors.xml b/java/res/values-night/themes-you-colors.xml
new file mode 100644
index 0000000..91e0975
--- /dev/null
+++ b/java/res/values-night/themes-you-colors.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+ <color name="keyboard_background_you">@android:color/system_neutral1_1000</color>
+ <color name="keyboard_key_normal_color_you">@android:color/system_neutral1_800</color>
+ <color name="keyboard_key_pressed_color_you">@android:color/system_neutral1_900</color>
+ <color name="keyboard_key_text_color_you">@android:color/system_accent1_10</color>
+ <color name="functional_text_color_you">@color/keyboard_key_text_color_you</color>
+ <color name="category_page_indicator_color">@android:color/system_accent3_200</color>
+ <color name="icon_color_you">@android:color/system_accent3_100</color>
+ <color name="functional_normal_color_you">@android:color/system_neutral2_800</color>
+ <color name="functional_pressed_color_you">@android:color/system_neutral2_900</color>
+ <color name="shift_normal_color_you">@android:color/system_neutral1_400</color>
+ <color name="shift_locked_color_you">@android:color/system_accent1_10</color>
+ <color name="key_hint_letter_color_you">@color/key_hint_letter_color_lxx_dark</color>
+ <color name="typed_word_color_you">@color/typed_word_color_lxx_dark</color>
+ <color name="auto_correct_color_you">@color/auto_correct_color_lxx_dark</color>
+ <color name="suggested_word_color_you">@color/suggested_word_color_lxx_dark</color>
+ <color name="highlight_color_you">@color/highlight_color_lxx_dark</color>
+ <color name="gesture_trail_color_you">@android:color/system_accent3_100</color>
+ <color name="gesture_floating_preview_text_color_you">@android:color/system_neutral1_0</color>
+</resources>
diff --git a/java/res/values-sw600dp/config-per-form-factor.xml b/java/res/values-sw600dp/config-per-form-factor.xml
index aa9a054..bb2eaa8 100644
--- a/java/res/values-sw600dp/config-per-form-factor.xml
+++ b/java/res/values-sw600dp/config-per-form-factor.xml
@@ -23,7 +23,7 @@
<bool name="config_enable_show_key_preview_popup_option">false</bool>
<!-- Whether or not Popup on key press is enabled by default -->
<bool name="config_default_key_preview_popup">false</bool>
- <bool name="config_default_sound_enabled">true</bool>
+ <bool name="config_default_sound_enabled">false</bool>
<bool name="config_enable_show_voice_key_option">false</bool>
<bool name="config_key_selection_by_dragging_finger">false</bool>
<!-- Showing more keys keyboard, just above the touched point if true, aligned to the key if
diff --git a/java/res/values-sw768dp/config-per-form-factor.xml b/java/res/values-sw768dp/config-per-form-factor.xml
index b90fbae..45ff0b1 100644
--- a/java/res/values-sw768dp/config-per-form-factor.xml
+++ b/java/res/values-sw768dp/config-per-form-factor.xml
@@ -23,7 +23,7 @@
<bool name="config_enable_show_key_preview_popup_option">false</bool>
<!-- Whether or not Popup on key press is enabled by default -->
<bool name="config_default_key_preview_popup">false</bool>
- <bool name="config_default_sound_enabled">true</bool>
+ <bool name="config_default_sound_enabled">false</bool>
<bool name="config_enable_show_voice_key_option">false</bool>
<bool name="config_key_selection_by_dragging_finger">false</bool>
<!-- Showing more keys keyboard, just above the touched point if true, aligned to the key if
diff --git a/java/res/values-v19/emoji-categories.xml b/java/res/values-v19/emoji-categories.xml
index d9b1738..d45e028 100644
--- a/java/res/values-v19/emoji-categories.xml
+++ b/java/res/values-v19/emoji-categories.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2015 The Android Open Source Project
+ Copyright (C) 2018 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -244,10 +245,10 @@
<item>1f6af</item>
<item>1f6b0</item>
<item>1f6b1</item>
- <item>1f170</item>
- <item>1f171</item>
+ <item>1f170,FE0F</item>
+ <item>1f171,FE0F</item>
<item>1f18e</item>
- <item>1f17e</item>
+ <item>1f17e,FE0F</item>
<item>1f4ae</item>
<item>1f4af</item>
<item>1f520</item>
@@ -264,10 +265,10 @@
<item>1f6ba</item>
<item>1f6bc</item>
<item>267f</item>
- <item>267b</item>
+ <item>267b,FE0F</item>
<item>1f6ad</item>
<item>1f6a9</item>
- <item>26a0</item>
+ <item>26a0,FE0F</item>
<item>1f201</item>
<item>1f51e</item>
<item>26d4</item>
@@ -284,33 +285,33 @@
<item>1f234</item>
<item>1f235</item>
<item>1f236</item>
- <item>1f237</item>
+ <item>1f237,FE0F</item>
<item>1f238</item>
<item>1f239</item>
- <item>1f202</item>
+ <item>1f202,FE0F</item>
<item>1f23a</item>
<item>1f250</item>
<item>1f251</item>
- <item>3299</item>
- <item>00ae</item>
- <item>00a9</item>
- <item>2122</item>
+ <item>3299,FE0F</item>
+ <!-- Removed for lack of color glyph support. <item>00ae</item> -->
+ <!-- Removed for lack of color glyph support. <item>00a9</item> -->
+ <item>2122,FE0F</item>
<item>1f21a</item>
<item>1f22f</item>
- <item>3297</item>
+ <item>3297,FE0F</item>
<item>2b55</item>
<item>274c</item>
<item>274e</item>
- <item>2139</item>
+ <item>2139,FE0F</item>
<item>1f6ab</item>
<item>2705</item>
- <item>2714</item>
+ <item>2714,FE0F</item>
<item>1f517</item>
- <item>2734</item>
- <item>2733</item>
+ <item>2734,FE0F</item>
+ <item>2733,FE0F</item>
<item>2795</item>
<item>2796</item>
- <item>2716</item>
+ <item>2716,FE0F</item>
<item>2797</item>
<item>1f4a0</item>
<item>1f4a1</item>
@@ -345,27 +346,27 @@
<item>1f565</item>
<item>1f55a</item>
<item>1f566</item>
- <item>2195</item>
- <item>2b06</item>
- <item>2197</item>
- <item>27a1</item>
- <item>2198</item>
- <item>2b07</item>
- <item>2199</item>
- <item>2b05</item>
- <item>2196</item>
- <item>2194</item>
- <item>2934</item>
- <item>2935</item>
+ <item>2195,FE0F</item>
+ <item>2b06,FE0F</item>
+ <item>2197,FE0F</item>
+ <item>27a1,FE0F</item>
+ <item>2198,FE0F</item>
+ <item>2b07,FE0F</item>
+ <item>2199,FE0F</item>
+ <item>2b05,FE0F</item>
+ <item>2196,FE0F</item>
+ <item>2194,FE0F</item>
+ <item>2934,FE0F</item>
+ <item>2935,FE0F</item>
<item>23ea</item>
<item>23eb</item>
<item>23ec</item>
<item>23e9</item>
- <item>25c0</item>
- <item>25b6</item>
+ <item>25c0,FE0F</item>
+ <item>25b6,FE0F</item>
<item>1f53d</item>
<item>1f53c</item>
- <item>2747</item>
+ <item>2747,FE0F</item>
<item>2728</item>
<item>1f534</item>
<item>1f535</item>
@@ -376,12 +377,12 @@
<item>2b50</item>
<item>1f31f</item>
<item>1f320</item>
- <item>25ab</item>
- <item>25aa</item>
+ <!-- Removed for lack of color glyph support. <item>25ab</item> -->
+ <!-- Removed for lack of color glyph support. <item>25aa</item> -->
<item>25fd</item>
<item>25fe</item>
- <item>25fb</item>
- <item>25fc</item>
+ <!-- Removed for lack of color glyph support. <item>25fb</item> -->
+ <!-- Removed for lack of color glyph support. <item>25fc</item> -->
<item>2b1c</item>
<item>2b1b</item>
<item>1f538</item>
@@ -394,9 +395,9 @@
<item>2753</item>
<item>2755</item>
<item>2757</item>
- <item>203c</item>
- <item>2049</item>
- <item>3030</item>
+ <item>203c,FE0F</item>
+ <item>2049,FE0F</item>
+ <item>3030,FE0F</item>
<item>27b0</item>
<item>2660</item>
<item>2665</item>
@@ -404,14 +405,14 @@
<item>2666</item>
<item>1f194</item>
<item>1f511</item>
- <item>21a9</item>
+ <item>21a9,FE0F</item>
<item>1f191</item>
<item>1f50d</item>
<item>1f512</item>
<item>1f513</item>
- <item>21aa</item>
+ <item>21aa,FE0F</item>
<item>1f510</item>
- <item>2611</item>
+ <item>2611,FE0F</item>
<item>1f518</item>
<item>1f50e</item>
<item>1f516</item>
@@ -428,6 +429,8 @@
<item>1f508</item>
<item>1f509</item>
<item>1f50a</item>
+ <item>1f5a4</item>
+ <item>1f6d1</item>
</array>
<array
name="emoji_faces"
@@ -563,6 +566,20 @@
<item>1f49b</item>
<item>1f49c</item>
<item>1f493</item>
+ <!--item>1f920</item-->
+ <!--item>1f921</item-->
+ <!--item>1f922</item-->
+ <item>1f923</item>
+ <item>1f924</item>
+ <!--item>1f925</item-->
+ <item>1f926</item>
+ <!--item>1f927</item-->
+ <item>1f930</item>
+ <item>1f933</item>
+ <item>1f934</item>
+ <item>1f935</item>
+ <item>1f936</item>
+ <item>1f937</item>
<item>1f494</item>
<item>1f495</item>
<item>1f496</item>
@@ -586,6 +603,12 @@
<item>1f44b</item>
<item>1f44f</item>
<item>1f450</item>
+ <item>1f919</item>
+ <item>1f91a</item>
+ <item>1f91b</item>
+ <item>1f91c</item>
+ <item>1f91d</item>
+ <item>1f91e</item>
</array>
<array
name="emoji_objects"
@@ -677,7 +700,7 @@
<item>1f4de</item>
<item>1f4e0</item>
<item>1f4e6</item>
- <item>2709</item>
+ <item>2709,FE0F</item>
<item>1f4e8</item>
<item>1f4e9</item>
<item>1f4ea</item>
@@ -693,15 +716,15 @@
<item>1f4e1</item>
<item>1f4ac</item>
<item>1f4ad</item>
- <item>2712</item>
- <item>270f</item>
+ <item>2712,FE0F</item>
+ <item>270f,FE0F</item>
<item>1f4dd</item>
<item>1f4cf</item>
<item>1f4d0</item>
<item>1f4cd</item>
<item>1f4cc</item>
<item>1f4ce</item>
- <item>2702</item>
+ <item>2702,FE0F</item>
<item>1f4ba</item>
<item>1f4bb</item>
<item>1f4bd</item>
@@ -752,7 +775,19 @@
<item>1f3b7</item>
<item>1f3ba</item>
<item>1f3b8</item>
- <item>303d</item>
+ <item>303d,FE0F</item>
+ <item>1f940</item>
+ <item>1f941</item>
+ <item>1f942</item>
+ <item>1f943</item>
+ <item>1f944</item>
+ <item>1f945</item>
+ <item>1f946</item>
+ <item>1f947</item>
+ <item>1f948</item>
+ <item>1f949</item>
+ <item>1f94a</item>
+ <item>1f94b</item>
</array>
<array
name="emoji_places"
@@ -818,7 +853,7 @@
<item>1f685</item>
<item>1f686</item>
<item>1f687</item>
- <item>24c2</item>
+ <item>24c2,FE0F</item>
<item>1f688</item>
<item>1f68a</item>
<item>1f68b</item>
@@ -847,7 +882,7 @@
<item>1f6a2</item>
<item>1f6a3</item>
<item>1f681</item>
- <item>2708</item>
+ <item>2708,FE0F</item>
<item>1f6c2</item>
<item>1f6c3</item>
<item>1f6c4</item>
@@ -864,12 +899,12 @@
<item>1f6a4</item>
<item>1f6b6</item>
<item>26fd</item>
- <item>1f17f</item>
+ <item>1f17f,FE0F</item>
<item>1f6a5</item>
<item>1f6a6</item>
<item>1f6a7</item>
<item>1f6a8</item>
- <item>2668</item>
+ <item>2668,FE0F</item>
<item>1f48c</item>
<item>1f48d</item>
<item>1f48e</item>
@@ -1120,1596 +1155,2553 @@
<item>1f1ff,1f1f2</item>
<item>1f1ff,1f1fc</item>
</array>
+
+ <!-- Reference: https://unicode.org/emoji/charts/full-emoji-list.html -->
+
<array
name="emoji_emoticons"
format="string"
>
- <item>=-O</item>
- <item>:-P</item>
- <item>;-)</item>
- <item>:-(</item>
- <item>:-)</item>
- <item>:-!</item>
- <item>:-$</item>
- <item>B-)</item>
- <item>:O</item>
- <item>:-*</item>
- <item>:-D</item>
- <item>:\'(</item>
- <item>:-\\</item>
- <item>O:-)</item>
- <item>:-[</item>
+ <item>(╯°</item>
+ <item>□°)</item>
+ <item>╯︵ </item>
+ <item>┻━┻</item>
+ <item> ¯\\_</item>
+ <item>(ツ)</item>
+ <item>_/¯</item>
+ <item>┬─┬</item>
+ <item>︵ /(</item>
+ <item>.□.\\</item>
</array>
<array
name="emoji_eight_symbols"
format="string"
>
- <item>1f3c1</item>
- <item>1f3f3</item>
- <item>1f3f4</item>
- <item>1f6a9</item>
- <item>1f3e7</item>
- <item>1f6ae</item>
- <item>1f6b0</item>
- <item>267f</item>
- <item>1f6b9</item>
- <item>1f6ba</item>
- <item>1f6bb</item>
- <item>1f6bc</item>
- <item>1f6be</item>
- <item>1f6c2</item>
- <item>1f6c3</item>
- <item>1f6c4</item>
- <item>1f6c5</item>
- <item>26a0</item>
- <item>1f6b8</item>
- <item>26d4</item>
- <item>1f6ab</item>
- <item>1f6b3</item>
- <item>1f6ad</item>
- <item>1f6af</item>
- <item>1f6b1</item>
- <item>1f6b7</item>
- <item>2622</item>
- <item>2623</item>
- <item>2b06</item>
- <item>2197</item>
- <item>27a1</item>
- <item>2198</item>
- <item>2b07</item>
- <item>2199</item>
- <item>2b05</item>
- <item>2196</item>
- <item>2195</item>
- <item>2194</item>
- <item>21a9</item>
- <item>21aa</item>
- <item>2934</item>
- <item>2935</item>
- <item>1f503</item>
- <item>1f504</item>
- <item>1f519</item>
- <item>1f51a</item>
- <item>1f51b</item>
- <item>1f51c</item>
- <item>1f51d</item>
- <item>1f6d0</item>
- <item>269b</item>
- <!-- Removed for lack of color glyph support. <item>1f549</item> -->
- <!-- Removed for lack of color glyph support. <item>2721</item> -->
- <!-- Removed for lack of color glyph support. <item>2638</item> -->
- <!-- Removed for lack of color glyph support. <item>262f</item> -->
- <!-- Removed for lack of color glyph support. <item>271d</item> -->
- <!-- Removed for lack of color glyph support. <item>2626</item> -->
- <!-- Removed for lack of color glyph support. <item>262a</item> -->
- <!-- Removed for lack of color glyph support. <item>262e</item> -->
- <!-- Removed for lack of color glyph support. <item>1f54e</item> -->
- <item>1f52f</item>
- <item>267b</item>
- <item>1f4db</item>
- <!-- Removed for lack of color glyph support. <item>269c</item> -->
- <item>1f530</item>
- <item>1f531</item>
- <item>2b55</item>
- <item>2705</item>
- <item>2611</item>
- <item>2714</item>
- <item>2716</item>
- <item>274c</item>
- <item>274e</item>
- <item>2795</item>
- <item>2796</item>
- <item>2797</item>
- <item>27b0</item>
- <item>27bf</item>
- <item>303d</item>
- <item>2733</item>
- <item>2734</item>
- <item>2747</item>
- <item>1f4b1</item>
- <item>1f4b2</item>
- <item>203c</item>
- <item>2049</item>
- <item>2753</item>
- <item>2754</item>
- <item>2755</item>
- <item>2757</item>
- <item>3030</item>
- <item>a9</item>
- <item>ae</item>
- <item>2122</item>
+ <!-- transport-sign -->
+ <item>1F3E7</item>
+ <item>1F6AE</item>
+ <item>1F6B0</item>
+ <item>267F</item>
+ <item>1F6B9</item>
+ <item>1F6BA</item>
+ <item>1F6BB</item>
+ <item>1F6BC</item>
+ <item>1F6BE</item>
+ <item>1F6C2</item>
+ <item>1F6C3</item>
+ <item>1F6C4</item>
+ <item>1F6C5</item>
+ <!-- warning -->
+ <item>26A0,FE0F</item>
+ <item>1F6B8</item>
+ <item>26D4</item>
+ <item>1F6AB</item>
+ <item>1F6B3</item>
+ <item>1F6AD</item>
+ <item>1F6AF</item>
+ <item>1F6B1</item>
+ <item>1F6B7</item>
+ <item>1F4F5</item>
+ <item>1F51E</item>
+ <item>2622,FE0F</item>
+ <item>2623,FE0F</item>
+ <!-- arrow -->
+ <item>2B06,FE0F</item>
+ <item>2197,FE0F</item>
+ <item>27A1,FE0F</item>
+ <item>2198,FE0F</item>
+ <item>2B07,FE0F</item>
+ <item>2199,FE0F</item>
+ <item>2B05,FE0F</item>
+ <item>2196,FE0F</item>
+ <item>2195,FE0F</item>
+ <item>2194,FE0F</item>
+ <item>21A9,FE0F</item>
+ <item>21AA,FE0F</item>
+ <item>2934,FE0F</item>
+ <item>2935,FE0F</item>
+ <item>1F503</item>
+ <item>1F504</item>
+ <item>1F519</item>
+ <item>1F51A</item>
+ <item>1F51B</item>
+ <item>1F51C</item>
+ <item>1F51D</item>
+ <!-- religion -->
+ <item>1F6D0</item>
+ <item>269B,FE0F</item>
+ <item>1F549</item>
+ <item>2721,FE0F</item>
+ <item>2638,FE0F</item>
+ <item>262F,FE0F</item>
+ <item>271D,FE0F</item>
+ <item>2626,FE0F</item>
+ <item>262A,FE0F</item>
+ <item>262E,FE0F</item>
+ <item>1F54E</item>
+ <item>1F52F</item>
+ <!-- zodiac -->
<item>2648</item>
<item>2649</item>
- <item>264a</item>
- <item>264b</item>
- <item>264c</item>
- <item>264d</item>
- <item>264e</item>
- <item>264f</item>
+ <item>264A</item>
+ <item>264B</item>
+ <item>264C</item>
+ <item>264D</item>
+ <item>264E</item>
+ <item>264F</item>
<item>2650</item>
<item>2651</item>
<item>2652</item>
<item>2653</item>
- <item>26ce</item>
- <item>1f500</item>
- <item>1f501</item>
- <item>1f502</item>
- <item>25b6</item>
- <item>23e9</item>
- <item>23ed</item>
- <item>23ef</item>
- <item>25c0</item>
- <item>23ea</item>
- <item>23ee</item>
- <item>1f53c</item>
- <item>23eb</item>
- <item>1f53d</item>
- <item>23ec</item>
- <item>23f8</item>
- <item>23f9</item>
- <item>23fa</item>
- <item>23cf</item>
- <item>1f3a6</item>
- <item>1f505</item>
- <item>1f506</item>
- <item>1f4f6</item>
- <item>1f4f5</item>
- <item>1f4f3</item>
- <item>1f4f4</item>
- <item>23,20e3</item>
- <item>2a,20e3</item>
- <item>30,20e3</item>
- <item>31,20e3</item>
- <item>32,20e3</item>
- <item>33,20e3</item>
- <item>34,20e3</item>
- <item>35,20e3</item>
- <item>36,20e3</item>
- <item>37,20e3</item>
- <item>38,20e3</item>
- <item>39,20e3</item>
- <item>1f51f</item>
- <item>1f4af</item>
- <item>1f51e</item>
- <item>1f520</item>
- <item>1f521</item>
- <item>1f522</item>
- <item>1f523</item>
- <item>1f524</item>
- <item>1f170</item>
- <item>1f18e</item>
- <item>1f171</item>
- <item>1f191</item>
- <item>1f192</item>
- <item>1f193</item>
- <item>2139</item>
- <item>1f194</item>
- <item>24c2</item>
- <item>1f195</item>
- <item>1f196</item>
- <item>1f17e</item>
- <item>1f197</item>
- <item>1f17f</item>
- <item>1f198</item>
- <item>1f199</item>
- <item>1f19a</item>
- <item>1f201</item>
- <item>1f202</item>
- <item>1f237</item>
- <item>1f236</item>
- <item>1f22f</item>
- <item>1f250</item>
- <item>1f239</item>
- <item>1f21a</item>
- <item>1f232</item>
- <item>1f251</item>
- <item>1f238</item>
- <item>1f234</item>
- <item>1f233</item>
- <item>3297</item>
- <item>3299</item>
- <item>1f23a</item>
- <item>1f235</item>
- <item>25aa</item>
- <item>25ab</item>
- <item>25fb</item>
- <item>25fc</item>
- <item>25fd</item>
- <item>25fe</item>
- <item>2b1b</item>
- <item>2b1c</item>
- <item>1f536</item>
- <item>1f537</item>
- <item>1f538</item>
- <item>1f539</item>
- <item>1f53a</item>
- <item>1f53b</item>
- <item>1f4a0</item>
- <item>1f518</item>
- <item>1f532</item>
- <item>1f533</item>
- <item>26aa</item>
- <item>26ab</item>
- <item>1f534</item>
- <item>1f535</item>
+ <item>26CE</item>
+ <!-- av-symbol -->
+ <item>1F500</item>
+ <item>1F501</item>
+ <item>1F502</item>
+ <item>25B6,FE0F</item>
+ <item>23E9</item>
+ <item>23ED,FE0F</item>
+ <item>23EF,FE0F</item>
+ <item>25C0,FE0F</item>
+ <item>23EA</item>
+ <item>23EE,FE0F</item>
+ <item>1F53C</item>
+ <item>23EB</item>
+ <item>1F53D</item>
+ <item>23EC</item>
+ <item>23F8</item>
+ <item>23F9</item>
+ <item>23FA</item>
+ <item>23CF,FE0F</item>
+ <item>1F3A6</item>
+ <item>1F505</item>
+ <item>1F506</item>
+ <item>1F4F6</item>
+ <item>1F4F3</item>
+ <item>1F4F4</item>
+ <!-- gender -->
+ <item>2640,FE0F</item>
+ <item>2642,FE0F</item>
+ <item>26A7</item>
+ <!-- math -->
+ <item>2716,FE0F</item>
+ <item>2795</item>
+ <item>2796</item>
+ <item>2797</item>
+ <item>267E,FE0F</item>
+ <!-- punctuation -->
+ <item>203C,FE0F</item>
+ <item>2049,FE0F</item>
+ <item>2753</item>
+ <item>2754</item>
+ <item>2755</item>
+ <item>2757</item>
+ <item>3030,FE0F</item>
+ <!-- currency -->
+ <item>1F4B1</item>
+ <item>1F4B2</item>
+ <!-- other-symbol -->
+ <item>2695,FE0F</item>
+ <item>267B,FE0F</item>
+ <item>269C,FE0F</item>
+ <item>1F531</item>
+ <item>1F4DB</item>
+ <item>1F530</item>
+ <item>2B55</item>
+ <item>2705</item>
+ <item>2611,FE0F</item>
+ <item>2714,FE0F</item>
+ <item>274C</item>
+ <item>274E</item>
+ <item>27B0</item>
+ <item>27BF</item>
+ <item>303D,FE0F</item>
+ <item>2733,FE0F</item>
+ <item>2734,FE0F</item>
+ <item>2747,FE0F</item>
+ <item>00A9,FE0F</item>
+ <item>00AE,FE0F</item>
+ <item>2122,FE0F</item>
+ <!-- keycap -->
+ <item>0023,FE0F,20E3</item>
+ <item>002A,FE0F,20E3</item>
+ <item>0030,FE0F,20E3</item>
+ <item>0031,FE0F,20E3</item>
+ <item>0032,FE0F,20E3</item>
+ <item>0033,FE0F,20E3</item>
+ <item>0034,FE0F,20E3</item>
+ <item>0035,FE0F,20E3</item>
+ <item>0036,FE0F,20E3</item>
+ <item>0037,FE0F,20E3</item>
+ <item>0038,FE0F,20E3</item>
+ <item>0039,FE0F,20E3</item>
+ <item>1F51F</item>
+ <!-- alphanum -->
+ <item>1F520</item>
+ <item>1F521</item>
+ <item>1F522</item>
+ <item>1F523</item>
+ <item>1F524</item>
+ <item>1F170,FE0F</item>
+ <item>1F18E</item>
+ <item>1F171,FE0F</item>
+ <item>1F191</item>
+ <item>1F192</item>
+ <item>1F193</item>
+ <item>2139,FE0F</item>
+ <item>1F194</item>
+ <item>24C2,FE0F</item>
+ <item>1F195</item>
+ <item>1F196</item>
+ <item>1F17E,FE0F</item>
+ <item>1F197</item>
+ <item>1F17F,FE0F</item>
+ <item>1F198</item>
+ <item>1F199</item>
+ <item>1F19A</item>
+ <item>1F201</item>
+ <item>1F202,FE0F</item>
+ <item>1F237,FE0F</item>
+ <item>1F236</item>
+ <item>1F22F</item>
+ <item>1F250</item>
+ <item>1F239</item>
+ <item>1F21A</item>
+ <item>1F232</item>
+ <item>1F251</item>
+ <item>1F238</item>
+ <item>1F234</item>
+ <item>1F233</item>
+ <item>3297,FE0F</item>
+ <item>3299,FE0F</item>
+ <item>1F23A</item>
+ <item>1F235</item>
+ <!-- geometric -->
+ <item>1F534</item>
+ <item>1F7E0</item>
+ <item>1F7E1</item>
+ <item>1F7E2</item>
+ <item>1F535</item>
+ <item>1F7E3</item>
+ <item>1F7E4</item>
+ <item>26AB</item>
+ <item>26AA</item>
+ <item>1F7E5</item>
+ <item>1F7E7</item>
+ <item>1F7E8</item>
+ <item>1F7E9</item>
+ <item>1F7E6</item>
+ <item>1F7EA</item>
+ <item>1F7EB</item>
+ <item>2B1B</item>
+ <item>2B1C</item>
+ <item>25FC,FE0F</item>
+ <item>25FB,FE0F</item>
+ <item>25FE</item>
+ <item>25FD</item>
+ <item>25AA,FE0F</item>
+ <item>25AB,FE0F</item>
+ <item>1F536</item>
+ <item>1F537</item>
+ <item>1F538</item>
+ <item>1F539</item>
+ <item>1F53A</item>
+ <item>1F53B</item>
+ <item>1F4A0</item>
+ <item>1F518</item>
+ <item>1F533</item>
+ <item>1F532</item>
</array>
<array
name="emoji_eight_animals_nature"
format="string"
>
- <item>1f435</item>
- <item>1f412</item>
- <item>1f436</item>
- <item>1f415</item>
- <item>1f429</item>
- <item>1f43a</item>
- <item>1f431</item>
- <item>1f408</item>
- <item>1f981</item>
- <item>1f42f</item>
- <item>1f405</item>
- <item>1f406</item>
- <item>1f434</item>
- <item>1f40e</item>
- <item>1f984</item>
- <item>1f42e</item>
- <item>1f402</item>
- <item>1f403</item>
- <item>1f404</item>
- <item>1f437</item>
- <item>1f416</item>
- <item>1f417</item>
- <item>1f43d</item>
- <item>1f40f</item>
- <item>1f411</item>
- <item>1f410</item>
- <item>1f42a</item>
- <item>1f42b</item>
- <item>1f418</item>
- <item>1f42d</item>
- <item>1f401</item>
- <item>1f400</item>
- <item>1f439</item>
- <item>1f430</item>
- <item>1f407</item>
- <item>1f43f</item>
- <item>1f43b</item>
- <item>1f428</item>
- <item>1f43c</item>
- <item>1f43e</item>
- <item>1f983</item>
- <item>1f414</item>
- <item>1f413</item>
- <item>1f423</item>
- <item>1f424</item>
- <item>1f425</item>
- <item>1f426</item>
- <item>1f427</item>
- <item>1f54a</item>
- <item>1f438</item>
- <item>1f40a</item>
- <item>1f422</item>
- <item>1f40d</item>
- <item>1f432</item>
- <item>1f409</item>
- <item>1f433</item>
- <item>1f40b</item>
- <item>1f42c</item>
- <item>1f41f</item>
- <item>1f420</item>
- <item>1f421</item>
- <item>1f419</item>
- <item>1f41a</item>
- <item>1f980</item>
- <item>1f40c</item>
- <item>1f41b</item>
- <item>1f41c</item>
- <item>1f41d</item>
- <item>1f41e</item>
- <item>1f577</item>
- <item>1f578</item>
- <item>1f982</item>
- <item>1f490</item>
- <item>1f338</item>
- <item>1f4ae</item>
- <item>1f3f5</item>
- <item>1f339</item>
- <item>1f33a</item>
- <item>1f33b</item>
- <item>1f33c</item>
- <item>1f337</item>
- <!-- Removed for lack of color glyph support. <item>2618</item> -->
- <item>1f331</item>
- <item>1f332</item>
- <item>1f333</item>
- <item>1f334</item>
- <item>1f335</item>
- <item>1f33e</item>
- <item>1f33f</item>
- <item>1f340</item>
- <item>1f341</item>
- <item>1f342</item>
- <item>1f343</item>
+ <!-- animal-mammal -->
+ <item>1F435</item>
+ <item>1F412</item>
+ <item>1F98D</item>
+ <item>1F9A7</item>
+ <item>1F436</item>
+ <item>1F415</item>
+ <item>1F9AE</item>
+ <item>1F415,200D,1F9BA</item>
+ <item>1F429</item>
+ <item>1F43A</item>
+ <item>1F98A</item>
+ <item>1F99D</item>
+ <item>1F431</item>
+ <item>1F408</item>
+ <item>1F408,200D,2B1B</item>
+ <item>1F981</item>
+ <item>1F42F</item>
+ <item>1F405</item>
+ <item>1F406</item>
+ <item>1F434</item>
+ <item>1F40E</item>
+ <item>1F984</item>
+ <item>1F993</item>
+ <item>1F98C</item>
+ <item>1F9AC</item>
+ <item>1F42E</item>
+ <item>1F402</item>
+ <item>1F403</item>
+ <item>1F404</item>
+ <item>1F437</item>
+ <item>1F416</item>
+ <item>1F417</item>
+ <item>1F43D</item>
+ <item>1F40F</item>
+ <item>1F411</item>
+ <item>1F410</item>
+ <item>1F42A</item>
+ <item>1F42B</item>
+ <item>1F999</item>
+ <item>1F992</item>
+ <item>1F418</item>
+ <item>1F9A3</item>
+ <item>1F98F</item>
+ <item>1F99B</item>
+ <item>1F42D</item>
+ <item>1F401</item>
+ <item>1F400</item>
+ <item>1F439</item>
+ <item>1F430</item>
+ <item>1F407</item>
+ <item>1F43F</item>
+ <item>1F9AB</item>
+ <item>1F994</item>
+ <item>1F987</item>
+ <item>1F43B</item>
+ <item>1F43B,200D,2744,FE0F</item>
+ <item>1F428</item>
+ <item>1F43C</item>
+ <item>1F9A5</item>
+ <item>1F9A6</item>
+ <item>1F9A8</item>
+ <item>1F998</item>
+ <item>1F9A1</item>
+ <item>1F43E</item>
+ <!-- animal-bird -->
+ <item>1F983</item>
+ <item>1F414</item>
+ <item>1F413</item>
+ <item>1F423</item>
+ <item>1F424</item>
+ <item>1F425</item>
+ <item>1F426</item>
+ <item>1F427</item>
+ <item>1F54A</item>
+ <item>1F985</item>
+ <item>1F986</item>
+ <item>1F9A2</item>
+ <item>1F989</item>
+ <item>1F9A4</item>
+ <item>1FAB6</item>
+ <item>1F9A9</item>
+ <item>1F99A</item>
+ <item>1F99C</item>
+ <!-- animal-amphibian -->
+ <item>1F438</item>
+ <!-- animal-reptile -->
+ <item>1F40A</item>
+ <item>1F422</item>
+ <item>1F98E</item>
+ <item>1F40D</item>
+ <item>1F432</item>
+ <item>1F409</item>
+ <item>1F995</item>
+ <item>1F996</item>
+ <!-- animal-marine -->
+ <item>1F433</item>
+ <item>1F40B</item>
+ <item>1F42C</item>
+ <item>1F9AD</item>
+ <item>1F41F</item>
+ <item>1F420</item>
+ <item>1F421</item>
+ <item>1F988</item>
+ <item>1F419</item>
+ <item>1F41A</item>
+ <item>1FAB8</item>
+ <!-- animal-bug -->
+ <item>1F40C</item>
+ <item>1F98B</item>
+ <item>1F41B</item>
+ <item>1F41C</item>
+ <item>1F41D</item>
+ <item>1FAB2</item>
+ <item>1F41E</item>
+ <item>1F997</item>
+ <item>1FAB3</item>
+ <item>1F577</item>
+ <item>1F578</item>
+ <item>1F982</item>
+ <item>1F99F</item>
+ <item>1FAB0</item>
+ <item>1FAB1</item>
+ <item>1F9A0</item>
+ <!-- plant-flower -->
+ <item>1F490</item>
+ <item>1F338</item>
+ <item>1F4AE</item>
+ <item>1FAB7</item>
+ <item>1F3F5</item>
+ <item>1F339</item>
+ <item>1F940</item>
+ <item>1F33A</item>
+ <item>1F33B</item>
+ <item>1F33C</item>
+ <item>1F337</item>
+ <!-- plant-other -->
+ <item>1F331</item>
+ <item>1FAB4</item>
+ <item>1F332</item>
+ <item>1F333</item>
+ <item>1F334</item>
+ <item>1F335</item>
+ <item>1F33E</item>
+ <item>1F33F</item>
+ <item>2618,FE0F</item>
+ <item>1F340</item>
+ <item>1F341</item>
+ <item>1F342</item>
+ <item>1F343</item>
+ <item>1FAB9</item>
+ <item>1FABA</item>
</array>
<array
name="emoji_eight_smiley_people"
format="string"
>
- <item>1f600</item>
- <item>1f601</item>
- <item>1f602</item>
- <item>1f603</item>
- <item>1f604</item>
- <item>1f605</item>
- <item>1f606</item>
- <item>1f609</item>
- <item>1f60a</item>
- <item>1f60b</item>
- <item>1f60e</item>
- <item>1f60d</item>
- <item>1f618</item>
- <item>1f617</item>
- <item>1f619</item>
- <item>1f61a</item>
- <item>263a</item>
- <item>1f642</item>
- <item>1f917</item>
- <item>1f607</item>
- <item>1f914</item>
- <item>1f610</item>
- <item>1f611</item>
- <item>1f636</item>
- <item>1f644</item>
- <item>1f60f</item>
- <item>1f623</item>
- <item>1f625</item>
- <item>1f62e</item>
- <item>1f910</item>
- <item>1f62f</item>
- <item>1f62a</item>
- <item>1f62b</item>
- <item>1f634</item>
- <item>1f60c</item>
- <item>1f913</item>
- <item>1f61b</item>
- <item>1f61c</item>
- <item>1f61d</item>
- <!-- Removed for lack of color glyph support. <item>2639</item> -->
- <item>1f641</item>
- <item>1f612</item>
- <item>1f613</item>
- <item>1f614</item>
- <item>1f615</item>
- <item>1f616</item>
- <item>1f643</item>
- <item>1f637</item>
- <item>1f912</item>
- <item>1f915</item>
- <item>1f911</item>
- <item>1f632</item>
- <item>1f61e</item>
- <item>1f61f</item>
- <item>1f624</item>
- <item>1f622</item>
- <item>1f62d</item>
- <item>1f626</item>
- <item>1f627</item>
- <item>1f628</item>
- <item>1f629</item>
- <item>1f62c</item>
- <item>1f630</item>
- <item>1f631</item>
- <item>1f633</item>
- <item>1f635</item>
- <item>1f621</item>
- <item>1f620</item>
- <item>1f608</item>
- <item>1f47f</item>
- <item>1f479</item>
- <item>1f47a</item>
- <item>1f480</item>
- <!-- Removed for lack of color glyph support. <item>2620</item> -->
- <item>1f47b</item>
- <item>1f47d</item>
- <item>1f47e</item>
- <item>1f916</item>
- <item>1f4a9</item>
- <item>1f63a</item>
- <item>1f638</item>
- <item>1f639</item>
- <item>1f63b</item>
- <item>1f63c</item>
- <item>1f63d</item>
- <item>1f640</item>
- <item>1f63f</item>
- <item>1f63e</item>
- <item>1f648</item>
- <item>1f649</item>
- <item>1f64a</item>
- <item>1f466</item>
- <item>1f467</item>
- <item>1f468</item>
- <item>1f469</item>
- <item>1f474</item>
- <item>1f475</item>
- <item>1f476</item>
- <item>1f471</item>
- <item>1f46e</item>
- <item>1f472</item>
- <item>1f473</item>
- <item>1f477</item>
- <!-- Removed for lack of color glyph support. <item>26d1</item> -->
- <item>1f478</item>
- <item>1f482</item>
- <item>1f575</item>
- <item>1f385</item>
- <item>1f47c</item>
- <item>1f46f</item>
- <item>1f486</item>
- <item>1f487</item>
- <item>1f470</item>
- <item>1f64d</item>
- <item>1f64e</item>
- <item>1f645</item>
- <item>1f646</item>
- <item>1f481</item>
- <item>1f64b</item>
- <item>1f647</item>
- <item>1f64c</item>
- <item>1f64f</item>
- <item>1f5e3</item>
- <item>1f464</item>
- <item>1f465</item>
- <item>1f6b6</item>
- <item>1f3c3</item>
- <item>1f483</item>
- <item>1f574</item>
- <item>1f46b</item>
- <item>1f46c</item>
- <item>1f46d</item>
- <item>1f48f</item>
- <item>1f468,200d,2764,fe0f,200d,1f48b,200d,1f468</item>
- <item>1f469,200d,2764,fe0f,200d,1f48b,200d,1f469</item>
- <item>1f491</item>
- <item>1f468,200d,2764,fe0f,200d,1f468</item>
- <item>1f469,200d,2764,fe0f,200d,1f469</item>
- <item>1f46a</item>
- <item>1f468,200d,1f468,200d,1f466</item>
- <item>1f468,200d,1f468,200d,1f466,200d,1f466</item>
- <item>1f468,200d,1f468,200d,1f467</item>
- <item>1f468,200d,1f468,200d,1f467,200d,1f466</item>
- <item>1f468,200d,1f468,200d,1f467,200d,1f467</item>
- <item>1f468,200d,1f469,200d,1f466</item>
- <item>1f468,200d,1f469,200d,1f466,200d,1f466</item>
- <item>1f468,200d,1f469,200d,1f467</item>
- <item>1f468,200d,1f469,200d,1f467,200d,1f466</item>
- <item>1f468,200d,1f469,200d,1f467,200d,1f467</item>
- <item>1f469,200d,1f469,200d,1f466</item>
- <item>1f469,200d,1f469,200d,1f466,200d,1f466</item>
- <item>1f469,200d,1f469,200d,1f467</item>
- <item>1f469,200d,1f469,200d,1f467,200d,1f466</item>
- <item>1f469,200d,1f469,200d,1f467,200d,1f467</item>
- <!-- Removed for lack of color glyph support. <item>1f3fb</item> -->
- <!-- Removed for lack of color glyph support. <item>1f3fc</item> -->
- <!-- Removed for lack of color glyph support. <item>1f3fd</item> -->
- <!-- Removed for lack of color glyph support. <item>1f3fe</item> -->
- <!-- Removed for lack of color glyph support. <item>1f3ff</item> -->
- <item>1f4aa</item>
- <item>1f448</item>
- <item>1f449</item>
- <item>261d</item>
- <item>1f446</item>
- <item>1f595</item>
- <item>1f447</item>
- <item>270c</item>
- <item>1f596</item>
- <item>1f918</item>
- <item>1f590</item>
- <item>270a</item>
- <item>270b</item>
- <item>1f44a</item>
- <item>1f44c</item>
- <item>1f44d</item>
- <item>1f44e</item>
- <item>1f44b</item>
- <item>1f44f</item>
- <item>1f450</item>
- <!-- Removed for lack of color glyph support. <item>270d</item> -->
- <item>1f485</item>
- <item>1f442</item>
- <item>1f443</item>
- <item>1f463</item>
- <item>1f440</item>
- <item>1f441</item>
- <item>1f445</item>
- <item>1f444</item>
- <item>1f48b</item>
- <item>1f498</item>
+ <!-- face-smiling -->
+ <item>1F600</item>
+ <item>1F603</item>
+ <item>1F604</item>
+ <item>1F601</item>
+ <item>1F606</item>
+ <item>1F605</item>
+ <item>1F923</item>
+ <item>1F602</item>
+ <item>1F642</item>
+ <item>1F643</item>
+ <item>1FAE0</item>
+ <item>1F609</item>
+ <item>1F60A</item>
+ <item>1F607</item>
+ <!-- face-affection -->
+ <item>1F970</item>
+ <item>1F60D</item>
+ <item>1F929</item>
+ <item>1F618</item>
+ <item>1F617</item>
+ <item>263A</item>
+ <item>1F61A</item>
+ <item>1F619</item>
+ <item>1F972</item>
+ <!-- face-tongue -->
+ <item>1F60B</item>
+ <item>1F61B</item>
+ <item>1F61C</item>
+ <item>1F92A</item>
+ <item>1F61D</item>
+ <item>1F911</item>
+ <!-- face-hand -->
+ <item>1F917</item>
+ <item>1F92D</item>
+ <item>1FAE2</item>
+ <item>1FAE3</item>
+ <item>1F92B</item>
+ <item>1F914</item>
+ <item>1FAE1</item>
+ <!-- face-neutral-skeptical -->
+ <item>1F910</item>
+ <item>1F928</item>
+ <item>1F610</item>
+ <item>1F611</item>
+ <item>1F636</item>
+ <item>1FAE5</item>
+ <item>1F636,200D,1F32B,FE0F</item>
+ <item>1F60F</item>
+ <item>1F612</item>
+ <item>1F644</item>
+ <item>1F62C</item>
+ <item>1F62E,200D,1F4A8</item>
+ <item>1F925</item>
+ <!-- face-sleepy -->
+ <item>1F60C</item>
+ <item>1F614</item>
+ <item>1F62A</item>
+ <item>1F924</item>
+ <item>1F634</item>
+ <!-- face-unwell -->
+ <item>1F637</item>
+ <item>1F912</item>
+ <item>1F915</item>
+ <item>1F922</item>
+ <item>1F92E</item>
+ <item>1F927</item>
+ <item>1F975</item>
+ <item>1F976</item>
+ <item>1F974</item>
+ <item>1F635</item>
+ <item>1F635,200D,1F4AB</item>
+ <item>1F92F</item>
+ <!-- face-hat -->
+ <item>1F920</item>
+ <item>1F973</item>
+ <item>1F978</item>
+ <!-- face-glasses -->
+ <item>1F60E</item>
+ <item>1F913</item>
+ <item>1F9D0</item>
+ <!-- face-concerned -->
+ <item>1F615</item>
+ <item>1FAE4</item>
+ <item>1F61F</item>
+ <item>1F641</item>
+ <item>2639,FE0F</item>
+ <item>1F62E</item>
+ <item>1F62F</item>
+ <item>1F632</item>
+ <item>1F633</item>
+ <item>1F97A</item>
+ <item>1F979</item>
+ <item>1F626</item>
+ <item>1F627</item>
+ <item>1F628</item>
+ <item>1F630</item>
+ <item>1F625</item>
+ <item>1F622</item>
+ <item>1F62D</item>
+ <item>1F631</item>
+ <item>1F616</item>
+ <item>1F623</item>
+ <item>1F61E</item>
+ <item>1F613</item>
+ <item>1F629</item>
+ <item>1F62B</item>
+ <item>1F971</item>
+ <!-- face-negative -->
+ <item>1F624</item>
+ <item>1F621</item>
+ <item>1F620</item>
+ <item>1F92C</item>
+ <item>1F608</item>
+ <item>1F47F</item>
+ <item>1F480</item>
+ <item>2620,FE0F</item>
+ <!-- face-costume -->
+ <item>1F4A9</item>
+ <item>1F921</item>
+ <item>1F479</item>
+ <item>1F47A</item>
+ <item>1F47B</item>
+ <item>1F47D</item>
+ <item>1F47E</item>
+ <item>1F916</item>
+ <!-- cat-face -->
+ <item>1F63A</item>
+ <item>1F638</item>
+ <item>1F639</item>
+ <item>1F63B</item>
+ <item>1F63C</item>
+ <item>1F63D</item>
+ <item>1F640</item>
+ <item>1F63F</item>
+ <item>1F63E</item>
+ <!-- monkey-face -->
+ <item>1F648</item>
+ <item>1F649</item>
+ <item>1F64A</item>
+ <!-- emotion -->
+ <item>1F48B</item>
+ <item>1F48C</item>
+ <item>1F498</item>
+ <item>1F49D</item>
+ <item>1F496</item>
+ <item>1F497</item>
+ <item>1F493</item>
+ <item>1F49E</item>
+ <item>1F495</item>
+ <item>1F49F</item>
+ <item>2763,FE0F</item>
+ <item>1F494</item>
+ <item>2764,FE0F,200D,1F525</item>
+ <item>2764,FE0F,200D,1FA79</item>
<item>2764</item>
- <item>1f493</item>
- <item>1f494</item>
- <item>1f495</item>
- <item>1f496</item>
- <item>1f497</item>
- <item>1f499</item>
- <item>1f49a</item>
- <item>1f49b</item>
- <item>1f49c</item>
- <item>1f49d</item>
- <item>1f49e</item>
- <item>1f49f</item>
- <!-- Removed for lack of color glyph support. <item>2763</item> -->
- <item>1f48c</item>
- <item>1f4a4</item>
- <item>1f4a2</item>
- <item>1f4a3</item>
- <item>1f4a5</item>
- <item>1f4a6</item>
- <item>1f4a8</item>
- <item>1f4ab</item>
- <item>1f4ac</item>
- <item>1f5e8</item>
- <item>1f5ef</item>
- <item>1f4ad</item>
- <item>1f441,200d,1f5e8</item>
- <item>1f573</item>
- <item>1f453</item>
- <item>1f576</item>
- <item>1f454</item>
- <item>1f455</item>
- <item>1f456</item>
- <item>1f457</item>
- <item>1f458</item>
- <item>1f459</item>
- <item>1f45a</item>
- <item>1f45b</item>
- <item>1f45c</item>
- <item>1f45d</item>
- <item>1f6cd</item>
- <item>1f392</item>
- <item>1f45e</item>
- <item>1f45f</item>
- <item>1f460</item>
- <item>1f461</item>
- <item>1f462</item>
- <item>1f451</item>
- <item>1f452</item>
- <item>1f3a9</item>
- <item>1f393</item>
- <item>1f4ff</item>
- <item>1f484</item>
- <item>1f48d</item>
- <item>1f48e</item>
+ <item>1F9E1</item>
+ <item>1F49B</item>
+ <item>1F49A</item>
+ <item>1F499</item>
+ <item>1F49C</item>
+ <item>1F90E</item>
+ <item>1F5A4</item>
+ <item>1F90D</item>
+ <item>1F4AF</item>
+ <item>1F4A2</item>
+ <item>1F4A5</item>
+ <item>1F4AB</item>
+ <item>1F4A6</item>
+ <item>1F4A8</item>
+ <item>1F573</item>
+ <item>1F4A3</item>
+ <item>1F4AC</item>
+ <item>1F441,FE0F,200D,1F5E8,FE0F</item>
+ <item>1F5E8</item>
+ <item>1F5EF</item>
+ <item>1F4AD</item>
+ <item>1F4A4</item>
+ <!-- hand-fingers-open -->
+ <item>1F44B</item>
+ <item>1F91A</item>
+ <item>1F590</item>
+ <item>270B</item>
+ <item>1F596</item>
+ <item>1FAF1</item>
+ <item>1FAF2</item>
+ <item>1FAF3</item>
+ <item>1FAF4</item>
+ <!-- hand-fingers-partial -->
+ <item>1F44C</item>
+ <item>1F90C</item>
+ <item>1F90F</item>
+ <item>270C</item>
+ <item>1F91E</item>
+ <item>1FAF0</item>
+ <item>1F91F</item>
+ <item>1F918</item>
+ <item>1F919</item>
+ <!-- hand-single-finger -->
+ <item>1F448</item>
+ <item>1F449</item>
+ <item>1F446</item>
+ <item>1F595</item>
+ <item>1F447</item>
+ <item>261D</item>
+ <item>1FAF5</item>
+ <!-- hand-fingers-closed -->
+ <item>1F44D</item>
+ <item>1F44E</item>
+ <item>270A</item>
+ <item>1F44A</item>
+ <item>1F91B</item>
+ <item>1F91C</item>
+ <!-- hands -->
+ <item>1F44F</item>
+ <item>1F64C</item>
+ <item>1FAF6</item>
+ <item>1F450</item>
+ <item>1F932</item>
+ <item>1F91D</item>
+ <item>1F64F</item>
+ <!-- hand-prop -->
+ <item>270D,FE0F</item>
+ <item>1F485</item>
+ <item>1F933</item>
+ <!-- body-parts -->
+ <item>1F4AA</item>
+ <item>1F9BE</item>
+ <item>1F9BF</item>
+ <item>1F9B5</item>
+ <item>1F9B6</item>
+ <item>1F442</item>
+ <item>1F9BB</item>
+ <item>1F443</item>
+ <item>1F9E0</item>
+ <item>1FAC0</item>
+ <item>1FAC1</item>
+ <item>1F9B7</item>
+ <item>1F9B4</item>
+ <item>1F440</item>
+ <item>1F441</item>
+ <item>1F445</item>
+ <item>1F444</item>
+ <item>1FAE6</item>
+ <!-- person -->
+ <item>1F476</item>
+ <item>1F9D2</item>
+ <item>1F466</item>
+ <item>1F467</item>
+ <item>1F9D1</item>
+ <item>1F471</item>
+ <item>1F468</item>
+ <item>1F9D4</item>
+ <item>1F9D4,200D,2642,FE0F</item>
+ <item>1F9D4,200D,2640,FE0F</item>
+ <item>1F468,200D,1F9B0</item>
+ <item>1F468,200D,1F9B1</item>
+ <item>1F468,200D,1F9B3</item>
+ <item>1F468,200D,1F9B2</item>
+ <item>1F469</item>
+ <item>1F469,200D,1F9B0</item>
+ <item>1F9D1,200D,1F9B0</item>
+ <item>1F469,200D,1F9B1</item>
+ <item>1F9D1,200D,1F9B1</item>
+ <item>1F469,200D,1F9B3</item>
+ <item>1F9D1,200D,1F9B3</item>
+ <item>1F469,200D,1F9B2</item>
+ <item>1F9D1,200D,1F9B2</item>
+ <item>1F471,200D,2640,FE0F</item>
+ <item>1F471,200D,2642,FE0F</item>
+ <item>1F9D3</item>
+ <item>1F474</item>
+ <item>1F475</item>
+ <!-- person-gesture -->
+ <item>1F64D</item>
+ <item>1F64D,200D,2642,FE0F</item>
+ <item>1F64D,200D,2640,FE0F</item>
+ <item>1F64E</item>
+ <item>1F64E,200D,2642,FE0F</item>
+ <item>1F64E,200D,2640,FE0F</item>
+ <item>1F645</item>
+ <item>1F645,200D,2642,FE0F</item>
+ <item>1F645,200D,2640,FE0F</item>
+ <item>1F646</item>
+ <item>1F646,200D,2642,FE0F</item>
+ <item>1F646,200D,2640,FE0F</item>
+ <item>1F481</item>
+ <item>1F481,200D,2642,FE0F</item>
+ <item>1F481,200D,2640,FE0F</item>
+ <item>1F64B</item>
+ <item>1F64B,200D,2642,FE0F</item>
+ <item>1F64B,200D,2640,FE0F</item>
+ <item>1F9CF</item>
+ <item>1F9CF,200D,2642,FE0F</item>
+ <item>1F9CF,200D,2640,FE0F</item>
+ <item>1F647</item>
+ <item>1F647,200D,2642,FE0F</item>
+ <item>1F647,200D,2640,FE0F</item>
+ <item>1F926</item>
+ <item>1F926,200D,2642,FE0F</item>
+ <item>1F926,200D,2640,FE0F</item>
+ <item>1F937</item>
+ <item>1F937,200D,2642,FE0F</item>
+ <item>1F937,200D,2640,FE0F</item>
+ <!-- person-role -->
+ <item>1F9D1,200D,2695,FE0F</item>
+ <item>1F468,200D,2695,FE0F</item>
+ <item>1F469,200D,2695,FE0F</item>
+ <item>1F9D1,200D,1F393</item>
+ <item>1F468,200D,1F393</item>
+ <item>1F469,200D,1F393</item>
+ <item>1F9D1,200D,1F3EB</item>
+ <item>1F468,200D,1F3EB</item>
+ <item>1F469,200D,1F3EB</item>
+ <item>1F9D1,200D,2696,FE0F</item>
+ <item>1F468,200D,2696,FE0F</item>
+ <item>1F469,200D,2696,FE0F</item>
+ <item>1F9D1,200D,1F33E</item>
+ <item>1F468,200D,1F33E</item>
+ <item>1F469,200D,1F33E</item>
+ <item>1F9D1,200D,1F373</item>
+ <item>1F468,200D,1F373</item>
+ <item>1F469,200D,1F373</item>
+ <item>1F9D1,200D,1F527</item>
+ <item>1F468,200D,1F527</item>
+ <item>1F469,200D,1F527</item>
+ <item>1F9D1,200D,1F3ED</item>
+ <item>1F468,200D,1F3ED</item>
+ <item>1F469,200D,1F3ED</item>
+ <item>1F9D1,200D,1F4BC</item>
+ <item>1F468,200D,1F4BC</item>
+ <item>1F469,200D,1F4BC</item>
+ <item>1F9D1,200D,1F52C</item>
+ <item>1F468,200D,1F52C</item>
+ <item>1F469,200D,1F52C</item>
+ <item>1F9D1,200D,1F4BB</item>
+ <item>1F468,200D,1F4BB</item>
+ <item>1F469,200D,1F4BB</item>
+ <item>1F9D1,200D,1F3A4</item>
+ <item>1F468,200D,1F3A4</item>
+ <item>1F469,200D,1F3A4</item>
+ <item>1F9D1,200D,1F3A8</item>
+ <item>1F468,200D,1F3A8</item>
+ <item>1F469,200D,1F3A8</item>
+ <item>1F9D1,200D,2708,FE0F</item>
+ <item>1F468,200D,2708,FE0F</item>
+ <item>1F469,200D,2708,FE0F</item>
+ <item>1F9D1,200D,1F680</item>
+ <item>1F468,200D,1F680</item>
+ <item>1F469,200D,1F680</item>
+ <item>1F9D1,200D,1F692</item>
+ <item>1F468,200D,1F692</item>
+ <item>1F469,200D,1F692</item>
+ <item>1F46E</item>
+ <item>1F46E,200D,2642,FE0F</item>
+ <item>1F46E,200D,2640,FE0F</item>
+ <item>1F575</item>
+ <item>1F575,FE0F,200D,2642,FE0F</item>
+ <item>1F575,FE0F,200D,2640,FE0F</item>
+ <item>1F482</item>
+ <item>1F482,200D,2642,FE0F</item>
+ <item>1F482,200D,2640,FE0F</item>
+ <item>1F977</item>
+ <item>1F477</item>
+ <item>1F477,200D,2642,FE0F</item>
+ <item>1F477,200D,2640,FE0F</item>
+ <item>1FAC5</item>
+ <item>1F934</item>
+ <item>1F478</item>
+ <item>1F473</item>
+ <item>1F473,200D,2642,FE0F</item>
+ <item>1F473,200D,2640,FE0F</item>
+ <item>1F472</item>
+ <item>1F9D5</item>
+ <item>1F935</item>
+ <item>1F935,200D,2642,FE0F</item>
+ <item>1F935,200D,2640,FE0F</item>
+ <item>1F470</item>
+ <item>1F470,200D,2642,FE0F</item>
+ <item>1F470,200D,2640,FE0F</item>
+ <item>1F930</item>
+ <item>1FAC3</item>
+ <item>1FAC4</item>
+ <item>1F931</item>
+ <item>1F469,200D,1F37C</item>
+ <item>1F468,200D,1F37C</item>
+ <item>1F9D1,200D,1F37C</item>
+ <!-- person-fantasy -->
+ <item>1F47C</item>
+ <item>1F385</item>
+ <item>1F936</item>
+ <item>1F9D1,200D,1F384</item>
+ <item>1F9B8</item>
+ <item>1F9B8,200D,2642,FE0F</item>
+ <item>1F9B8,200D,2640,FE0F</item>
+ <item>1F9B9</item>
+ <item>1F9B9,200D,2642,FE0F</item>
+ <item>1F9B9,200D,2640,FE0F</item>
+ <item>1F9D9</item>
+ <item>1F9D9,200D,2642,FE0F</item>
+ <item>1F9D9,200D,2640,FE0F</item>
+ <item>1F9DA</item>
+ <item>1F9DA,200D,2642,FE0F</item>
+ <item>1F9DA,200D,2640,FE0F</item>
+ <item>1F9DB</item>
+ <item>1F9DB,200D,2642,FE0F</item>
+ <item>1F9DB,200D,2640,FE0F</item>
+ <item>1F9DC</item>
+ <item>1F9DC,200D,2642,FE0F</item>
+ <item>1F9DC,200D,2640,FE0F</item>
+ <item>1F9DD</item>
+ <item>1F9DD,200D,2642,FE0F</item>
+ <item>1F9DD,200D,2640,FE0F</item>
+ <item>1F9DE</item>
+ <item>1F9DE,200D,2642,FE0F</item>
+ <item>1F9DE,200D,2640,FE0F</item>
+ <item>1F9DF</item>
+ <item>1F9DF,200D,2642,FE0F</item>
+ <item>1F9DF,200D,2640,FE0F</item>
+ <item>1F9CC</item>
+ <!-- person-activity -->
+ <item>1F486</item>
+ <item>1F486,200D,2642,FE0F</item>
+ <item>1F486,200D,2640,FE0F</item>
+ <item>1F487</item>
+ <item>1F487,200D,2642,FE0F</item>
+ <item>1F487,200D,2640,FE0F</item>
+ <item>1F6B6</item>
+ <item>1F6B6,200D,2642,FE0F</item>
+ <item>1F6B6,200D,2640,FE0F</item>
+ <item>1F9CD</item>
+ <item>1F9CD,200D,2642,FE0F</item>
+ <item>1F9CD,200D,2640,FE0F</item>
+ <item>1F9CE</item>
+ <item>1F9CE,200D,2642,FE0F</item>
+ <item>1F9CE,200D,2640,FE0F</item>
+ <item>1F9D1,200D,1F9AF</item>
+ <item>1F468,200D,1F9AF</item>
+ <item>1F469,200D,1F9AF</item>
+ <item>1F9D1,200D,1F9BC</item>
+ <item>1F468,200D,1F9BC</item>
+ <item>1F469,200D,1F9BC</item>
+ <item>1F9D1,200D,1F9BD</item>
+ <item>1F468,200D,1F9BD</item>
+ <item>1F469,200D,1F9BD</item>
+ <item>1F3C3</item>
+ <item>1F3C3,200D,2642,FE0F</item>
+ <item>1F3C3,200D,2640,FE0F</item>
+ <item>1F483</item>
+ <item>1F57A</item>
+ <item>1F574</item>
+ <item>1F46F</item>
+ <item>1F46F,200D,2642,FE0F</item>
+ <item>1F46F,200D,2640,FE0F</item>
+ <item>1F9D6</item>
+ <item>1F9D6,200D,2642,FE0F</item>
+ <item>1F9D6,200D,2640,FE0F</item>
+ <item>1F9D7</item>
+ <item>1F9D7,200D,2642,FE0F</item>
+ <item>1F9D7,200D,2640,FE0F</item>
+ <!-- person-sport -->
+ <item>1F93A</item>
+ <item>1F3C7</item>
+ <item>26F7,FE0F</item>
+ <item>1F3C2</item>
+ <item>1F3CC</item>
+ <item>1F3CC,FE0F,200D,2642,FE0F</item>
+ <item>1F3CC,FE0F,200D,2640,FE0F</item>
+ <item>1F3C4</item>
+ <item>1F3C4,200D,2642,FE0F</item>
+ <item>1F3C4,200D,2640,FE0F</item>
+ <item>1F6A3</item>
+ <item>1F6A3,200D,2642,FE0F</item>
+ <item>1F6A3,200D,2640,FE0F</item>
+ <item>1F3CA</item>
+ <item>1F3CA,200D,2642,FE0F</item>
+ <item>1F3CA,200D,2640,FE0F</item>
+ <item>26F9,FE0F</item>
+ <item>26F9,FE0F,200D,2642,FE0F</item>
+ <item>26F9,FE0F,200D,2640,FE0F</item>
+ <item>1F3CB</item>
+ <item>1F3CB,FE0F,200D,2642,FE0F</item>
+ <item>1F3CB,FE0F,200D,2640,FE0F</item>
+ <item>1F6B4</item>
+ <item>1F6B4,200D,2642,FE0F</item>
+ <item>1F6B4,200D,2640,FE0F</item>
+ <item>1F6B5</item>
+ <item>1F6B5,200D,2642,FE0F</item>
+ <item>1F6B5,200D,2640,FE0F</item>
+ <item>1F938</item>
+ <item>1F938,200D,2642,FE0F</item>
+ <item>1F938,200D,2640,FE0F</item>
+ <item>1F93C</item>
+ <item>1F93C,200D,2642,FE0F</item>
+ <item>1F93C,200D,2640,FE0F</item>
+ <item>1F93D</item>
+ <item>1F93D,200D,2642,FE0F</item>
+ <item>1F93D,200D,2640,FE0F</item>
+ <item>1F93E</item>
+ <item>1F93E,200D,2642,FE0F</item>
+ <item>1F93E,200D,2640,FE0F</item>
+ <item>1F939</item>
+ <item>1F939,200D,2642,FE0F</item>
+ <item>1F939,200D,2640,FE0F</item>
+ <!-- person-resting -->
+ <item>1F9D8</item>
+ <item>1F9D8,200D,2642,FE0F</item>
+ <item>1F9D8,200D,2640,FE0F</item>
+ <item>1F6C0</item>
+ <item>1F6CC</item>
+ <!-- family -->
+ <item>1F9D1,200D,1F91D,200D,1F9D1</item>
+ <item>1F46D</item>
+ <item>1F46B</item>
+ <item>1F46C</item>
+ <item>1F48F</item>
+ <item>1F469,200D,2764,FE0F,200D,1F48B,200D,1F468</item>
+ <item>1F468,200D,2764,FE0F,200D,1F48B,200D,1F468</item>
+ <item>1F469,200D,2764,FE0F,200D,1F48B,200D,1F469</item>
+ <item>1F491</item>
+ <item>1F469,200D,2764,FE0F,200D,1F468</item>
+ <item>1F468,200D,2764,FE0F,200D,1F468</item>
+ <item>1F469,200D,2764,FE0F,200D,1F469</item>
+ <item>1F46A</item>
+ <item>1F468,200D,1F469,200D,1F466</item>
+ <item>1F468,200D,1F469,200D,1F467</item>
+ <item>1F468,200D,1F469,200D,1F467,200D,1F466</item>
+ <item>1F468,200D,1F469,200D,1F466,200D,1F466</item>
+ <item>1F468,200D,1F469,200D,1F467,200D,1F467</item>
+ <item>1F468,200D,1F468,200D,1F466</item>
+ <item>1F468,200D,1F468,200D,1F467</item>
+ <item>1F468,200D,1F468,200D,1F467,200D,1F466</item>
+ <item>1F468,200D,1F468,200D,1F466,200D,1F466</item>
+ <item>1F468,200D,1F468,200D,1F467,200D,1F467</item>
+ <item>1F469,200D,1F469,200D,1F466</item>
+ <item>1F469,200D,1F469,200D,1F467</item>
+ <item>1F469,200D,1F469,200D,1F467,200D,1F466</item>
+ <item>1F469,200D,1F469,200D,1F466,200D,1F466</item>
+ <item>1F469,200D,1F469,200D,1F467,200D,1F467</item>
+ <item>1F468,200D,1F466</item>
+ <item>1F468,200D,1F466,200D,1F466</item>
+ <item>1F468,200D,1F467</item>
+ <item>1F468,200D,1F467,200D,1F466</item>
+ <item>1F468,200D,1F467,200D,1F467</item>
+ <item>1F469,200D,1F466</item>
+ <item>1F469,200D,1F466,200D,1F466</item>
+ <item>1F469,200D,1F467</item>
+ <item>1F469,200D,1F467,200D,1F466</item>
+ <item>1F469,200D,1F467,200D,1F467</item>
+ <!-- person-symbol -->
+ <item>1F5E3</item>
+ <item>1F464</item>
+ <item>1F465</item>
+ <item>1FAC2</item>
+ <item>1F463</item>
+ <!-- hair-style -->
+ <item>1F9B0</item>
+ <item>1F9B1</item>
+ <item>1F9B3</item>
+ <item>1F9B2</item>
</array>
<array
name="emoji_eight_smiley_people_boring"
format="string"
>
- <item>1f600</item>
- <item>1f601</item>
- <item>1f602</item>
- <item>1f603</item>
- <item>1f604</item>
- <item>1f605</item>
- <item>1f606</item>
- <item>1f609</item>
- <item>1f60a</item>
- <item>1f60b</item>
- <item>1f60e</item>
- <item>1f60d</item>
- <item>1f618</item>
- <item>1f617</item>
- <item>1f619</item>
- <item>1f61a</item>
- <item>263a</item>
- <item>1f642</item>
- <item>1f917</item>
- <item>1f607</item>
- <item>1f914</item>
- <item>1f610</item>
- <item>1f611</item>
- <item>1f636</item>
- <item>1f644</item>
- <item>1f60f</item>
- <item>1f623</item>
- <item>1f625</item>
- <item>1f62e</item>
- <item>1f910</item>
- <item>1f62f</item>
- <item>1f62a</item>
- <item>1f62b</item>
- <item>1f634</item>
- <item>1f60c</item>
- <item>1f913</item>
- <item>1f61b</item>
- <item>1f61c</item>
- <item>1f61d</item>
- <!-- Removed for lack of color glyph support. <item>2639</item> -->
- <item>1f641</item>
- <item>1f612</item>
- <item>1f613</item>
- <item>1f614</item>
- <item>1f615</item>
- <item>1f616</item>
- <item>1f643</item>
- <item>1f637</item>
- <item>1f912</item>
- <item>1f915</item>
- <item>1f911</item>
- <item>1f632</item>
- <item>1f61e</item>
- <item>1f61f</item>
- <item>1f624</item>
- <item>1f622</item>
- <item>1f62d</item>
- <item>1f626</item>
- <item>1f627</item>
- <item>1f628</item>
- <item>1f629</item>
- <item>1f62c</item>
- <item>1f630</item>
- <item>1f631</item>
- <item>1f633</item>
- <item>1f635</item>
- <item>1f621</item>
- <item>1f620</item>
- <item>1f608</item>
- <item>1f47f</item>
- <item>1f479</item>
- <item>1f47a</item>
- <item>1f480</item>
- <!-- Removed for lack of color glyph support. <item>2620</item> -->
- <item>1f47b</item>
- <item>1f47d</item>
- <item>1f47e</item>
- <item>1f916</item>
- <item>1f4a9</item>
- <item>1f63a</item>
- <item>1f638</item>
- <item>1f639</item>
- <item>1f63b</item>
- <item>1f63c</item>
- <item>1f63d</item>
- <item>1f640</item>
- <item>1f63f</item>
- <item>1f63e</item>
- <item>1f648</item>
- <item>1f649</item>
- <item>1f64a</item>
- <item>1f466</item>
- <item>1f467</item>
- <item>1f468</item>
- <item>1f469</item>
- <item>1f474</item>
- <item>1f475</item>
- <item>1f476</item>
- <item>1f471</item>
- <item>1f46e</item>
- <item>1f472</item>
- <item>1f473</item>
- <item>1f477</item>
- <!-- Removed for lack of color glyph support. <item>26d1</item> -->
- <item>1f478</item>
- <item>1f482</item>
- <item>1f575</item>
- <item>1f385</item>
- <item>1f47c</item>
- <item>1f46f</item>
- <item>1f486</item>
- <item>1f487</item>
- <item>1f470</item>
- <item>1f64d</item>
- <item>1f64e</item>
- <item>1f645</item>
- <item>1f646</item>
- <item>1f481</item>
- <item>1f64b</item>
- <item>1f647</item>
- <item>1f64c</item>
- <item>1f64f</item>
- <item>1f5e3</item>
- <item>1f464</item>
- <item>1f465</item>
- <item>1f6b6</item>
- <item>1f3c3</item>
- <item>1f483</item>
- <item>1f574</item>
- <item>1f46b</item>
- <item>1f46c</item>
- <item>1f46d</item>
- <item>1f48f</item>
- <item>1f491</item>
- <item>1f46a</item>
- <!-- Removed for lack of color glyph support. <item>1f3fb</item> -->
- <!-- Removed for lack of color glyph support. <item>1f3fc</item> -->
- <!-- Removed for lack of color glyph support. <item>1f3fd</item> -->
- <!-- Removed for lack of color glyph support. <item>1f3fe</item> -->
- <!-- Removed for lack of color glyph support. <item>1f3ff</item> -->
- <item>1f4aa</item>
- <item>1f448</item>
- <item>1f449</item>
- <item>261d</item>
- <item>1f446</item>
- <item>1f595</item>
- <item>1f447</item>
- <item>270c</item>
- <item>1f596</item>
- <item>1f918</item>
- <item>1f590</item>
- <item>270a</item>
- <item>270b</item>
- <item>1f44a</item>
- <item>1f44c</item>
- <item>1f44d</item>
- <item>1f44e</item>
- <item>1f44b</item>
- <item>1f44f</item>
- <item>1f450</item>
- <!-- Removed for lack of color glyph support. <item>270d</item> -->
- <item>1f485</item>
- <item>1f442</item>
- <item>1f443</item>
- <item>1f463</item>
- <item>1f440</item>
- <item>1f441</item>
- <item>1f445</item>
- <item>1f444</item>
- <item>1f48b</item>
- <item>1f498</item>
+ <!-- face-smiling -->
+ <item>1F600</item>
+ <item>1F603</item>
+ <item>1F604</item>
+ <item>1F601</item>
+ <item>1F606</item>
+ <item>1F605</item>
+ <item>1F923</item>
+ <item>1F602</item>
+ <item>1F642</item>
+ <item>1F643</item>
+ <item>1F609</item>
+ <item>1F60A</item>
+ <item>1F607</item>
+ <!-- face-affection -->
+ <item>1F970</item>
+ <item>1F60D</item>
+ <item>1F929</item>
+ <item>1F618</item>
+ <item>1F617</item>
+ <item>263A</item>
+ <item>1F61A</item>
+ <item>1F619</item>
+ <item>1F972</item>
+ <!-- face-tongue -->
+ <item>1F60B</item>
+ <item>1F61B</item>
+ <item>1F61C</item>
+ <item>1F92A</item>
+ <item>1F61D</item>
+ <item>1F911</item>
+ <!-- face-hand -->
+ <item>1F917</item>
+ <item>1F92D</item>
+ <item>1F92B</item>
+ <item>1F914</item>
+ <!-- face-neutral-skeptical -->
+ <item>1F910</item>
+ <item>1F928</item>
+ <item>1F610</item>
+ <item>1F611</item>
+ <item>1F636</item>
+ <item>1F60F</item>
+ <item>1F612</item>
+ <item>1F644</item>
+ <item>1F62C</item>
+ <item>1F925</item>
+ <!-- face-sleepy -->
+ <item>1F60C</item>
+ <item>1F614</item>
+ <item>1F62A</item>
+ <item>1F924</item>
+ <item>1F634</item>
+ <!-- face-unwell -->
+ <item>1F637</item>
+ <item>1F912</item>
+ <item>1F915</item>
+ <item>1F922</item>
+ <item>1F92E</item>
+ <item>1F927</item>
+ <item>1F975</item>
+ <item>1F976</item>
+ <item>1F974</item>
+ <item>1F635</item>
+ <item>1F92F</item>
+ <!-- face-hat -->
+ <item>1F920</item>
+ <item>1F973</item>
+ <item>1F978</item>
+ <!-- face-glasses -->
+ <item>1F60E</item>
+ <item>1F913</item>
+ <item>1F9D0</item>
+ <!-- face-concerned -->
+ <item>1F615</item>
+ <item>1F61F</item>
+ <item>1F641</item>
+ <item>2639,FE0F</item>
+ <item>1F62E</item>
+ <item>1F62F</item>
+ <item>1F632</item>
+ <item>1F633</item>
+ <item>1F97A</item>
+ <item>1F626</item>
+ <item>1F627</item>
+ <item>1F628</item>
+ <item>1F630</item>
+ <item>1F625</item>
+ <item>1F622</item>
+ <item>1F62D</item>
+ <item>1F631</item>
+ <item>1F616</item>
+ <item>1F623</item>
+ <item>1F61E</item>
+ <item>1F613</item>
+ <item>1F629</item>
+ <item>1F62B</item>
+ <item>1F971</item>
+ <!-- face-negative -->
+ <item>1F624</item>
+ <item>1F621</item>
+ <item>1F620</item>
+ <item>1F92C</item>
+ <item>1F608</item>
+ <item>1F47F</item>
+ <item>1F480</item>
+ <item>2620,FE0F</item>
+ <!-- face-costume -->
+ <item>1F4A9</item>
+ <item>1F921</item>
+ <item>1F479</item>
+ <item>1F47A</item>
+ <item>1F47B</item>
+ <item>1F47D</item>
+ <item>1F47E</item>
+ <item>1F916</item>
+ <!-- cat-face -->
+ <item>1F63A</item>
+ <item>1F638</item>
+ <item>1F639</item>
+ <item>1F63B</item>
+ <item>1F63C</item>
+ <item>1F63D</item>
+ <item>1F640</item>
+ <item>1F63F</item>
+ <item>1F63E</item>
+ <!-- monkey-face -->
+ <item>1F648</item>
+ <item>1F649</item>
+ <item>1F64A</item>
+ <!-- emotion -->
+ <item>1F48B</item>
+ <item>1F48C</item>
+ <item>1F498</item>
+ <item>1F49D</item>
+ <item>1F496</item>
+ <item>1F497</item>
+ <item>1F493</item>
+ <item>1F49E</item>
+ <item>1F495</item>
+ <item>1F49F</item>
+ <item>2763,FE0F</item>
+ <item>1F494</item>
<item>2764</item>
- <item>1f493</item>
- <item>1f494</item>
- <item>1f495</item>
- <item>1f496</item>
- <item>1f497</item>
- <item>1f499</item>
- <item>1f49a</item>
- <item>1f49b</item>
- <item>1f49c</item>
- <item>1f49d</item>
- <item>1f49e</item>
- <item>1f49f</item>
- <!-- Removed for lack of color glyph support. <item>2763</item> -->
- <item>1f48c</item>
- <item>1f4a4</item>
- <item>1f4a2</item>
- <item>1f4a3</item>
- <item>1f4a5</item>
- <item>1f4a6</item>
- <item>1f4a8</item>
- <item>1f4ab</item>
- <item>1f4ac</item>
- <item>1f5e8</item>
- <item>1f5ef</item>
- <item>1f4ad</item>
- <item>1f573</item>
- <item>1f453</item>
- <item>1f576</item>
- <item>1f454</item>
- <item>1f455</item>
- <item>1f456</item>
- <item>1f457</item>
- <item>1f458</item>
- <item>1f459</item>
- <item>1f45a</item>
- <item>1f45b</item>
- <item>1f45c</item>
- <item>1f45d</item>
- <item>1f6cd</item>
- <item>1f392</item>
- <item>1f45e</item>
- <item>1f45f</item>
- <item>1f460</item>
- <item>1f461</item>
- <item>1f462</item>
- <item>1f451</item>
- <item>1f452</item>
- <item>1f3a9</item>
- <item>1f393</item>
- <item>1f4ff</item>
- <item>1f484</item>
- <item>1f48d</item>
- <item>1f48e</item>
+ <item>1F9E1</item>
+ <item>1F49B</item>
+ <item>1F49A</item>
+ <item>1F499</item>
+ <item>1F49C</item>
+ <item>1F90E</item>
+ <item>1F5A4</item>
+ <item>1F90D</item>
+ <item>1F4AF</item>
+ <item>1F4A2</item>
+ <item>1F4A5</item>
+ <item>1F4AB</item>
+ <item>1F4A6</item>
+ <item>1F4A8</item>
+ <item>1F573</item>
+ <item>1F4A3</item>
+ <item>1F4AC</item>
+ <item>1F441,FE0F,200D,1F5E8,FE0F</item>
+ <item>1F5E8</item>
+ <item>1F5EF</item>
+ <item>1F4AD</item>
+ <item>1F4A4</item>
+ <!-- hand-fingers-open -->
+ <item>1F44B</item>
+ <item>1F91A</item>
+ <item>1F590</item>
+ <item>270B</item>
+ <item>1F596</item>
+ <!-- hand-fingers-partial -->
+ <item>1F44C</item>
+ <item>1F90C</item>
+ <item>1F90F</item>
+ <item>270C</item>
+ <item>1F91E</item>
+ <item>1F91F</item>
+ <item>1F918</item>
+ <item>1F919</item>
+ <!-- hand-single-finger -->
+ <item>1F448</item>
+ <item>1F449</item>
+ <item>1F446</item>
+ <item>1F595</item>
+ <item>1F447</item>
+ <item>261D</item>
+ <!-- hand-fingers-closed -->
+ <item>1F44D</item>
+ <item>1F44E</item>
+ <item>270A</item>
+ <item>1F44A</item>
+ <item>1F91B</item>
+ <item>1F91C</item>
+ <!-- hands -->
+ <item>1F44F</item>
+ <item>1F64C</item>
+ <item>1F450</item>
+ <item>1F932</item>
+ <item>1F91D</item>
+ <item>1F64F</item>
+ <!-- hand-prop -->
+ <item>270D,FE0F</item>
+ <item>1F485</item>
+ <item>1F933</item>
+ <!-- body-parts -->
+ <item>1F4AA</item>
+ <item>1F9BE</item>
+ <item>1F9BF</item>
+ <item>1F9B5</item>
+ <item>1F9B6</item>
+ <item>1F442</item>
+ <item>1F9BB</item>
+ <item>1F443</item>
+ <item>1F9E0</item>
+ <item>1FAC0</item>
+ <item>1FAC1</item>
+ <item>1F9B7</item>
+ <item>1F9B4</item>
+ <item>1F440</item>
+ <item>1F441</item>
+ <item>1F445</item>
+ <item>1F444</item>
+ <!-- person -->
+ <item>1F476</item>
+ <item>1F9D2</item>
+ <item>1F466</item>
+ <item>1F467</item>
+ <item>1F9D1</item>
+ <item>1F471</item>
+ <item>1F468</item>
+ <item>1F9D4</item>
+ <item>1F468,200D,1F9B0</item>
+ <item>1F468,200D,1F9B1</item>
+ <item>1F468,200D,1F9B3</item>
+ <item>1F468,200D,1F9B2</item>
+ <item>1F469</item>
+ <item>1F469,200D,1F9B0</item>
+ <item>1F9D1,200D,1F9B0</item>
+ <item>1F469,200D,1F9B1</item>
+ <item>1F9D1,200D,1F9B1</item>
+ <item>1F469,200D,1F9B3</item>
+ <item>1F9D1,200D,1F9B3</item>
+ <item>1F469,200D,1F9B2</item>
+ <item>1F9D1,200D,1F9B2</item>
+ <item>1F471,200D,2640,FE0F</item>
+ <item>1F471,200D,2642,FE0F</item>
+ <item>1F9D3</item>
+ <item>1F474</item>
+ <item>1F475</item>
+ <!-- person-gesture -->
+ <item>1F64D</item>
+ <item>1F64D,200D,2642,FE0F</item>
+ <item>1F64D,200D,2640,FE0F</item>
+ <item>1F64E</item>
+ <item>1F64E,200D,2642,FE0F</item>
+ <item>1F64E,200D,2640,FE0F</item>
+ <item>1F645</item>
+ <item>1F645,200D,2642,FE0F</item>
+ <item>1F645,200D,2640,FE0F</item>
+ <item>1F646</item>
+ <item>1F646,200D,2642,FE0F</item>
+ <item>1F646,200D,2640,FE0F</item>
+ <item>1F481</item>
+ <item>1F481,200D,2642,FE0F</item>
+ <item>1F481,200D,2640,FE0F</item>
+ <item>1F64B</item>
+ <item>1F64B,200D,2642,FE0F</item>
+ <item>1F64B,200D,2640,FE0F</item>
+ <item>1F9CF</item>
+ <item>1F9CF,200D,2642,FE0F</item>
+ <item>1F9CF,200D,2640,FE0F</item>
+ <item>1F647</item>
+ <item>1F647,200D,2642,FE0F</item>
+ <item>1F647,200D,2640,FE0F</item>
+ <item>1F926</item>
+ <item>1F926,200D,2642,FE0F</item>
+ <item>1F926,200D,2640,FE0F</item>
+ <item>1F937</item>
+ <item>1F937,200D,2642,FE0F</item>
+ <item>1F937,200D,2640,FE0F</item>
+ <!-- person-role -->
+ <item>1F9D1,200D,2695,FE0F</item>
+ <item>1F468,200D,2695,FE0F</item>
+ <item>1F469,200D,2695,FE0F</item>
+ <item>1F9D1,200D,1F393</item>
+ <item>1F468,200D,1F393</item>
+ <item>1F469,200D,1F393</item>
+ <item>1F9D1,200D,1F3EB</item>
+ <item>1F468,200D,1F3EB</item>
+ <item>1F469,200D,1F3EB</item>
+ <item>1F9D1,200D,2696,FE0F</item>
+ <item>1F468,200D,2696,FE0F</item>
+ <item>1F469,200D,2696,FE0F</item>
+ <item>1F9D1,200D,1F33E</item>
+ <item>1F468,200D,1F33E</item>
+ <item>1F469,200D,1F33E</item>
+ <item>1F9D1,200D,1F373</item>
+ <item>1F468,200D,1F373</item>
+ <item>1F469,200D,1F373</item>
+ <item>1F9D1,200D,1F527</item>
+ <item>1F468,200D,1F527</item>
+ <item>1F469,200D,1F527</item>
+ <item>1F9D1,200D,1F3ED</item>
+ <item>1F468,200D,1F3ED</item>
+ <item>1F469,200D,1F3ED</item>
+ <item>1F9D1,200D,1F4BC</item>
+ <item>1F468,200D,1F4BC</item>
+ <item>1F469,200D,1F4BC</item>
+ <item>1F9D1,200D,1F52C</item>
+ <item>1F468,200D,1F52C</item>
+ <item>1F469,200D,1F52C</item>
+ <item>1F9D1,200D,1F4BB</item>
+ <item>1F468,200D,1F4BB</item>
+ <item>1F469,200D,1F4BB</item>
+ <item>1F9D1,200D,1F3A4</item>
+ <item>1F468,200D,1F3A4</item>
+ <item>1F469,200D,1F3A4</item>
+ <item>1F9D1,200D,1F3A8</item>
+ <item>1F468,200D,1F3A8</item>
+ <item>1F469,200D,1F3A8</item>
+ <item>1F9D1,200D,2708,FE0F</item>
+ <item>1F468,200D,2708,FE0F</item>
+ <item>1F469,200D,2708,FE0F</item>
+ <item>1F9D1,200D,1F680</item>
+ <item>1F468,200D,1F680</item>
+ <item>1F469,200D,1F680</item>
+ <item>1F9D1,200D,1F692</item>
+ <item>1F468,200D,1F692</item>
+ <item>1F469,200D,1F692</item>
+ <item>1F46E</item>
+ <item>1F46E,200D,2642,FE0F</item>
+ <item>1F46E,200D,2640,FE0F</item>
+ <item>1F575</item>
+ <item>1F575,FE0F,200D,2642,FE0F</item>
+ <item>1F575,FE0F,200D,2640,FE0F</item>
+ <item>1F482</item>
+ <item>1F482,200D,2642,FE0F</item>
+ <item>1F482,200D,2640,FE0F</item>
+ <item>1F977</item>
+ <item>1F477</item>
+ <item>1F477,200D,2642,FE0F</item>
+ <item>1F477,200D,2640,FE0F</item>
+ <item>1F934</item>
+ <item>1F478</item>
+ <item>1F473</item>
+ <item>1F473,200D,2642,FE0F</item>
+ <item>1F473,200D,2640,FE0F</item>
+ <item>1F472</item>
+ <item>1F9D5</item>
+ <item>1F935</item>
+ <item>1F935,200D,2642,FE0F</item>
+ <item>1F935,200D,2640,FE0F</item>
+ <item>1F470</item>
+ <item>1F470,200D,2642,FE0F</item>
+ <item>1F470,200D,2640,FE0F</item>
+ <item>1F930</item>
+ <item>1F931</item>
+ <item>1F469,200D,1F37C</item>
+ <item>1F468,200D,1F37C</item>
+ <item>1F9D1,200D,1F37C</item>
+ <!-- person-fantasy -->
+ <item>1F47C</item>
+ <item>1F385</item>
+ <item>1F936</item>
+ <item>1F9D1,200D,1F384</item>
+ <item>1F9B8</item>
+ <item>1F9B8,200D,2642,FE0F</item>
+ <item>1F9B8,200D,2640,FE0F</item>
+ <item>1F9B9</item>
+ <item>1F9B9,200D,2642,FE0F</item>
+ <item>1F9B9,200D,2640,FE0F</item>
+ <item>1F9D9</item>
+ <item>1F9D9,200D,2642,FE0F</item>
+ <item>1F9D9,200D,2640,FE0F</item>
+ <item>1F9DA</item>
+ <item>1F9DA,200D,2642,FE0F</item>
+ <item>1F9DA,200D,2640,FE0F</item>
+ <item>1F9DB</item>
+ <item>1F9DB,200D,2642,FE0F</item>
+ <item>1F9DB,200D,2640,FE0F</item>
+ <item>1F9DC</item>
+ <item>1F9DC,200D,2642,FE0F</item>
+ <item>1F9DC,200D,2640,FE0F</item>
+ <item>1F9DD</item>
+ <item>1F9DD,200D,2642,FE0F</item>
+ <item>1F9DD,200D,2640,FE0F</item>
+ <item>1F9DE</item>
+ <item>1F9DE,200D,2642,FE0F</item>
+ <item>1F9DE,200D,2640,FE0F</item>
+ <item>1F9DF</item>
+ <item>1F9DF,200D,2642,FE0F</item>
+ <item>1F9DF,200D,2640,FE0F</item>
+ <!-- person-activity -->
+ <item>1F486</item>
+ <item>1F486,200D,2642,FE0F</item>
+ <item>1F486,200D,2640,FE0F</item>
+ <item>1F487</item>
+ <item>1F487,200D,2642,FE0F</item>
+ <item>1F487,200D,2640,FE0F</item>
+ <item>1F6B6</item>
+ <item>1F6B6,200D,2642,FE0F</item>
+ <item>1F6B6,200D,2640,FE0F</item>
+ <item>1F9CD</item>
+ <item>1F9CD,200D,2642,FE0F</item>
+ <item>1F9CD,200D,2640,FE0F</item>
+ <item>1F9CE</item>
+ <item>1F9CE,200D,2642,FE0F</item>
+ <item>1F9CE,200D,2640,FE0F</item>
+ <item>1F9D1,200D,1F9AF</item>
+ <item>1F468,200D,1F9AF</item>
+ <item>1F469,200D,1F9AF</item>
+ <item>1F9D1,200D,1F9BC</item>
+ <item>1F468,200D,1F9BC</item>
+ <item>1F469,200D,1F9BC</item>
+ <item>1F9D1,200D,1F9BD</item>
+ <item>1F468,200D,1F9BD</item>
+ <item>1F469,200D,1F9BD</item>
+ <item>1F3C3</item>
+ <item>1F3C3,200D,2642,FE0F</item>
+ <item>1F3C3,200D,2640,FE0F</item>
+ <item>1F483</item>
+ <item>1F57A</item>
+ <item>1F574</item>
+ <item>1F46F</item>
+ <item>1F46F,200D,2642,FE0F</item>
+ <item>1F46F,200D,2640,FE0F</item>
+ <item>1F9D6</item>
+ <item>1F9D6,200D,2642,FE0F</item>
+ <item>1F9D6,200D,2640,FE0F</item>
+ <item>1F9D7</item>
+ <item>1F9D7,200D,2642,FE0F</item>
+ <item>1F9D7,200D,2640,FE0F</item>
+ <!-- person-sport -->
+ <item>1F93A</item>
+ <item>1F3C7</item>
+ <item>26F7,FE0F</item>
+ <item>1F3C2</item>
+ <item>1F3CC</item>
+ <item>1F3CC,FE0F,200D,2642,FE0F</item>
+ <item>1F3CC,FE0F,200D,2640,FE0F</item>
+ <item>1F3C4</item>
+ <item>1F3C4,200D,2642,FE0F</item>
+ <item>1F3C4,200D,2640,FE0F</item>
+ <item>1F6A3</item>
+ <item>1F6A3,200D,2642,FE0F</item>
+ <item>1F6A3,200D,2640,FE0F</item>
+ <item>1F3CA</item>
+ <item>1F3CA,200D,2642,FE0F</item>
+ <item>1F3CA,200D,2640,FE0F</item>
+ <item>26F9,FE0F</item>
+ <item>26F9,FE0F,200D,2642,FE0F</item>
+ <item>26F9,FE0F,200D,2640,FE0F</item>
+ <item>1F3CB</item>
+ <item>1F3CB,FE0F,200D,2642,FE0F</item>
+ <item>1F3CB,FE0F,200D,2640,FE0F</item>
+ <item>1F6B4</item>
+ <item>1F6B4,200D,2642,FE0F</item>
+ <item>1F6B4,200D,2640,FE0F</item>
+ <item>1F6B5</item>
+ <item>1F6B5,200D,2642,FE0F</item>
+ <item>1F6B5,200D,2640,FE0F</item>
+ <item>1F938</item>
+ <item>1F938,200D,2642,FE0F</item>
+ <item>1F938,200D,2640,FE0F</item>
+ <item>1F93C</item>
+ <item>1F93C,200D,2642,FE0F</item>
+ <item>1F93C,200D,2640,FE0F</item>
+ <item>1F93D</item>
+ <item>1F93D,200D,2642,FE0F</item>
+ <item>1F93D,200D,2640,FE0F</item>
+ <item>1F93E</item>
+ <item>1F93E,200D,2642,FE0F</item>
+ <item>1F93E,200D,2640,FE0F</item>
+ <item>1F939</item>
+ <item>1F939,200D,2642,FE0F</item>
+ <item>1F939,200D,2640,FE0F</item>
+ <!-- person-resting -->
+ <item>1F9D8</item>
+ <item>1F9D8,200D,2642,FE0F</item>
+ <item>1F9D8,200D,2640,FE0F</item>
+ <item>1F6C0</item>
+ <item>1F6CC</item>
+ <!-- family -->
+ <item>1F9D1,200D,1F91D,200D,1F9D1</item>
+ <item>1F46D</item>
+ <item>1F46B</item>
+ <item>1F46C</item>
+ <item>1F48F</item>
+ <item>1F469,200D,2764,FE0F,200D,1F48B,200D,1F468</item>
+ <item>1F468,200D,2764,FE0F,200D,1F48B,200D,1F468</item>
+ <item>1F469,200D,2764,FE0F,200D,1F48B,200D,1F469</item>
+ <item>1F491</item>
+ <item>1F469,200D,2764,FE0F,200D,1F468</item>
+ <item>1F468,200D,2764,FE0F,200D,1F468</item>
+ <item>1F469,200D,2764,FE0F,200D,1F469</item>
+ <item>1F46A</item>
+ <item>1F468,200D,1F469,200D,1F466</item>
+ <item>1F468,200D,1F469,200D,1F467</item>
+ <item>1F468,200D,1F469,200D,1F467,200D,1F466</item>
+ <item>1F468,200D,1F469,200D,1F466,200D,1F466</item>
+ <item>1F468,200D,1F469,200D,1F467,200D,1F467</item>
+ <item>1F468,200D,1F468,200D,1F466</item>
+ <item>1F468,200D,1F468,200D,1F467</item>
+ <item>1F468,200D,1F468,200D,1F467,200D,1F466</item>
+ <item>1F468,200D,1F468,200D,1F466,200D,1F466</item>
+ <item>1F468,200D,1F468,200D,1F467,200D,1F467</item>
+ <item>1F469,200D,1F469,200D,1F466</item>
+ <item>1F469,200D,1F469,200D,1F467</item>
+ <item>1F469,200D,1F469,200D,1F467,200D,1F466</item>
+ <item>1F469,200D,1F469,200D,1F466,200D,1F466</item>
+ <item>1F469,200D,1F469,200D,1F467,200D,1F467</item>
+ <item>1F468,200D,1F466</item>
+ <item>1F468,200D,1F466,200D,1F466</item>
+ <item>1F468,200D,1F467</item>
+ <item>1F468,200D,1F467,200D,1F466</item>
+ <item>1F468,200D,1F467,200D,1F467</item>
+ <item>1F469,200D,1F466</item>
+ <item>1F469,200D,1F466,200D,1F466</item>
+ <item>1F469,200D,1F467</item>
+ <item>1F469,200D,1F467,200D,1F466</item>
+ <item>1F469,200D,1F467,200D,1F467</item>
+ <!-- person-symbol -->
+ <item>1F5E3</item>
+ <item>1F464</item>
+ <item>1F465</item>
+ <item>1FAC2</item>
+ <item>1F463</item>
+ <!-- hair-style -->
+ <item>1F9B0</item>
+ <item>1F9B1</item>
+ <item>1F9B3</item>
+ <item>1F9B2</item>
</array>
+
<array
name="emoji_eight_food_drink"
format="string"
>
- <item>1f347</item>
- <item>1f348</item>
- <item>1f349</item>
- <item>1f34a</item>
- <item>1f34b</item>
- <item>1f34c</item>
- <item>1f34d</item>
- <item>1f34e</item>
- <item>1f34f</item>
- <item>1f350</item>
- <item>1f351</item>
- <item>1f352</item>
- <item>1f353</item>
- <item>1f345</item>
- <item>1f346</item>
- <item>1f33d</item>
- <item>1f336</item>
- <item>1f344</item>
- <item>1f330</item>
- <item>1f35e</item>
- <item>1f9c0</item>
- <item>1f356</item>
- <item>1f357</item>
- <item>1f354</item>
- <item>1f35f</item>
- <item>1f355</item>
- <item>1f32d</item>
- <item>1f32e</item>
- <item>1f32f</item>
- <item>1f37f</item>
- <item>1f372</item>
- <item>1f371</item>
- <item>1f358</item>
- <item>1f359</item>
- <item>1f35a</item>
- <item>1f35b</item>
- <item>1f35c</item>
- <item>1f35d</item>
- <item>1f360</item>
- <item>1f362</item>
- <item>1f363</item>
- <item>1f364</item>
- <item>1f365</item>
- <item>1f361</item>
- <item>1f366</item>
- <item>1f367</item>
- <item>1f368</item>
- <item>1f369</item>
- <item>1f36a</item>
- <item>1f382</item>
- <item>1f370</item>
- <item>1f36b</item>
- <item>1f36c</item>
- <item>1f36d</item>
- <item>1f36e</item>
- <item>1f36f</item>
- <item>1f37c</item>
+ <!-- food-fruit -->
+ <item>1F347</item>
+ <item>1F348</item>
+ <item>1F349</item>
+ <item>1F34A</item>
+ <item>1F34B</item>
+ <item>1F34C</item>
+ <item>1F34D</item>
+ <item>1F96D</item>
+ <item>1F34E</item>
+ <item>1F34F</item>
+ <item>1F350</item>
+ <item>1F351</item>
+ <item>1F352</item>
+ <item>1F353</item>
+ <item>1FAD0</item>
+ <item>1F95D</item>
+ <item>1F345</item>
+ <item>1FAD2</item>
+ <item>1F965</item>
+ <!-- food-vegetable -->
+ <item>1F951</item>
+ <item>1F346</item>
+ <item>1F954</item>
+ <item>1F955</item>
+ <item>1F33D</item>
+ <item>1F336</item>
+ <item>1FAD1</item>
+ <item>1F952</item>
+ <item>1F96C</item>
+ <item>1F966</item>
+ <item>1F9C4</item>
+ <item>1F9C5</item>
+ <item>1F344</item>
+ <item>1F95C</item>
+ <item>1FAD8</item>
+ <item>1F330</item>
+ <!-- food-prepared -->
+ <item>1F35E</item>
+ <item>1F950</item>
+ <item>1F956</item>
+ <item>1FAD3</item>
+ <item>1F968</item>
+ <item>1F96F</item>
+ <item>1F95E</item>
+ <item>1F9C7</item>
+ <item>1F9C0</item>
+ <item>1F356</item>
+ <item>1F357</item>
+ <item>1F969</item>
+ <item>1F953</item>
+ <item>1F354</item>
+ <item>1F35F</item>
+ <item>1F355</item>
+ <item>1F32D</item>
+ <item>1F96A</item>
+ <item>1F32E</item>
+ <item>1F32F</item>
+ <item>1FAD4</item>
+ <item>1F959</item>
+ <item>1F9C6</item>
+ <item>1F95A</item>
+ <item>1F373</item>
+ <item>1F958</item>
+ <item>1F372</item>
+ <item>1FAD5</item>
+ <item>1F963</item>
+ <item>1F957</item>
+ <item>1F37F</item>
+ <item>1F9C8</item>
+ <item>1F9C2</item>
+ <item>1F96B</item>
+ <!-- food-asian -->
+ <item>1F371</item>
+ <item>1F358</item>
+ <item>1F359</item>
+ <item>1F35A</item>
+ <item>1F35B</item>
+ <item>1F35C</item>
+ <item>1F35D</item>
+ <item>1F360</item>
+ <item>1F362</item>
+ <item>1F363</item>
+ <item>1F364</item>
+ <item>1F365</item>
+ <item>1F96E</item>
+ <item>1F361</item>
+ <item>1F95F</item>
+ <item>1F960</item>
+ <item>1F961</item>
+ <!-- food-marine -->
+ <item>1F980</item>
+ <item>1F99E</item>
+ <item>1F990</item>
+ <item>1F991</item>
+ <item>1F9AA</item>
+ <!-- food-sweet -->
+ <item>1F366</item>
+ <item>1F367</item>
+ <item>1F368</item>
+ <item>1F369</item>
+ <item>1F36A</item>
+ <item>1F382</item>
+ <item>1F370</item>
+ <item>1F9C1</item>
+ <item>1F967</item>
+ <item>1F36B</item>
+ <item>1F36C</item>
+ <item>1F36D</item>
+ <item>1F36E</item>
+ <item>1F36F</item>
+ <!-- drink -->
+ <item>1F37C</item>
+ <item>1F95B</item>
<item>2615</item>
- <item>1f375</item>
- <item>1f376</item>
- <item>1f37e</item>
- <item>1f377</item>
- <item>1f378</item>
- <item>1f379</item>
- <item>1f37a</item>
- <item>1f37b</item>
- <item>1f37d</item>
- <item>1f374</item>
- <item>1f373</item>
- <item>1f3fa</item>
+ <item>1FAD6</item>
+ <item>1F375</item>
+ <item>1F376</item>
+ <item>1F37E</item>
+ <item>1F377</item>
+ <item>1F378</item>
+ <item>1F379</item>
+ <item>1F37A</item>
+ <item>1F37B</item>
+ <item>1F942</item>
+ <item>1F943</item>
+ <item>1FAD7</item>
+ <item>1F964</item>
+ <item>1F9CB</item>
+ <item>1F9C3</item>
+ <item>1F9C9</item>
+ <item>1F9CA</item>
+ <!-- dishware -->
+ <item>1F962</item>
+ <item>1F37D</item>
+ <item>1F374</item>
+ <item>1F944</item>
+ <item>1F52A</item>
+ <item>1FAD9</item>
+ <item>1F3FA</item>
</array>
<array
name="emoji_eight_objects"
format="string"
>
- <item>1f507</item>
- <item>1f508</item>
- <item>1f509</item>
- <item>1f50a</item>
- <item>1f4e2</item>
- <item>1f4e3</item>
- <item>1f4ef</item>
- <item>1f514</item>
- <item>1f515</item>
- <item>1f3bc</item>
- <item>1f3b5</item>
- <item>1f3b6</item>
- <item>1f399</item>
- <item>1f39a</item>
- <item>1f39b</item>
- <item>1f3a4</item>
- <item>1f3a7</item>
- <item>1f3b7</item>
- <item>1f3b8</item>
- <item>1f3b9</item>
- <item>1f3ba</item>
- <item>1f3bb</item>
- <item>1f4fb</item>
- <item>1f4f1</item>
- <item>1f4f2</item>
- <item>260e</item>
- <item>1f4de</item>
- <item>1f4df</item>
- <item>1f4e0</item>
- <item>1f50b</item>
- <item>1f50c</item>
- <item>1f4bb</item>
- <item>1f5a5</item>
- <item>1f5a8</item>
- <item>2328</item>
- <item>1f5b1</item>
- <item>1f5b2</item>
- <item>1f4bd</item>
- <item>1f4be</item>
- <item>1f4bf</item>
- <item>1f4c0</item>
- <item>1f3a5</item>
- <item>1f3ac</item>
- <item>1f4fd</item>
- <item>1f4fa</item>
- <item>1f4f7</item>
- <item>1f4f8</item>
- <item>1f4f9</item>
- <item>1f4fc</item>
- <item>1f50d</item>
- <item>1f50e</item>
- <item>1f52c</item>
- <item>1f52d</item>
- <item>1f4e1</item>
- <item>1f56f</item>
- <item>1f4a1</item>
- <item>1f526</item>
- <item>1f3ee</item>
- <item>1f4d4</item>
- <item>1f4d5</item>
- <item>1f4d6</item>
- <item>1f4d7</item>
- <item>1f4d8</item>
- <item>1f4d9</item>
- <item>1f4da</item>
- <item>1f4d3</item>
- <item>1f4d2</item>
- <item>1f4c3</item>
- <item>1f4dc</item>
- <item>1f4c4</item>
- <item>1f4f0</item>
- <item>1f5de</item>
- <item>1f4d1</item>
- <item>1f516</item>
- <item>1f4b0</item>
- <item>1f4b4</item>
- <item>1f4b5</item>
- <item>1f4b6</item>
- <item>1f4b7</item>
- <item>1f4b8</item>
- <item>1f4b3</item>
- <item>1f4b9</item>
- <item>2709</item>
- <item>1f4e7</item>
- <item>1f4e8</item>
- <item>1f4e9</item>
- <item>1f4e4</item>
- <item>1f4e5</item>
- <item>1f4e6</item>
- <item>1f4eb</item>
- <item>1f4ea</item>
- <item>1f4ec</item>
- <item>1f4ed</item>
- <item>1f4ee</item>
- <item>1f5f3</item>
- <item>270f</item>
- <item>2712</item>
- <item>1f58b</item>
- <item>1f58a</item>
- <item>1f58c</item>
- <item>1f58d</item>
- <item>1f4dd</item>
- <item>1f4bc</item>
- <item>1f4c1</item>
- <item>1f4c2</item>
- <item>1f5c2</item>
- <item>1f4c5</item>
- <item>1f4c6</item>
- <item>1f5d2</item>
- <item>1f5d3</item>
- <item>1f4c7</item>
- <item>1f4c8</item>
- <item>1f4c9</item>
- <item>1f4ca</item>
- <item>1f4cb</item>
- <item>1f4cc</item>
- <item>1f4cd</item>
- <item>1f4ce</item>
- <item>1f587</item>
- <item>1f4cf</item>
- <item>1f4d0</item>
- <item>2702</item>
- <item>1f5c3</item>
- <item>1f5c4</item>
- <item>1f5d1</item>
- <item>1f512</item>
- <item>1f513</item>
- <item>1f50f</item>
- <item>1f510</item>
- <item>1f511</item>
- <item>1f5dd</item>
- <item>1f528</item>
- <!-- Removed for lack of color glyph support. <item>26cf</item> -->
- <!-- Removed for lack of color glyph support. <item>2692</item> -->
- <item>1f6e0</item>
- <item>1f527</item>
- <item>1f529</item>
- <!-- Removed for lack of color glyph support. <item>2699</item> -->
- <item>1f5dc</item>
- <!-- Removed for lack of color glyph support. <item>2697</item> -->
- <!-- Removed for lack of color glyph support. <item>2696</item> -->
- <item>1f517</item>
- <!-- Removed for lack of color glyph support. <item>26d3</item> -->
- <item>1f489</item>
- <item>1f48a</item>
- <item>1f5e1</item>
- <item>1f52a</item>
- <!-- Removed for lack of color glyph support. <item>2694</item> -->
- <item>1f52b</item>
- <item>1f6e1</item>
- <item>1f3f9</item>
- <item>1f6ac</item>
- <!-- Removed for lack of color glyph support. <item>26b0</item> -->
- <!-- Removed for lack of color glyph support. <item>26b1</item> -->
- <item>1f5ff</item>
- <item>1f6e2</item>
- <item>1f52e</item>
+ <!-- clothing -->
+ <item>1F453</item>
+ <item>1F576</item>
+ <item>1F97D</item>
+ <item>1F97C</item>
+ <item>1F9BA</item>
+ <item>1F454</item>
+ <item>1F455</item>
+ <item>1F456</item>
+ <item>1F9E3</item>
+ <item>1F9E4</item>
+ <item>1F9E5</item>
+ <item>1F9E6</item>
+ <item>1F457</item>
+ <item>1F458</item>
+ <item>1F97B</item>
+ <item>1FA71</item>
+ <item>1FA72</item>
+ <item>1FA73</item>
+ <item>1F459</item>
+ <item>1F45A</item>
+ <item>1F45B</item>
+ <item>1F45C</item>
+ <item>1F45D</item>
+ <item>1F6CD</item>
+ <item>1F392</item>
+ <item>1FA74</item>
+ <item>1F45E</item>
+ <item>1F45F</item>
+ <item>1F97E</item>
+ <item>1F97F</item>
+ <item>1F460</item>
+ <item>1F461</item>
+ <item>1FA70</item>
+ <item>1F462</item>
+ <item>1F451</item>
+ <item>1F452</item>
+ <item>1F3A9</item>
+ <item>1F393</item>
+ <item>1F9E2</item>
+ <item>1FA96</item>
+ <item>26D1,FE0F</item>
+ <item>1F4FF</item>
+ <item>1F484</item>
+ <item>1F48D</item>
+ <item>1F48E</item>
+ <!-- sound -->
+ <item>1F507</item>
+ <item>1F508</item>
+ <item>1F509</item>
+ <item>1F50A</item>
+ <item>1F4E2</item>
+ <item>1F4E3</item>
+ <item>1F4EF</item>
+ <item>1F514</item>
+ <item>1F515</item>
+ <!-- music -->
+ <item>1F3BC</item>
+ <item>1F3B5</item>
+ <item>1F3B6</item>
+ <item>1F399</item>
+ <item>1F39A</item>
+ <item>1F39B</item>
+ <item>1F3A4</item>
+ <item>1F3A7</item>
+ <item>1F4FB</item>
+ <!-- musical-instrument -->
+ <item>1F3B7</item>
+ <item>1FA97</item>
+ <item>1F3B8</item>
+ <item>1F3B9</item>
+ <item>1F3BA</item>
+ <item>1F3BB</item>
+ <item>1FA95</item>
+ <item>1F941</item>
+ <item>1FA98</item>
+ <!-- phone -->
+ <item>1F4F1</item>
+ <item>1F4F2</item>
+ <item>260E</item>
+ <item>1F4DE</item>
+ <item>1F4DF</item>
+ <item>1F4E0</item>
+ <!-- computer -->
+ <item>1F50B</item>
+ <item>1FAAB</item>
+ <item>1F50C</item>
+ <item>1F4BB</item>
+ <item>1F5A5</item>
+ <item>1F5A8</item>
+ <item>2328,FE0F</item>
+ <item>1F5B1</item>
+ <item>1F5B2</item>
+ <item>1F4BD</item>
+ <item>1F4BE</item>
+ <item>1F4BF</item>
+ <item>1F4C0</item>
+ <item>1F9EE</item>
+ <!-- light & video -->
+ <item>1F3A5</item>
+ <item>1F39E</item>
+ <item>1F4FD</item>
+ <item>1F3AC</item>
+ <item>1F4FA</item>
+ <item>1F4F7</item>
+ <item>1F4F8</item>
+ <item>1F4F9</item>
+ <item>1F4FC</item>
+ <item>1F50D</item>
+ <item>1F50E</item>
+ <item>1F56F</item>
+ <item>1F4A1</item>
+ <item>1F526</item>
+ <item>1F3EE</item>
+ <item>1FA94</item>
+ <!-- book-paper -->
+ <item>1F4D4</item>
+ <item>1F4D5</item>
+ <item>1F4D6</item>
+ <item>1F4D7</item>
+ <item>1F4D8</item>
+ <item>1F4D9</item>
+ <item>1F4DA</item>
+ <item>1F4D3</item>
+ <item>1F4D2</item>
+ <item>1F4C3</item>
+ <item>1F4DC</item>
+ <item>1F4C4</item>
+ <item>1F4F0</item>
+ <item>1F5DE</item>
+ <item>1F4D1</item>
+ <item>1F516</item>
+ <item>1F3F7</item>
+ <!-- money -->
+ <item>1F4B0</item>
+ <item>1FA99</item>
+ <item>1F4B4</item>
+ <item>1F4B5</item>
+ <item>1F4B6</item>
+ <item>1F4B7</item>
+ <item>1F4B8</item>
+ <item>1F4B3</item>
+ <item>1F9FE</item>
+ <item>1F4B9</item>
+ <!-- mail -->
+ <item>2709,FE0F</item>
+ <item>1F4E7</item>
+ <item>1F4E8</item>
+ <item>1F4E9</item>
+ <item>1F4E4</item>
+ <item>1F4E5</item>
+ <item>1F4E6</item>
+ <item>1F4EB</item>
+ <item>1F4EA</item>
+ <item>1F4EC</item>
+ <item>1F4ED</item>
+ <item>1F4EE</item>
+ <item>1F5F3</item>
+ <!-- writing -->
+ <item>270F,FE0F</item>
+ <item>2712,FE0F</item>
+ <item>1F58B</item>
+ <item>1F58A</item>
+ <item>1F58C</item>
+ <item>1F58D</item>
+ <item>1F4DD</item>
+ <!-- office -->
+ <item>1F4BC</item>
+ <item>1F4C1</item>
+ <item>1F4C2</item>
+ <item>1F5C2</item>
+ <item>1F4C5</item>
+ <item>1F4C6</item>
+ <item>1F5D2</item>
+ <item>1F5D3</item>
+ <item>1F4C7</item>
+ <item>1F4C8</item>
+ <item>1F4C9</item>
+ <item>1F4CA</item>
+ <item>1F4CB</item>
+ <item>1F4CC</item>
+ <item>1F4CD</item>
+ <item>1F4CE</item>
+ <item>1F587</item>
+ <item>1F4CF</item>
+ <item>1F4D0</item>
+ <item>2702,FE0F</item>
+ <item>1F5C3</item>
+ <item>1F5C4</item>
+ <item>1F5D1</item>
+ <!-- lock -->
+ <item>1F512</item>
+ <item>1F513</item>
+ <item>1F50F</item>
+ <item>1F510</item>
+ <item>1F511</item>
+ <item>1F5DD</item>
+ <!-- tool -->
+ <item>1F528</item>
+ <item>1FA93</item>
+ <item>26CF,FE0F</item>
+ <item>2692,FE0F</item>
+ <item>1F6E0</item>
+ <item>1F5E1</item>
+ <item>2694,FE0F</item>
+ <item>1F52B</item>
+ <item>1FA83</item>
+ <item>1F3F9</item>
+ <item>1F6E1</item>
+ <item>1FA9A</item>
+ <item>1F527</item>
+ <item>1FA9B</item>
+ <item>1F529</item>
+ <item>2699,FE0F</item>
+ <item>1F5DC</item>
+ <item>2696,FE0F</item>
+ <item>1F9AF</item>
+ <item>1F517</item>
+ <item>26D3,FE0F</item>
+ <item>1FA9D</item>
+ <item>1F9F0</item>
+ <item>1F9F2</item>
+ <item>1FA9C</item>
+ <!-- science -->
+ <item>2697,FE0F</item>
+ <item>1F9EA</item>
+ <item>1F9EB</item>
+ <item>1F9EC</item>
+ <item>1F52C</item>
+ <item>1F52D</item>
+ <item>1F4E1</item>
+ <!-- medical -->
+ <item>1F489</item>
+ <item>1FA78</item>
+ <item>1F48A</item>
+ <item>1FA79</item>
+ <item>1FA7C</item>
+ <item>1FA7A</item>
+ <item>1FA7B</item>
+ <!-- household -->
+ <item>1F6AA</item>
+ <item>1F6D7</item>
+ <item>1FA9E</item>
+ <item>1FA9F</item>
+ <item>1F6CF</item>
+ <item>1F6CB</item>
+ <item>1FA91</item>
+ <item>1F6BD</item>
+ <item>1FAA0</item>
+ <item>1F6BF</item>
+ <item>1F6C1</item>
+ <item>1FAA4</item>
+ <item>1FA92</item>
+ <item>1F9F4</item>
+ <item>1F9F7</item>
+ <item>1F9F9</item>
+ <item>1F9FA</item>
+ <item>1F9FB</item>
+ <item>1FAA3</item>
+ <item>1F9FC</item>
+ <item>1FAE7</item>
+ <item>1FAA5</item>
+ <item>1F9FD</item>
+ <item>1F9EF</item>
+ <item>1F6D2</item>
+ <!-- other-object -->
+ <item>1F6AC</item>
+ <item>26B0,FE0F</item>
+ <item>1FAA6</item>
+ <item>26B1,FE0F</item>
+ <item>1F5FF</item>
+ <item>1FAA7</item>
+ <item>1FAAA</item>
</array>
<array
name="emoji_eight_activity"
format="string"
>
- <item>1f383</item>
- <item>1f384</item>
- <item>1f386</item>
- <item>1f387</item>
+ <!-- event -->
+ <item>1F383</item>
+ <item>1F384</item>
+ <item>1F386</item>
+ <item>1F387</item>
+ <item>1F9E8</item>
<item>2728</item>
- <item>1f388</item>
- <item>1f389</item>
- <item>1f38a</item>
- <item>1f38b</item>
- <item>1f38c</item>
- <item>1f38d</item>
- <item>1f38e</item>
- <item>1f38f</item>
- <item>1f390</item>
- <item>1f391</item>
- <item>1f380</item>
- <item>1f381</item>
- <item>1f396</item>
- <item>1f397</item>
- <item>1f39e</item>
- <item>1f39f</item>
- <item>1f3ab</item>
- <item>1f3f7</item>
- <item>26bd</item>
- <item>26be</item>
- <item>1f3c0</item>
- <item>1f3c8</item>
- <item>1f3c9</item>
- <item>1f3be</item>
- <item>1f3b1</item>
- <item>1f3b3</item>
- <item>26f3</item>
- <item>1f3cc</item>
- <!-- Removed for lack of color glyph support. <item>26f8</item> -->
- <item>1f3a3</item>
- <item>1f3bd</item>
- <item>1f3bf</item>
- <!-- Removed for lack of color glyph support. <item>26f7</item> -->
- <item>1f3c2</item>
- <item>1f3c4</item>
- <item>1f3c7</item>
- <item>1f3ca</item>
- <!-- Removed for lack of color glyph support. <item>26f9</item> -->
- <item>1f3cb</item>
- <item>1f6b4</item>
- <item>1f6b5</item>
- <item>1f3ce</item>
- <item>1f3cd</item>
- <item>1f3c5</item>
- <item>1f3c6</item>
- <item>1f3cf</item>
- <item>1f3d0</item>
- <item>1f3d1</item>
- <item>1f3d2</item>
- <item>1f3d3</item>
- <item>1f3f8</item>
- <item>1f3af</item>
- <item>1f3ae</item>
- <item>1f579</item>
- <item>1f3b2</item>
+ <item>1F388</item>
+ <item>1F389</item>
+ <item>1F38A</item>
+ <item>1F38B</item>
+ <item>1F38D</item>
+ <item>1F38E</item>
+ <item>1F38F</item>
+ <item>1F390</item>
+ <item>1F391</item>
+ <item>1F9E7</item>
+ <item>1F380</item>
+ <item>1F381</item>
+ <item>1F397</item>
+ <item>1F39F</item>
+ <item>1F3AB</item>
+ <!-- award-medal -->
+ <item>1F396</item>
+ <item>1F3C6</item>
+ <item>1F3C5</item>
+ <item>1F947</item>
+ <item>1F948</item>
+ <item>1F949</item>
+ <!-- sport -->
+ <item>26BD</item>
+ <item>26BE</item>
+ <item>1F94E</item>
+ <item>1F3C0</item>
+ <item>1F3D0</item>
+ <item>1F3C8</item>
+ <item>1F3C9</item>
+ <item>1F3BE</item>
+ <item>1F94F</item>
+ <item>1F3B3</item>
+ <item>1F3CF</item>
+ <item>1F3D1</item>
+ <item>1F3D2</item>
+ <item>1F94D</item>
+ <item>1F3D3</item>
+ <item>1F3F8</item>
+ <item>1F94A</item>
+ <item>1F94B</item>
+ <item>1F945</item>
+ <item>26F3</item>
+ <item>26F8,FE0F</item>
+ <item>1F3A3</item>
+ <item>1F93F</item>
+ <item>1F3BD</item>
+ <item>1F3BF</item>
+ <item>1F6F7</item>
+ <item>1F94C</item>
+ <!-- game -->
+ <item>1F3AF</item>
+ <item>1FA80</item>
+ <item>1FA81</item>
+ <item>1F3B1</item>
+ <item>1F52E</item>
+ <item>1FA84</item>
+ <item>1F9FF</item>
+ <item>1FAAC</item>
+ <item>1F3AE</item>
+ <item>1F579</item>
+ <item>1F3B0</item>
+ <item>1F3B2</item>
+ <item>1F9E9</item>
+ <item>1F9F8</item>
+ <item>1FA85</item>
+ <item>1FAA9</item>
+ <item>1FA86</item>
<item>2660</item>
<item>2665</item>
<item>2666</item>
<item>2663</item>
- <item>1f0cf</item>
- <item>1f004</item>
- <item>1f3b4</item>
+ <item>265F,FE0F</item>
+ <item>1F0CF</item>
+ <item>1F004</item>
+ <item>1F3B4</item>
+ <!-- arts & crafts -->
+ <item>1F3AD</item>
+ <item>1F5BC</item>
+ <item>1F3A8</item>
+ <item>1F9F5</item>
+ <item>1FAA1</item>
+ <item>1F9F6</item>
+ <item>1FAA2</item>
</array>
<array
name="emoji_eight_travel_places"
format="string"
>
- <item>1f30d</item>
- <item>1f30e</item>
- <item>1f30f</item>
- <item>1f310</item>
- <item>1f5fa</item>
- <item>1f3d4</item>
- <!-- Removed for lack of color glyph support. <item>26f0</item> -->
- <item>1f30b</item>
- <item>1f5fb</item>
- <item>1f3d5</item>
- <item>1f3d6</item>
- <item>1f3dc</item>
- <item>1f3dd</item>
- <item>1f3de</item>
- <item>1f3df</item>
- <item>1f3db</item>
- <item>1f3d7</item>
- <item>1f3d8</item>
- <item>1f3d9</item>
- <item>1f3da</item>
- <item>1f3e0</item>
- <item>1f3e1</item>
- <item>26ea</item>
- <item>1f54b</item>
- <item>1f54c</item>
- <item>1f54d</item>
- <!-- Removed for lack of color glyph support. <item>26e9</item> -->
- <item>1f3e2</item>
- <item>1f3e3</item>
- <item>1f3e4</item>
- <item>1f3e5</item>
- <item>1f3e6</item>
- <item>1f3e8</item>
- <item>1f3e9</item>
- <item>1f3ea</item>
- <item>1f3eb</item>
- <item>1f3ec</item>
- <item>1f3ed</item>
- <item>1f3ef</item>
- <item>1f3f0</item>
- <item>1f492</item>
- <item>1f5fc</item>
- <item>1f5fd</item>
- <item>1f5fe</item>
- <item>26f2</item>
- <item>26fa</item>
- <item>1f301</item>
- <item>1f303</item>
- <item>1f304</item>
- <item>1f305</item>
- <item>1f306</item>
- <item>1f307</item>
- <item>1f309</item>
- <item>2668</item>
- <item>1f30c</item>
- <item>1f3a0</item>
- <item>1f3a1</item>
- <item>1f3a2</item>
- <item>1f488</item>
- <item>1f3aa</item>
- <item>1f3ad</item>
- <item>1f5bc</item>
- <item>1f3a8</item>
- <item>1f3b0</item>
- <item>1f682</item>
- <item>1f683</item>
- <item>1f684</item>
- <item>1f685</item>
- <item>1f686</item>
- <item>1f687</item>
- <item>1f688</item>
- <item>1f689</item>
- <item>1f68a</item>
- <item>1f69d</item>
- <item>1f69e</item>
- <item>1f68b</item>
- <item>1f68c</item>
- <item>1f68d</item>
- <item>1f68e</item>
- <item>1f68f</item>
- <item>1f690</item>
- <item>1f691</item>
- <item>1f692</item>
- <item>1f693</item>
- <item>1f694</item>
- <item>1f695</item>
- <item>1f696</item>
- <item>1f697</item>
- <item>1f698</item>
- <item>1f699</item>
- <item>1f69a</item>
- <item>1f69b</item>
- <item>1f69c</item>
- <item>1f6b2</item>
- <item>26fd</item>
- <item>1f6e3</item>
- <item>1f6e4</item>
- <item>1f6a8</item>
- <item>1f6a5</item>
- <item>1f6a6</item>
- <item>1f6a7</item>
+ <!-- place-map -->
+ <item>1F30D</item>
+ <item>1F30E</item>
+ <item>1F30F</item>
+ <item>1F310</item>
+ <item>1F5FA</item>
+ <item>1F5FE</item>
+ <item>1F9ED</item>
+ <!-- place-geographic -->
+ <item>1F3D4</item>
+ <item>26F0,FE0F</item>
+ <item>1F30B</item>
+ <item>1F5FB</item>
+ <item>1F3D5</item>
+ <item>1F3D6</item>
+ <item>1F3DC</item>
+ <item>1F3DD</item>
+ <item>1F3DE</item>
+ <!-- place-building -->
+ <item>1F3DF</item>
+ <item>1F3DB</item>
+ <item>1F3D7</item>
+ <item>1F9F1</item>
+ <item>1FAA8</item>
+ <item>1FAB5</item>
+ <item>1F6D6</item>
+ <item>1F3D8</item>
+ <item>1F3DA</item>
+ <item>1F3E0</item>
+ <item>1F3E1</item>
+ <item>1F3E2</item>
+ <item>1F3E3</item>
+ <item>1F3E4</item>
+ <item>1F3E5</item>
+ <item>1F3E6</item>
+ <item>1F3E8</item>
+ <item>1F3E9</item>
+ <item>1F3EA</item>
+ <item>1F3EB</item>
+ <item>1F3EC</item>
+ <item>1F3ED</item>
+ <item>1F3EF</item>
+ <item>1F3F0</item>
+ <item>1F492</item>
+ <item>1F5FC</item>
+ <item>1F5FD</item>
+ <!-- place-religious -->
+ <item>26EA</item>
+ <item>1F54C</item>
+ <item>1F6D5</item>
+ <item>1F54D</item>
+ <item>26E9,FE0F</item>
+ <item>1F54B</item>
+ <!-- place-other -->
+ <item>26F2</item>
+ <item>26FA</item>
+ <item>1F301</item>
+ <item>1F303</item>
+ <item>1F3D9</item>
+ <item>1F304</item>
+ <item>1F305</item>
+ <item>1F306</item>
+ <item>1F307</item>
+ <item>1F309</item>
+ <item>2668,FE0F</item>
+ <item>1F3A0</item>
+ <item>1F6DD</item>
+ <item>1F3A1</item>
+ <item>1F3A2</item>
+ <item>1F488</item>
+ <item>1F3AA</item>
+ <!-- transport-ground -->
+ <item>1F682</item>
+ <item>1F683</item>
+ <item>1F684</item>
+ <item>1F685</item>
+ <item>1F686</item>
+ <item>1F687</item>
+ <item>1F688</item>
+ <item>1F689</item>
+ <item>1F68A</item>
+ <item>1F69D</item>
+ <item>1F69E</item>
+ <item>1F68B</item>
+ <item>1F68C</item>
+ <item>1F68D</item>
+ <item>1F68E</item>
+ <item>1F690</item>
+ <item>1F691</item>
+ <item>1F692</item>
+ <item>1F693</item>
+ <item>1F694</item>
+ <item>1F695</item>
+ <item>1F696</item>
+ <item>1F697</item>
+ <item>1F698</item>
+ <item>1F699</item>
+ <item>1F6FB</item>
+ <item>1F69A</item>
+ <item>1F69B</item>
+ <item>1F69C</item>
+ <item>1F3CE</item>
+ <item>1F3CD</item>
+ <item>1F6F5</item>
+ <item>1F9BD</item>
+ <item>1F9BC</item>
+ <item>1F6FA</item>
+ <item>1F6B2</item>
+ <item>1F6F4</item>
+ <item>1F6F9</item>
+ <item>1F6FC</item>
+ <item>1F68F</item>
+ <item>1F6E3</item>
+ <item>1F6E4</item>
+ <item>1F6E2</item>
+ <item>26FD</item>
+ <item>1F6DE</item>
+ <item>1F6A8</item>
+ <item>1F6A5</item>
+ <item>1F6A6</item>
+ <item>1F6D1</item>
+ <item>1F6A7</item>
+ <!-- transport-water -->
<item>2693</item>
- <item>26f5</item>
- <item>1f6a3</item>
- <item>1f6a4</item>
- <item>1f6f3</item>
- <!-- Removed for lack of color glyph support. <item>26f4</item> -->
- <item>1f6e5</item>
- <item>1f6a2</item>
- <item>2708</item>
- <item>1f6e9</item>
- <item>1f6eb</item>
- <item>1f6ec</item>
- <item>1f4ba</item>
- <item>1f681</item>
- <item>1f69f</item>
- <item>1f6a0</item>
- <item>1f6a1</item>
- <item>1f680</item>
- <item>1f6f0</item>
- <item>1f6ce</item>
- <item>1f6aa</item>
- <item>1f6cc</item>
- <item>1f6cf</item>
- <item>1f6cb</item>
- <item>1f6bd</item>
- <item>1f6bf</item>
- <item>1f6c0</item>
- <item>1f6c1</item>
- <item>231b</item>
- <item>23f3</item>
- <item>231a</item>
- <item>23f0</item>
- <!-- Removed for lack of color glyph support. <item>23f1</item> -->
- <!-- Removed for lack of color glyph support. <item>23f2</item> -->
- <item>1f570</item>
- <item>1f55b</item>
- <item>1f567</item>
- <item>1f550</item>
- <item>1f55c</item>
- <item>1f551</item>
- <item>1f55d</item>
- <item>1f552</item>
- <item>1f55e</item>
- <item>1f553</item>
- <item>1f55f</item>
- <item>1f554</item>
- <item>1f560</item>
- <item>1f555</item>
- <item>1f561</item>
- <item>1f556</item>
- <item>1f562</item>
- <item>1f557</item>
- <item>1f563</item>
- <item>1f558</item>
- <item>1f564</item>
- <item>1f559</item>
- <item>1f565</item>
- <item>1f55a</item>
- <item>1f566</item>
- <item>1f311</item>
- <item>1f312</item>
- <item>1f313</item>
- <item>1f314</item>
- <item>1f315</item>
- <item>1f316</item>
- <item>1f317</item>
- <item>1f318</item>
- <item>1f319</item>
- <item>1f31a</item>
- <item>1f31b</item>
- <item>1f31c</item>
- <item>1f321</item>
+ <item>1F6DF</item>
+ <item>26F5</item>
+ <item>1F6F6</item>
+ <item>1F6A4</item>
+ <item>1F6F3</item>
+ <item>26F4,FE0F</item>
+ <item>1F6E5</item>
+ <item>1F6A2</item>
+ <!-- transport-air -->
+ <item>2708,FE0F</item>
+ <item>1F6E9</item>
+ <item>1F6EB</item>
+ <item>1F6EC</item>
+ <item>1FA82</item>
+ <item>1F4BA</item>
+ <item>1F681</item>
+ <item>1F69F</item>
+ <item>1F6A0</item>
+ <item>1F6A1</item>
+ <item>1F6F0</item>
+ <item>1F680</item>
+ <item>1F6F8</item>
+ <!-- hotel -->
+ <item>1F6CE</item>
+ <item>1F9F3</item>
+ <!-- time -->
+ <item>231B</item>
+ <item>23F3</item>
+ <item>231A</item>
+ <item>23F0</item>
+ <item>23F1,FE0F</item>
+ <item>23F2,FE0F</item>
+ <item>1F570</item>
+ <item>1F55B</item>
+ <item>1F567</item>
+ <item>1F550</item>
+ <item>1F55C</item>
+ <item>1F551</item>
+ <item>1F55D</item>
+ <item>1F552</item>
+ <item>1F55E</item>
+ <item>1F553</item>
+ <item>1F55F</item>
+ <item>1F554</item>
+ <item>1F560</item>
+ <item>1F555</item>
+ <item>1F561</item>
+ <item>1F556</item>
+ <item>1F562</item>
+ <item>1F557</item>
+ <item>1F563</item>
+ <item>1F558</item>
+ <item>1F564</item>
+ <item>1F559</item>
+ <item>1F565</item>
+ <item>1F55A</item>
+ <item>1F566</item>
+ <!-- sky & weather -->
+ <item>1F311</item>
+ <item>1F312</item>
+ <item>1F313</item>
+ <item>1F314</item>
+ <item>1F315</item>
+ <item>1F316</item>
+ <item>1F317</item>
+ <item>1F318</item>
+ <item>1F319</item>
+ <item>1F31A</item>
+ <item>1F31B</item>
+ <item>1F31C</item>
+ <item>1F321</item>
<item>2600</item>
- <item>1f31d</item>
- <item>1f31e</item>
- <item>2b50</item>
- <item>1f31f</item>
- <item>1f320</item>
+ <item>1F31D</item>
+ <item>1F31E</item>
+ <item>1FA90</item>
+ <item>2B50</item>
+ <item>1F31F</item>
+ <item>1F320</item>
+ <item>1F30C</item>
<item>2601</item>
- <item>26c5</item>
- <!-- Removed for lack of color glyph support. <item>26c8</item> -->
- <item>1f324</item>
- <item>1f325</item>
- <item>1f326</item>
- <item>1f327</item>
- <item>1f328</item>
- <item>1f329</item>
- <item>1f32a</item>
- <item>1f32b</item>
- <item>1f32c</item>
- <item>1f300</item>
- <item>1f308</item>
- <item>1f302</item>
- <!-- Removed for lack of color glyph support. <item>2602</item> -->
+ <item>26C5</item>
+ <item>26C8,FE0F</item>
+ <item>1F324</item>
+ <item>1F325</item>
+ <item>1F326</item>
+ <item>1F327</item>
+ <item>1F328</item>
+ <item>1F329</item>
+ <item>1F32A</item>
+ <item>1F32B</item>
+ <item>1F32C</item>
+ <item>1F300</item>
+ <item>1F308</item>
+ <item>1F302</item>
+ <item>2602,FE0F</item>
<item>2614</item>
- <!-- Removed for lack of color glyph support. <item>26f1</item> -->
- <item>26a1</item>
+ <item>26F1,FE0F</item>
+ <item>26A1</item>
<item>2744</item>
- <!-- Removed for lack of color glyph support. <item>2603</item> -->
- <item>26c4</item>
- <!-- Removed for lack of color glyph support. <item>2604</item> -->
- <item>1f525</item>
- <item>1f4a7</item>
- <item>1f30a</item>
+ <item>2603,FE0F</item>
+ <item>26C4</item>
+ <item>2604,FE0F</item>
+ <item>1F525</item>
+ <item>1F4A7</item>
+ <item>1F30A</item>
</array>
<array
name="emoji_eight_flags"
format="string"
>
- <item>1f1e6,1f1e8</item>
- <item>1f1e6,1f1e9</item>
- <item>1f1e6,1f1ea</item>
- <item>1f1e6,1f1eb</item>
- <item>1f1e6,1f1ec</item>
- <item>1f1e6,1f1ee</item>
- <item>1f1e6,1f1f1</item>
- <item>1f1e6,1f1f2</item>
- <item>1f1e6,1f1f4</item>
- <item>1f1e6,1f1f6</item>
- <item>1f1e6,1f1f7</item>
- <item>1f1e6,1f1f8</item>
- <item>1f1e6,1f1f9</item>
- <item>1f1e6,1f1fa</item>
- <item>1f1e6,1f1fc</item>
- <item>1f1e6,1f1fd</item>
- <item>1f1e6,1f1ff</item>
- <item>1f1e7,1f1e6</item>
- <item>1f1e7,1f1e7</item>
- <item>1f1e7,1f1e9</item>
- <item>1f1e7,1f1ea</item>
- <item>1f1e7,1f1eb</item>
- <item>1f1e7,1f1ec</item>
- <item>1f1e7,1f1ed</item>
- <item>1f1e7,1f1ee</item>
- <item>1f1e7,1f1ef</item>
- <item>1f1e7,1f1f1</item>
- <item>1f1e7,1f1f2</item>
- <item>1f1e7,1f1f3</item>
- <item>1f1e7,1f1f4</item>
- <item>1f1e7,1f1f6</item>
- <item>1f1e7,1f1f7</item>
- <item>1f1e7,1f1f8</item>
- <item>1f1e7,1f1f9</item>
- <item>1f1e7,1f1fb</item>
- <item>1f1e7,1f1fc</item>
- <item>1f1e7,1f1fe</item>
- <item>1f1e7,1f1ff</item>
- <item>1f1e8,1f1e6</item>
- <item>1f1e8,1f1e8</item>
- <item>1f1e8,1f1e9</item>
- <item>1f1e8,1f1eb</item>
- <item>1f1e8,1f1ec</item>
- <item>1f1e8,1f1ed</item>
- <item>1f1e8,1f1ee</item>
- <item>1f1e8,1f1f0</item>
- <item>1f1e8,1f1f1</item>
- <item>1f1e8,1f1f2</item>
- <item>1f1e8,1f1f3</item>
- <item>1f1e8,1f1f4</item>
- <item>1f1e8,1f1f5</item>
- <item>1f1e8,1f1f7</item>
- <item>1f1e8,1f1fa</item>
- <item>1f1e8,1f1fb</item>
- <item>1f1e8,1f1fc</item>
- <item>1f1e8,1f1fd</item>
- <item>1f1e8,1f1fe</item>
- <item>1f1e8,1f1ff</item>
- <item>1f1e9,1f1ea</item>
- <item>1f1e9,1f1ec</item>
- <item>1f1e9,1f1ef</item>
- <item>1f1e9,1f1f0</item>
- <item>1f1e9,1f1f2</item>
- <item>1f1e9,1f1f4</item>
- <item>1f1e9,1f1ff</item>
- <item>1f1ea,1f1e6</item>
- <item>1f1ea,1f1e8</item>
- <item>1f1ea,1f1ea</item>
- <item>1f1ea,1f1ec</item>
- <item>1f1ea,1f1ed</item>
- <item>1f1ea,1f1f7</item>
- <item>1f1ea,1f1f8</item>
- <item>1f1ea,1f1f9</item>
- <item>1f1ea,1f1fa</item>
- <item>1f1eb,1f1ee</item>
- <item>1f1eb,1f1ef</item>
- <item>1f1eb,1f1f0</item>
- <item>1f1eb,1f1f2</item>
- <item>1f1eb,1f1f4</item>
- <item>1f1eb,1f1f7</item>
- <item>1f1ec,1f1e6</item>
- <item>1f1ec,1f1e7</item>
- <item>1f1ec,1f1e9</item>
- <item>1f1ec,1f1ea</item>
- <item>1f1ec,1f1eb</item>
- <item>1f1ec,1f1ec</item>
- <item>1f1ec,1f1ed</item>
- <item>1f1ec,1f1ee</item>
- <item>1f1ec,1f1f1</item>
- <item>1f1ec,1f1f2</item>
- <item>1f1ec,1f1f3</item>
- <item>1f1ec,1f1f5</item>
- <item>1f1ec,1f1f6</item>
- <item>1f1ec,1f1f7</item>
- <item>1f1ec,1f1f8</item>
- <item>1f1ec,1f1f9</item>
- <item>1f1ec,1f1fa</item>
- <item>1f1ec,1f1fc</item>
- <item>1f1ec,1f1fe</item>
- <item>1f1ed,1f1f0</item>
- <item>1f1ed,1f1f2</item>
- <item>1f1ed,1f1f3</item>
- <item>1f1ed,1f1f7</item>
- <item>1f1ed,1f1f9</item>
- <item>1f1ed,1f1fa</item>
- <item>1f1ee,1f1e8</item>
- <item>1f1ee,1f1e9</item>
- <item>1f1ee,1f1ea</item>
- <item>1f1ee,1f1f1</item>
- <item>1f1ee,1f1f2</item>
- <item>1f1ee,1f1f3</item>
- <item>1f1ee,1f1f4</item>
- <item>1f1ee,1f1f6</item>
- <item>1f1ee,1f1f7</item>
- <item>1f1ee,1f1f8</item>
- <item>1f1ee,1f1f9</item>
- <item>1f1ef,1f1ea</item>
- <item>1f1ef,1f1f2</item>
- <item>1f1ef,1f1f4</item>
- <item>1f1ef,1f1f5</item>
- <item>1f1f0,1f1ea</item>
- <item>1f1f0,1f1ec</item>
- <item>1f1f0,1f1ed</item>
- <item>1f1f0,1f1ee</item>
- <item>1f1f0,1f1f2</item>
- <item>1f1f0,1f1f3</item>
- <item>1f1f0,1f1f5</item>
- <item>1f1f0,1f1f7</item>
- <item>1f1f0,1f1fc</item>
- <item>1f1f0,1f1fe</item>
- <item>1f1f0,1f1ff</item>
- <item>1f1f1,1f1e6</item>
- <item>1f1f1,1f1e7</item>
- <item>1f1f1,1f1e8</item>
- <item>1f1f1,1f1ee</item>
- <item>1f1f1,1f1f0</item>
- <item>1f1f1,1f1f7</item>
- <item>1f1f1,1f1f8</item>
- <item>1f1f1,1f1f9</item>
- <item>1f1f1,1f1fa</item>
- <item>1f1f1,1f1fb</item>
- <item>1f1f1,1f1fe</item>
- <item>1f1f2,1f1e6</item>
- <item>1f1f2,1f1e8</item>
- <item>1f1f2,1f1e9</item>
- <item>1f1f2,1f1ea</item>
- <item>1f1f2,1f1eb</item>
- <item>1f1f2,1f1ec</item>
- <item>1f1f2,1f1ed</item>
- <item>1f1f2,1f1f0</item>
- <item>1f1f2,1f1f1</item>
- <item>1f1f2,1f1f2</item>
- <item>1f1f2,1f1f3</item>
- <item>1f1f2,1f1f4</item>
- <item>1f1f2,1f1f5</item>
- <item>1f1f2,1f1f6</item>
- <item>1f1f2,1f1f7</item>
- <item>1f1f2,1f1f8</item>
- <item>1f1f2,1f1f9</item>
- <item>1f1f2,1f1fa</item>
- <item>1f1f2,1f1fb</item>
- <item>1f1f2,1f1fc</item>
- <item>1f1f2,1f1fd</item>
- <item>1f1f2,1f1fe</item>
- <item>1f1f2,1f1ff</item>
- <item>1f1f3,1f1e6</item>
- <item>1f1f3,1f1e8</item>
- <item>1f1f3,1f1ea</item>
- <item>1f1f3,1f1eb</item>
- <item>1f1f3,1f1ec</item>
- <item>1f1f3,1f1ee</item>
- <item>1f1f3,1f1f1</item>
- <item>1f1f3,1f1f4</item>
- <item>1f1f3,1f1f5</item>
- <item>1f1f3,1f1f7</item>
- <item>1f1f3,1f1fa</item>
- <item>1f1f3,1f1ff</item>
- <item>1f1f4,1f1f2</item>
- <item>1f1f5,1f1e6</item>
- <item>1f1f5,1f1ea</item>
- <item>1f1f5,1f1eb</item>
- <item>1f1f5,1f1ec</item>
- <item>1f1f5,1f1ed</item>
- <item>1f1f5,1f1f0</item>
- <item>1f1f5,1f1f1</item>
- <item>1f1f5,1f1f2</item>
- <item>1f1f5,1f1f3</item>
- <item>1f1f5,1f1f7</item>
- <item>1f1f5,1f1f8</item>
- <item>1f1f5,1f1f9</item>
- <item>1f1f5,1f1fc</item>
- <item>1f1f5,1f1fe</item>
- <item>1f1f6,1f1e6</item>
- <item>1f1f7,1f1ea</item>
- <item>1f1f7,1f1f4</item>
- <item>1f1f7,1f1f8</item>
- <item>1f1f7,1f1fa</item>
- <item>1f1f7,1f1fc</item>
- <item>1f1f8,1f1e6</item>
- <item>1f1f8,1f1e7</item>
- <item>1f1f8,1f1e8</item>
- <item>1f1f8,1f1e9</item>
- <item>1f1f8,1f1ea</item>
- <item>1f1f8,1f1ec</item>
- <item>1f1f8,1f1ed</item>
- <item>1f1f8,1f1ee</item>
- <item>1f1f8,1f1ef</item>
- <item>1f1f8,1f1f0</item>
- <item>1f1f8,1f1f1</item>
- <item>1f1f8,1f1f2</item>
- <item>1f1f8,1f1f3</item>
- <item>1f1f8,1f1f4</item>
- <item>1f1f8,1f1f7</item>
- <item>1f1f8,1f1f8</item>
- <item>1f1f8,1f1f9</item>
- <item>1f1f8,1f1fb</item>
- <item>1f1f8,1f1fd</item>
- <item>1f1f8,1f1fe</item>
- <item>1f1f8,1f1ff</item>
- <item>1f1f9,1f1e6</item>
- <item>1f1f9,1f1e8</item>
- <item>1f1f9,1f1e9</item>
- <item>1f1f9,1f1eb</item>
- <item>1f1f9,1f1ec</item>
- <item>1f1f9,1f1ed</item>
- <item>1f1f9,1f1ef</item>
- <item>1f1f9,1f1f0</item>
- <item>1f1f9,1f1f1</item>
- <item>1f1f9,1f1f2</item>
- <item>1f1f9,1f1f3</item>
- <item>1f1f9,1f1f4</item>
- <item>1f1f9,1f1f7</item>
- <item>1f1f9,1f1f9</item>
- <item>1f1f9,1f1fb</item>
- <item>1f1f9,1f1fc</item>
- <item>1f1f9,1f1ff</item>
- <item>1f1fa,1f1e6</item>
- <item>1f1fa,1f1ec</item>
- <item>1f1fa,1f1f2</item>
- <item>1f1fa,1f1f8</item>
- <item>1f1fa,1f1fe</item>
- <item>1f1fa,1f1ff</item>
- <item>1f1fb,1f1e6</item>
- <item>1f1fb,1f1e8</item>
- <item>1f1fb,1f1ea</item>
- <item>1f1fb,1f1ec</item>
- <item>1f1fb,1f1ee</item>
- <item>1f1fb,1f1f3</item>
- <item>1f1fb,1f1fa</item>
- <item>1f1fc,1f1eb</item>
- <item>1f1fc,1f1f8</item>
- <item>1f1fd,1f1f0</item>
- <item>1f1fe,1f1ea</item>
- <item>1f1fe,1f1f9</item>
- <item>1f1ff,1f1e6</item>
- <item>1f1ff,1f1f2</item>
- <item>1f1ff,1f1fc</item>
+ <!-- flag -->
+ <item>1F3C1</item>
+ <item>1F6A9</item>
+ <item>1F38C</item>
+ <item>1F3F4</item>
+ <item>1F3F3</item>
+ <item>1F3F3,FE0F,200D,1F308</item>
+ <item>1F3F3,FE0F,200D,26A7,FE0F</item>
+ <item>1F3F4,200D,2620,FE0F</item>
+ <!-- country-flag -->
+ <item>1F1E6,1F1E8</item>
+ <item>1F1E6,1F1E9</item>
+ <item>1F1E6,1F1EA</item>
+ <item>1F1E6,1F1EB</item>
+ <item>1F1E6,1F1EC</item>
+ <item>1F1E6,1F1EE</item>
+ <item>1F1E6,1F1F1</item>
+ <item>1F1E6,1F1F2</item>
+ <item>1F1E6,1F1F4</item>
+ <item>1F1E6,1F1F6</item>
+ <item>1F1E6,1F1F7</item>
+ <item>1F1E6,1F1F8</item>
+ <item>1F1E6,1F1F9</item>
+ <item>1F1E6,1F1FA</item>
+ <item>1F1E6,1F1FC</item>
+ <item>1F1E6,1F1FD</item>
+ <item>1F1E6,1F1FF</item>
+ <item>1F1E7,1F1E6</item>
+ <item>1F1E7,1F1E7</item>
+ <item>1F1E7,1F1E9</item>
+ <item>1F1E7,1F1EA</item>
+ <item>1F1E7,1F1EB</item>
+ <item>1F1E7,1F1EC</item>
+ <item>1F1E7,1F1ED</item>
+ <item>1F1E7,1F1EE</item>
+ <item>1F1E7,1F1EF</item>
+ <item>1F1E7,1F1F1</item>
+ <item>1F1E7,1F1F2</item>
+ <item>1F1E7,1F1F3</item>
+ <item>1F1E7,1F1F4</item>
+ <item>1F1E7,1F1F6</item>
+ <item>1F1E7,1F1F7</item>
+ <item>1F1E7,1F1F8</item>
+ <item>1F1E7,1F1F9</item>
+ <item>1F1E7,1F1FB</item>
+ <item>1F1E7,1F1FC</item>
+ <item>1F1E7,1F1FE</item>
+ <item>1F1E7,1F1FF</item>
+ <item>1F1E8,1F1E6</item>
+ <item>1F1E8,1F1E8</item>
+ <item>1F1E8,1F1E9</item>
+ <item>1F1E8,1F1EB</item>
+ <item>1F1E8,1F1EC</item>
+ <item>1F1E8,1F1ED</item>
+ <item>1F1E8,1F1EE</item>
+ <item>1F1E8,1F1F0</item>
+ <item>1F1E8,1F1F1</item>
+ <item>1F1E8,1F1F2</item>
+ <item>1F1E8,1F1F3</item>
+ <item>1F1E8,1F1F4</item>
+ <item>1F1E8,1F1F5</item>
+ <item>1F1E8,1F1F7</item>
+ <item>1F1E8,1F1FA</item>
+ <item>1F1E8,1F1FB</item>
+ <item>1F1E8,1F1FC</item>
+ <item>1F1E8,1F1FD</item>
+ <item>1F1E8,1F1FE</item>
+ <item>1F1E8,1F1FF</item>
+ <item>1F1E9,1F1EA</item>
+ <item>1F1E9,1F1EC</item>
+ <item>1F1E9,1F1EF</item>
+ <item>1F1E9,1F1F0</item>
+ <item>1F1E9,1F1F2</item>
+ <item>1F1E9,1F1F4</item>
+ <item>1F1E9,1F1FF</item>
+ <item>1F1EA,1F1E6</item>
+ <item>1F1EA,1F1E8</item>
+ <item>1F1EA,1F1EA</item>
+ <item>1F1EA,1F1EC</item>
+ <item>1F1EA,1F1ED</item>
+ <item>1F1EA,1F1F7</item>
+ <item>1F1EA,1F1F8</item>
+ <item>1F1EA,1F1F9</item>
+ <item>1F1EA,1F1FA</item>
+ <item>1F1EB,1F1EE</item>
+ <item>1F1EB,1F1EF</item>
+ <item>1F1EB,1F1F0</item>
+ <item>1F1EB,1F1F2</item>
+ <item>1F1EB,1F1F4</item>
+ <item>1F1EB,1F1F7</item>
+ <item>1F1EC,1F1E6</item>
+ <item>1F1EC,1F1E7</item>
+ <item>1F1EC,1F1E9</item>
+ <item>1F1EC,1F1EA</item>
+ <item>1F1EC,1F1EB</item>
+ <item>1F1EC,1F1EC</item>
+ <item>1F1EC,1F1ED</item>
+ <item>1F1EC,1F1EE</item>
+ <item>1F1EC,1F1F1</item>
+ <item>1F1EC,1F1F2</item>
+ <item>1F1EC,1F1F3</item>
+ <item>1F1EC,1F1F5</item>
+ <item>1F1EC,1F1F6</item>
+ <item>1F1EC,1F1F7</item>
+ <item>1F1EC,1F1F8</item>
+ <item>1F1EC,1F1F9</item>
+ <item>1F1EC,1F1FA</item>
+ <item>1F1EC,1F1FC</item>
+ <item>1F1EC,1F1FE</item>
+ <item>1F1ED,1F1F0</item>
+ <item>1F1ED,1F1F2</item>
+ <item>1F1ED,1F1F3</item>
+ <item>1F1ED,1F1F7</item>
+ <item>1F1ED,1F1F9</item>
+ <item>1F1ED,1F1FA</item>
+ <item>1F1EE,1F1E8</item>
+ <item>1F1EE,1F1E9</item>
+ <item>1F1EE,1F1EA</item>
+ <item>1F1EE,1F1F1</item>
+ <item>1F1EE,1F1F2</item>
+ <item>1F1EE,1F1F3</item>
+ <item>1F1EE,1F1F4</item>
+ <item>1F1EE,1F1F6</item>
+ <item>1F1EE,1F1F7</item>
+ <item>1F1EE,1F1F8</item>
+ <item>1F1EE,1F1F9</item>
+ <item>1F1EF,1F1EA</item>
+ <item>1F1EF,1F1F2</item>
+ <item>1F1EF,1F1F4</item>
+ <item>1F1EF,1F1F5</item>
+ <item>1F1F0,1F1EA</item>
+ <item>1F1F0,1F1EC</item>
+ <item>1F1F0,1F1ED</item>
+ <item>1F1F0,1F1EE</item>
+ <item>1F1F0,1F1F2</item>
+ <item>1F1F0,1F1F3</item>
+ <item>1F1F0,1F1F5</item>
+ <item>1F1F0,1F1F7</item>
+ <item>1F1F0,1F1FC</item>
+ <item>1F1F0,1F1FE</item>
+ <item>1F1F0,1F1FF</item>
+ <item>1F1F1,1F1E6</item>
+ <item>1F1F1,1F1E7</item>
+ <item>1F1F1,1F1E8</item>
+ <item>1F1F1,1F1EE</item>
+ <item>1F1F1,1F1F0</item>
+ <item>1F1F1,1F1F7</item>
+ <item>1F1F1,1F1F8</item>
+ <item>1F1F1,1F1F9</item>
+ <item>1F1F1,1F1FA</item>
+ <item>1F1F1,1F1FB</item>
+ <item>1F1F1,1F1FE</item>
+ <item>1F1F2,1F1E6</item>
+ <item>1F1F2,1F1E8</item>
+ <item>1F1F2,1F1E9</item>
+ <item>1F1F2,1F1EA</item>
+ <item>1F1F2,1F1EB</item>
+ <item>1F1F2,1F1EC</item>
+ <item>1F1F2,1F1ED</item>
+ <item>1F1F2,1F1F0</item>
+ <item>1F1F2,1F1F1</item>
+ <item>1F1F2,1F1F2</item>
+ <item>1F1F2,1F1F3</item>
+ <item>1F1F2,1F1F4</item>
+ <item>1F1F2,1F1F5</item>
+ <item>1F1F2,1F1F6</item>
+ <item>1F1F2,1F1F7</item>
+ <item>1F1F2,1F1F8</item>
+ <item>1F1F2,1F1F9</item>
+ <item>1F1F2,1F1FA</item>
+ <item>1F1F2,1F1FB</item>
+ <item>1F1F2,1F1FC</item>
+ <item>1F1F2,1F1FD</item>
+ <item>1F1F2,1F1FE</item>
+ <item>1F1F2,1F1FF</item>
+ <item>1F1F3,1F1E6</item>
+ <item>1F1F3,1F1E8</item>
+ <item>1F1F3,1F1EA</item>
+ <item>1F1F3,1F1EB</item>
+ <item>1F1F3,1F1EC</item>
+ <item>1F1F3,1F1EE</item>
+ <item>1F1F3,1F1F1</item>
+ <item>1F1F3,1F1F4</item>
+ <item>1F1F3,1F1F5</item>
+ <item>1F1F3,1F1F7</item>
+ <item>1F1F3,1F1FA</item>
+ <item>1F1F3,1F1FF</item>
+ <item>1F1F4,1F1F2</item>
+ <item>1F1F5,1F1E6</item>
+ <item>1F1F5,1F1EA</item>
+ <item>1F1F5,1F1EB</item>
+ <item>1F1F5,1F1EC</item>
+ <item>1F1F5,1F1ED</item>
+ <item>1F1F5,1F1F0</item>
+ <item>1F1F5,1F1F1</item>
+ <item>1F1F5,1F1F2</item>
+ <item>1F1F5,1F1F3</item>
+ <item>1F1F5,1F1F7</item>
+ <item>1F1F5,1F1F8</item>
+ <item>1F1F5,1F1F9</item>
+ <item>1F1F5,1F1FC</item>
+ <item>1F1F5,1F1FE</item>
+ <item>1F1F6,1F1E6</item>
+ <item>1F1F7,1F1EA</item>
+ <item>1F1F7,1F1F4</item>
+ <item>1F1F7,1F1F8</item>
+ <item>1F1F7,1F1FA</item>
+ <item>1F1F7,1F1FC</item>
+ <item>1F1F8,1F1E6</item>
+ <item>1F1F8,1F1E7</item>
+ <item>1F1F8,1F1E8</item>
+ <item>1F1F8,1F1E9</item>
+ <item>1F1F8,1F1EA</item>
+ <item>1F1F8,1F1EC</item>
+ <item>1F1F8,1F1ED</item>
+ <item>1F1F8,1F1EE</item>
+ <item>1F1F8,1F1EF</item>
+ <item>1F1F8,1F1F0</item>
+ <item>1F1F8,1F1F1</item>
+ <item>1F1F8,1F1F2</item>
+ <item>1F1F8,1F1F3</item>
+ <item>1F1F8,1F1F4</item>
+ <item>1F1F8,1F1F7</item>
+ <item>1F1F8,1F1F8</item>
+ <item>1F1F8,1F1F9</item>
+ <item>1F1F8,1F1FB</item>
+ <item>1F1F8,1F1FD</item>
+ <item>1F1F8,1F1FE</item>
+ <item>1F1F8,1F1FF</item>
+ <item>1F1F9,1F1E6</item>
+ <item>1F1F9,1F1E8</item>
+ <item>1F1F9,1F1E9</item>
+ <item>1F1F9,1F1EB</item>
+ <item>1F1F9,1F1EC</item>
+ <item>1F1F9,1F1ED</item>
+ <item>1F1F9,1F1EF</item>
+ <item>1F1F9,1F1F0</item>
+ <item>1F1F9,1F1F1</item>
+ <item>1F1F9,1F1F2</item>
+ <item>1F1F9,1F1F3</item>
+ <item>1F1F9,1F1F4</item>
+ <item>1F1F9,1F1F7</item>
+ <item>1F1F9,1F1F9</item>
+ <item>1F1F9,1F1FB</item>
+ <item>1F1F9,1F1FC</item>
+ <item>1F1F9,1F1FF</item>
+ <item>1F1FA,1F1E6</item>
+ <item>1F1FA,1F1EC</item>
+ <item>1F1FA,1F1F2</item>
+ <item>1F1FA,1F1F3</item>
+ <item>1F1FA,1F1F8</item>
+ <item>1F1FA,1F1FE</item>
+ <item>1F1FA,1F1FF</item>
+ <item>1F1FB,1F1E6</item>
+ <item>1F1FB,1F1E8</item>
+ <item>1F1FB,1F1EA</item>
+ <item>1F1FB,1F1EC</item>
+ <item>1F1FB,1F1EE</item>
+ <item>1F1FB,1F1F3</item>
+ <item>1F1FB,1F1FA</item>
+ <item>1F1FC,1F1EB</item>
+ <item>1F1FC,1F1F8</item>
+ <item>1F1FD,1F1F0</item>
+ <item>1F1FE,1F1EA</item>
+ <item>1F1FE,1F1F9</item>
+ <item>1F1FF,1F1E6</item>
+ <item>1F1FF,1F1F2</item>
+ <item>1F1FF,1F1FC</item>
+ <!-- subdivision-flag -->
+ <item>1F3F4,E0067,E0062,E0065,E006E,E0067,E007F</item>
+ <item>1F3F4,E0067,E0062,E0073,E0063,E0074,E007F</item>
+ <item>1F3F4,E0067,E0062,E0077,E006C,E0073,E007F</item>
</array>
</resources>
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 8ff5a87..69a5d59 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -59,6 +59,8 @@
<attr name="spacebarIconWidthRatio" format="float" />
<!-- Right padding of hint letter to the edge of the key.-->
<attr name="keyHintLetterPadding" format="dimension" />
+ <!-- Top padding of hint letter to the edge of the key.-->
+ <attr name="keyHintLetterPaddingVertical" format="dimension" />
<!-- Popup hint letter string-->
<attr name="keyPopupHintLetter" format="string" />
<!-- Bottom padding of popup hint letter to the edge of the key.-->
@@ -238,6 +240,7 @@
<enum name="KLP" value="2" />
<enum name="LXXLight" value="3" />
<enum name="LXXDark" value="4" />
+ <enum name="You" value="6" />
</attr>
<!-- Touch position correction -->
<attr name="touchPositionCorrectionData" format="reference" />
@@ -482,6 +485,7 @@
<enum name="KLP" value="2" />
<enum name="LXXLight" value="3" />
<enum name="LXXDark" value="4" />
+ <enum name="You" value="6" />
</attr>
<!-- This should be aligned with
{@link com.android.inputmethod.keyboard.KeyboardId#MODE_TEXT} etc. -->
diff --git a/java/res/values/cm_strings.xml b/java/res/values/cm_strings.xml
new file mode 100644
index 0000000..dc8b02f
--- /dev/null
+++ b/java/res/values/cm_strings.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 The CyanogenMod Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- This string is displayed in the description for a keyboard type. It refers specifically to
+the Latin alphabet, as opposed to Cyrillic, Arabic, Hebrew or other scripts.
+When the device is configured to use a language using a script other than the Latin alphabet, the
+user still needs a keyboard that can input Latin characters for passwords or login names for
+example, and a way to switch to this Latin alphabet keyboard. This string is the description for
+this keyboard, so users of other scripts should understand when they read this that it represents a
+keyboard that is meant for them to be able to enter Latin characters as opposed to the script they
+are used to. This keyboard does not provide a dictionary, and it is not tied to any specific
+language among those that use the Latin alphabet. This keyboard is laid out in the Bépo
+disposition rather than other common dispositions for Latin languages. [CHAR LIMIT=25] -->
+ <string name="keyboard_theme_material_follow_system">Material - follow system settings</string>
+
+ <!-- Title of the settings for setting keyboard height -->
+ <string name="prefs_keyboard_height_scale">Keyboard height scale</string>
+</resources>
diff --git a/java/res/values/colors.xml b/java/res/values/colors.xml
index 5453d51..03619d2 100644
--- a/java/res/values/colors.xml
+++ b/java/res/values/colors.xml
@@ -19,27 +19,6 @@
-->
<resources xmlns:android="http://schemas.android.com/apk/res/android">
- <!-- Color resources for IceCreamSandwich theme. Base color = 33B5E5 -->
- <!-- android:color/holo_blue_light value is #FF33B5E5 -->
- <color name="highlight_color_ics">#FF33B5E5</color>
- <color name="typed_word_color_ics">#D833B5E5</color>
- <color name="suggested_word_color_ics">#B233B5E5</color>
- <color name="highlight_translucent_color_ics">#9933B5E5</color>
- <color name="key_text_color_holo">@android:color/white</color>
- <color name="key_text_inactivated_color_holo">#66E0E4E5</color>
- <color name="key_hint_letter_color_holo">#80000000</color>
- <color name="key_hint_label_color_holo">#A0FFFFFF</color>
- <color name="key_shifted_letter_hint_inactivated_color_holo">#66E0E4E5</color>
- <color name="key_shifted_letter_hint_activated_color_holo">@android:color/white</color>
- <color name="spacebar_text_color_holo">#FFC0C0C0</color>
- <color name="spacebar_text_shadow_color_holo">#80000000</color>
- <color name="gesture_floating_preview_color_holo">#C0000000</color>
- <color name="emoji_tab_page_indicator_background_holo">#111111</color>
- <!-- Color resources for KLP theme. Base color = F0F0F0 -->
- <color name="highlight_color_klp">#FFF0F0F0</color>
- <color name="typed_word_color_klp">#D8F0F0F0</color>
- <color name="suggested_word_color_klp">#B2F0F0F0</color>
- <color name="highlight_translucent_color_klp">#99E0E0E0</color>
<!-- Color resources for LXX_Light theme.
15%:0x26 70%:0xB3 75%:0xC0 80%:0xCC 85%:0xD9 90%:0xE6 -->
<color name="key_text_color_lxx_light">#37474F</color>
diff --git a/java/res/values/config.xml b/java/res/values/config.xml
index 33bcb06..5184a75 100644
--- a/java/res/values/config.xml
+++ b/java/res/values/config.xml
@@ -38,6 +38,7 @@
<fraction name="config_keyboard_top_padding_holo">2.335%p</fraction>
<fraction name="config_keyboard_bottom_padding_holo">4.669%p</fraction>
+ <fraction name="config_key_vertical_gap_you">3.5%p</fraction>
<fraction name="config_key_vertical_gap_holo">6.127%p</fraction>
<fraction name="config_key_horizontal_gap_holo">1.739%p</fraction>
<!-- config_more_keys_keyboard_key_height x -0.5 -->
@@ -46,9 +47,13 @@
<dimen name="config_key_preview_height_holo">80dp</dimen>
<dimen name="config_key_preview_offset_lxx">50.0dp</dimen>
<dimen name="config_key_preview_height_lxx">122dp</dimen>
+ <dimen name="config_key_preview_offset_you">10.0dp</dimen>
+ <dimen name="config_key_preview_height_you">60dp</dimen>
<fraction name="config_key_preview_text_ratio">82%</fraction>
+ <fraction name="config_key_preview_text_ratio_you">70%</fraction>
<fraction name="config_key_letter_ratio_holo">55%</fraction>
<fraction name="config_key_letter_ratio_lxx">55%</fraction>
+ <fraction name="config_key_letter_ratio_you">52%</fraction>
<fraction name="config_key_large_letter_ratio_holo">65%</fraction>
<fraction name="config_key_large_letter_ratio_lxx">90%</fraction>
<fraction name="config_key_label_ratio_holo">34%</fraction>
@@ -61,6 +66,9 @@
<fraction name="config_key_shifted_letter_hint_ratio_lxx">35%</fraction>
<fraction name="config_language_on_spacebar_text_ratio">33.735%</fraction>
<dimen name="config_key_hint_letter_padding">1dp</dimen>
+ <dimen name="config_key_hint_letter_padding_vertical">0dp</dimen>
+ <dimen name="config_key_hint_letter_padding_you">3dp</dimen>
+ <dimen name="config_key_hint_letter_padding_vertical_you">1.5dp</dimen>
<dimen name="config_key_shifted_letter_hint_padding">2dp</dimen>
<!-- For 5-row keyboard -->
@@ -87,10 +95,10 @@
<dimen name="config_gesture_floating_preview_round_radius">2dp</dimen>
<!-- Emoji keyboard -->
- <fraction name="config_emoji_keyboard_key_width">14.2857%p</fraction>
- <fraction name="config_emoji_keyboard_row_height">33%p</fraction>
+ <fraction name="config_emoji_keyboard_key_width">16.666%p</fraction>
+ <fraction name="config_emoji_keyboard_row_height">25%p</fraction>
<fraction name="config_emoji_keyboard_key_letter_size">68%p</fraction>
- <integer name="config_emoji_keyboard_max_page_key_count">21</integer>
+ <integer name="config_emoji_keyboard_max_page_key_count">24</integer>
<!-- Key codes of hardware keys that can be used to toggle the Emoji layout.
Each array defines a comma-separated tuple containing:
diff --git a/java/res/values/donottranslate-debug-settings.xml b/java/res/values/donottranslate-debug-settings.xml
index 9df73ae..a875c03 100644
--- a/java/res/values/donottranslate-debug-settings.xml
+++ b/java/res/values/donottranslate-debug-settings.xml
@@ -43,8 +43,6 @@
<string name="prefs_key_popup_dismiss_end_y_scale_settings">Key popup dismiss end Y scale</string>
<!-- Title of the settings to enable keyboard resizing -->
<string name="prefs_resize_keyboard">Enable keyboard resizing</string>
- <!-- Title of the settings for setting keyboard height -->
- <string name="prefs_keyboard_height_scale">Keyboard height scale</string>
<!-- Title of the settings group for dumpping dictionary files that have been created on the device [CHAR LIMIT=35] -->
<string name="prefs_dump_dynamic_dicts">Dump dictionary</string>
</resources>
diff --git a/java/res/values/keyboard-icons-holo.xml b/java/res/values/keyboard-icons-you-dark.xml
similarity index 60%
rename from java/res/values/keyboard-icons-holo.xml
rename to java/res/values/keyboard-icons-you-dark.xml
index f5484bf..7eee05f 100644
--- a/java/res/values/keyboard-icons-holo.xml
+++ b/java/res/values/keyboard-icons-you-dark.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2013, The Android Open Source Project
+** Copyright 2014, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@@ -19,23 +19,28 @@
-->
<resources xmlns:android="http://schemas.android.com/apk/res/android">
- <style name="KeyboardIcons.Holo">
+ <style name="KeyboardIcons.You">
<!-- Keyboard icons -->
- <item name="iconShiftKey">@drawable/sym_keyboard_shift_holo_dark</item>
- <item name="iconDeleteKey">@drawable/sym_keyboard_delete_holo_dark</item>
- <item name="iconSettingsKey">@drawable/sym_keyboard_settings_holo_dark</item>
+ <item name="iconShiftKey">@drawable/sym_keyboard_shift_you</item>
+ <item name="iconDeleteKey">@drawable/sym_keyboard_delete_you</item>
+ <item name="iconSettingsKey">@drawable/sym_keyboard_settings_you</item>
<item name="iconSpaceKey">@null</item>
- <item name="iconEnterKey">@drawable/sym_keyboard_return_holo_dark</item>
- <item name="iconSearchKey">@drawable/sym_keyboard_search_holo_dark</item>
- <item name="iconTabKey">@drawable/sym_keyboard_tab_holo_dark</item>
- <item name="iconShortcutKey">@drawable/sym_keyboard_voice_holo_dark</item>
- <item name="iconSpaceKeyForNumberLayout">@drawable/sym_keyboard_space_holo_dark</item>
- <item name="iconShiftKeyShifted">@drawable/sym_keyboard_shift_locked_holo_dark</item>
- <item name="iconShortcutKeyDisabled">@drawable/sym_keyboard_voice_off_holo_dark</item>
- <item name="iconLanguageSwitchKey">@drawable/sym_keyboard_language_switch_dark</item>
- <item name="iconZwnjKey">@drawable/sym_keyboard_zwnj_holo_dark</item>
- <item name="iconZwjKey">@drawable/sym_keyboard_zwj_holo_dark</item>
- <item name="iconEmojiActionKey">@drawable/sym_keyboard_smiley_holo_dark</item>
- <item name="iconEmojiNormalKey">@drawable/sym_keyboard_smiley_holo_dark</item>
+ <item name="iconEnterKey">@drawable/sym_keyboard_return_you</item>
+ <item name="iconGoKey">@drawable/sym_keyboard_next_you</item>
+ <item name="iconSearchKey">@drawable/sym_keyboard_search_you</item>
+ <item name="iconSendKey">@drawable/sym_keyboard_send_you</item>
+ <item name="iconNextKey">@drawable/sym_keyboard_next_you</item>
+ <item name="iconDoneKey">@drawable/sym_keyboard_done_you</item>
+ <item name="iconPreviousKey">@drawable/sym_keyboard_previous_you</item>
+ <item name="iconTabKey">@drawable/sym_keyboard_tab_you</item>
+ <item name="iconShortcutKey">@drawable/sym_keyboard_voice_you</item>
+ <item name="iconSpaceKeyForNumberLayout">@drawable/sym_keyboard_space_lxx_dark</item>
+ <item name="iconShiftKeyShifted">@drawable/sym_keyboard_shift_locked_you</item>
+ <item name="iconShortcutKeyDisabled">@drawable/sym_keyboard_voice_off_you</item>
+ <item name="iconLanguageSwitchKey">@drawable/sym_keyboard_language_switch_you</item>
+ <item name="iconZwnjKey">@drawable/sym_keyboard_zwnj_lxx_dark</item>
+ <item name="iconZwjKey">@drawable/sym_keyboard_zwj_lxx_dark</item>
+ <item name="iconEmojiActionKey">@drawable/sym_keyboard_smiley_you</item>
+ <item name="iconEmojiNormalKey">@drawable/sym_keyboard_smiley_you</item>
</style>
</resources>
diff --git a/java/res/values/keyboard-themes.xml b/java/res/values/keyboard-themes.xml
index 26b2582..2932200 100644
--- a/java/res/values/keyboard-themes.xml
+++ b/java/res/values/keyboard-themes.xml
@@ -22,15 +22,15 @@
<string-array name="keyboard_theme_names" translatable="false">
<item>@string/keyboard_theme_material_light</item>
<item>@string/keyboard_theme_material_dark</item>
- <item>@string/keyboard_theme_holo_white</item>
- <item>@string/keyboard_theme_holo_blue</item>
+ <item>@string/keyboard_theme_material_follow_system</item>
+ <item>@string/keyboard_theme_material_you</item>
</string-array>
<!-- An element must be a keyboard theme id of
{@link com.android.inputmethod.keyboard.KeyboardTheme#THEME_ID_ICS} etc. -->
<integer-array name="keyboard_theme_ids" translatable="false">
<item>3</item>
<item>4</item>
- <item>2</item>
- <item>0</item>
+ <item>5</item>
+ <item>6</item>
</integer-array>
</resources>
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index 6b985ce..d32ee3c 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -355,6 +355,8 @@
<string name="keyboard_theme_material_dark" translatable="false">Material Dark</string>
<!-- The keyboard theme name, Material Light. This is marked as translatable="false" because this is a proper name of system-wide UI Theme. -->
<string name="keyboard_theme_material_light" translatable="false">Material Light</string>
+ <!-- The keyboard theme name, Material You. This is marked as translatable="false" because this is a proper name of system-wide UI Theme. -->
+ <string name="keyboard_theme_material_you" translatable="false">Material You</string>
<!-- Title of the preference settings for custom input styles (language and keyboard layout pairs) [CHAR LIMIT=35]-->
<string name="custom_input_styles_title">Custom input styles</string>
diff --git a/java/res/values/themes-common.xml b/java/res/values/themes-common.xml
index 2f768de..c4f6940 100644
--- a/java/res/values/themes-common.xml
+++ b/java/res/values/themes-common.xml
@@ -37,11 +37,12 @@
<style name="KeyboardView">
<!-- This keyBackground is needed to run unit tests based on {@link InputTestBase}. -->
<!-- TODO: Apply default {@link KeyboardTheme} to {@link InputTestBase} and remove this. -->
- <item name="keyBackground">@drawable/btn_keyboard_key_klp</item>
+ <item name="keyBackground">@drawable/btn_keyboard_key_lxx_light</item>
<item name="keyTypeface">normal</item>
<!-- A negative value to disable key text shadow layer. -->
<item name="keyTextShadowRadius">-1.0</item>
<item name="keyHintLetterPadding">@dimen/config_key_hint_letter_padding</item>
+ <item name="keyHintLetterPaddingVertical">@dimen/config_key_hint_letter_padding_vertical</item>
<item name="keyPopupHintLetterPadding">@dimen/config_key_popup_hint_letter_padding</item>
<item name="keyShiftedLetterHintPadding">@dimen/config_key_shifted_letter_hint_padding</item>
<item name="keyPreviewTextRatio">@fraction/config_key_preview_text_ratio</item>
diff --git a/java/res/values/themes-holo.xml b/java/res/values/themes-holo.xml
deleted file mode 100644
index efac656..0000000
--- a/java/res/values/themes-holo.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2014, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android">
- <style
- name="InputView.Holo"
- parent="InputView"
- />
- <!-- Holo KeyboardView theme (ICS and KLP) -->
- <style
- name="KeyboardView.Holo"
- parent="KeyboardView"
- >
- <item name="keyTypeface">bold</item>
- <item name="keyLetterSize">@fraction/config_key_letter_ratio_holo</item>
- <item name="keyLabelSize">@fraction/config_key_label_ratio_holo</item>
- <item name="keyHintLetterRatio">@fraction/config_key_hint_letter_ratio_holo</item>
- <item name="keyShiftedLetterHintRatio">@fraction/config_key_shifted_letter_hint_ratio_holo</item>
- <item name="keyLargeLetterRatio">@fraction/config_key_large_letter_ratio_holo</item>
- <item name="keyLabelOffCenterRatio">-175%</item>
- <item name="keyHintLabelRatio">@fraction/config_key_hint_label_ratio_holo</item>
- <item name="keyHintLabelOffCenterRatio">200%</item>
- <!-- U+2026: "…" HORIZONTAL ELLIPSIS -->
- <item name="keyPopupHintLetter">…</item>
- </style>
-</resources>
diff --git a/java/res/values/themes-ics.xml b/java/res/values/themes-ics.xml
deleted file mode 100644
index 1a15b0e..0000000
--- a/java/res/values/themes-ics.xml
+++ /dev/null
@@ -1,150 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android">
- <style name="KeyboardTheme.ICS" parent="KeyboardIcons.Holo">
- <item name="inputViewStyle">@style/InputView.Holo</item>
- <item name="keyboardStyle">@style/Keyboard.ICS</item>
- <item name="keyboardViewStyle">@style/KeyboardView.ICS</item>
- <item name="mainKeyboardViewStyle">@style/MainKeyboardView.ICS</item>
- <item name="emojiPalettesViewStyle">@style/EmojiPalettesView.ICS</item>
- <item name="moreKeysKeyboardStyle">@style/MoreKeysKeyboard.ICS</item>
- <!-- Note: ICS theme uses the same style for both general more keys and action more keys. -->
- <item name="moreKeysKeyboardViewStyle">@style/MoreKeysKeyboardView.ICS</item>
- <item name="moreKeysKeyboardViewForActionStyle">@style/MoreKeysKeyboardView.ICS</item>
- <item name="suggestionStripViewStyle">@style/SuggestionStripView.ICS</item>
- <item name="suggestionWordStyle">@style/SuggestionWord.ICS</item>
- </style>
- <style
- name="Keyboard.ICS"
- parent="Keyboard"
- >
- <!-- This should be aligned with KeyboardTheme.THEME_ID_* -->
- <item name="themeId">ICS</item>
- </style>
- <style
- name="KeyboardView.ICS"
- parent="KeyboardView.Holo"
- >
- <item name="android:background">@drawable/keyboard_background_holo</item>
- <item name="keyBackground">@drawable/btn_keyboard_key_ics</item>
- <item name="functionalKeyBackground">@drawable/btn_keyboard_key_functional_ics</item>
- <item name="spacebarBackground">@drawable/btn_keyboard_spacebar_ics</item>
- <item name="keyTextColor">@color/key_text_color_holo</item>
- <item name="keyTextInactivatedColor">@color/key_text_inactivated_color_holo</item>
- <item name="functionalTextColor">@color/key_text_color_holo</item>
- <item name="keyHintLetterColor">@color/key_hint_letter_color_holo</item>
- <item name="keyHintLabelColor">@color/key_hint_label_color_holo</item>
- <item name="keyShiftedLetterHintInactivatedColor">@color/key_shifted_letter_hint_inactivated_color_holo</item>
- <item name="keyShiftedLetterHintActivatedColor">@color/key_shifted_letter_hint_activated_color_holo</item>
- <item name="keyPreviewTextColor">@color/key_text_color_holo</item>
- </style>
- <style
- name="MainKeyboardView.ICS"
- parent="KeyboardView.ICS"
- >
- <item name="keyPreviewBackground">@drawable/keyboard_key_feedback_ics</item>
- <item name="keyPreviewHeight">@dimen/config_key_preview_height_holo</item>
- <item name="keyPreviewOffset">@dimen/config_key_preview_offset_holo</item>
- <item name="keyPreviewShowUpAnimator">@anim/key_preview_show_up_holo</item>
- <item name="keyPreviewDismissAnimator">@anim/key_preview_dismiss_holo</item>
- <item name="gestureFloatingPreviewTextColor">@color/highlight_color_ics</item>
- <item name="gestureFloatingPreviewColor">@color/gesture_floating_preview_color_holo</item>
- <item name="gestureTrailColor">@color/highlight_color_ics</item>
- <item name="slidingKeyInputPreviewColor">@color/highlight_translucent_color_ics</item>
- <item name="languageOnSpacebarTextColor">@color/spacebar_text_color_holo</item>
- <item name="languageOnSpacebarTextShadowRadius">1.0</item>
- <item name="languageOnSpacebarTextShadowColor">@color/spacebar_text_shadow_color_holo</item>
- </style>
- <!-- Though {@link com.android.inputmethod.keyboard.emoji.EmojiPalettesView} doesn't extend
- {@link com.android.inputmethod.keyboard.KeyboardView}, some views inside it, for instance
- delete button, need themed {@link com.android.inputmethod.keyboard.KeyboardView}
- attributes. -->
- <style
- name="EmojiPalettesView.ICS"
- parent="MainKeyboardView.ICS"
- >
- <item name="categoryIndicatorEnabled">true</item>
- <item name="categoryIndicatorDrawable">@drawable/emoji_category_tab_selected_ics</item>
- <item name="categoryIndicatorBackground">@drawable/emoji_category_tab_unselected_holo_dark</item>
- <item name="categoryPageIndicatorColor">@color/highlight_color_ics</item>
- <item name="categoryPageIndicatorBackground">@color/emoji_tab_page_indicator_background_holo</item>
- <item name="iconEmojiRecentsTab">@drawable/ic_emoji_recents_holo_dark</item>
- <item name="iconEmojiCategory1Tab">@drawable/ic_emoji_people_holo_dark</item>
- <item name="iconEmojiCategory2Tab">@drawable/ic_emoji_objects_holo_dark</item>
- <item name="iconEmojiCategory3Tab">@drawable/ic_emoji_nature_holo_dark</item>
- <item name="iconEmojiCategory4Tab">@drawable/ic_emoji_places_holo_dark</item>
- <item name="iconEmojiCategory5Tab">@drawable/ic_emoji_symbols_holo_dark</item>
- <item name="iconEmojiCategory6Tab">@drawable/ic_emoji_emoticons_holo_dark</item>
- <item name="iconEmojiCategory7Tab">@drawable/ic_emoji_flag_holo_dark</item>
- <item name="iconEmojiCategory8Tab">@drawable/ic_emoji_people_holo_dark</item>
- <item name="iconEmojiCategory9Tab">@drawable/ic_emoji_nature_holo_dark</item>
- <item name="iconEmojiCategory10Tab">@drawable/ic_emoji_food_holo_dark</item>
- <item name="iconEmojiCategory11Tab">@drawable/ic_emoji_places_holo_dark</item>
- <item name="iconEmojiCategory12Tab">@drawable/ic_emoji_activity_holo_dark</item>
- <item name="iconEmojiCategory13Tab">@drawable/ic_emoji_objects_holo_dark</item>
- <item name="iconEmojiCategory14Tab">@drawable/ic_emoji_symbols_holo_dark</item>
- <item name="iconEmojiCategory15Tab">@drawable/ic_emoji_flag_holo_dark</item>
- <item name="iconEmojiCategory16Tab">@drawable/ic_emoji_people_holo_dark</item>
- </style>
- <style
- name="MoreKeysKeyboard.ICS"
- parent="Keyboard.ICS"
- >
- <item name="keyboardTopPadding">0%p</item>
- <item name="keyboardBottomPadding">0%p</item>
- <item name="horizontalGap">0%p</item>
- <item name="touchPositionCorrectionData">@null</item>
- </style>
- <style
- name="MoreKeysKeyboardView.ICS"
- parent="KeyboardView.ICS"
- >
- <item name="android:background">@drawable/keyboard_popup_panel_background_ics</item>
- <item name="keyBackground">@drawable/btn_keyboard_key_popup_ics</item>
- <item name="divider">@drawable/more_keys_divider</item>
- <item name="keyTypeface">normal</item>
- <item name="verticalCorrection">@dimen/config_more_keys_keyboard_vertical_correction_holo</item>
- </style>
- <style
- name="SuggestionStripView.ICS"
- parent="KeyboardView.ICS"
- >
- <item name="suggestionsCountInStrip">@integer/config_suggestions_count_in_strip</item>
- <item name="centerSuggestionPercentile">@fraction/config_center_suggestion_percentile</item>
- <item name="maxMoreSuggestionsRow">@integer/config_max_more_suggestions_row</item>
- <item name="minMoreSuggestionsWidth">@fraction/config_min_more_suggestions_width</item>
- <item name="android:background">@drawable/keyboard_suggest_strip_holo</item>
- <item name="android:src">@drawable/suggestions_strip_divider_holo</item>
- <item name="suggestionStripOptions">autoCorrectBold|validTypedWordBold</item>
- <item name="colorValidTypedWord">@color/typed_word_color_ics</item>
- <item name="colorTypedWord">@color/typed_word_color_ics</item>
- <item name="colorAutoCorrect">@color/highlight_color_ics</item>
- <item name="colorSuggested">@color/suggested_word_color_ics</item>
- <item name="alphaObsoleted">70%</item>
- </style>
- <style
- name="SuggestionWord.ICS"
- parent="SuggestionWord"
- >
- <item name="android:background">@drawable/btn_suggestion_ics</item>
- <item name="android:textColor">@color/highlight_color_ics</item>
- </style>
-</resources>
diff --git a/java/res/values/themes-klp.xml b/java/res/values/themes-klp.xml
deleted file mode 100644
index 32884db..0000000
--- a/java/res/values/themes-klp.xml
+++ /dev/null
@@ -1,150 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2015, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android">
- <style name="KeyboardTheme.KLP" parent="KeyboardIcons.Holo">
- <item name="inputViewStyle">@style/InputView.Holo</item>
- <item name="keyboardStyle">@style/Keyboard.KLP</item>
- <item name="keyboardViewStyle">@style/KeyboardView.KLP</item>
- <item name="mainKeyboardViewStyle">@style/MainKeyboardView.KLP</item>
- <item name="emojiPalettesViewStyle">@style/EmojiPalettesView.KLP</item>
- <item name="moreKeysKeyboardStyle">@style/MoreKeysKeyboard.KLP</item>
- <!-- Note: KLP theme uses the same style for both general more keys and action more keys. -->
- <item name="moreKeysKeyboardViewStyle">@style/MoreKeysKeyboardView.KLP</item>
- <item name="moreKeysKeyboardViewForActionStyle">@style/MoreKeysKeyboardView.KLP</item>
- <item name="suggestionStripViewStyle">@style/SuggestionStripView.KLP</item>
- <item name="suggestionWordStyle">@style/SuggestionWord.KLP</item>
- </style>
- <style
- name="Keyboard.KLP"
- parent="Keyboard"
- >
- <!-- This should be aligned with KeyboardTheme.THEME_ID_* -->
- <item name="themeId">KLP</item>
- </style>
- <style
- name="KeyboardView.KLP"
- parent="KeyboardView.Holo"
- >
- <item name="android:background">@drawable/keyboard_background_holo</item>
- <item name="keyBackground">@drawable/btn_keyboard_key_klp</item>
- <item name="functionalKeyBackground">@drawable/btn_keyboard_key_functional_klp</item>
- <item name="spacebarBackground">@drawable/btn_keyboard_spacebar_klp</item>
- <item name="keyTextColor">@color/key_text_color_holo</item>
- <item name="keyTextInactivatedColor">@color/key_text_inactivated_color_holo</item>
- <item name="functionalTextColor">@color/key_text_color_holo</item>
- <item name="keyHintLetterColor">@color/key_hint_letter_color_holo</item>
- <item name="keyHintLabelColor">@color/key_hint_label_color_holo</item>
- <item name="keyShiftedLetterHintInactivatedColor">@color/key_shifted_letter_hint_inactivated_color_holo</item>
- <item name="keyShiftedLetterHintActivatedColor">@color/key_shifted_letter_hint_activated_color_holo</item>
- <item name="keyPreviewTextColor">@color/key_text_color_holo</item>
- </style>
- <style
- name="MainKeyboardView.KLP"
- parent="KeyboardView.KLP"
- >
- <item name="keyPreviewBackground">@drawable/keyboard_key_feedback_klp</item>
- <item name="keyPreviewHeight">@dimen/config_key_preview_height_holo</item>
- <item name="keyPreviewOffset">@dimen/config_key_preview_offset_holo</item>
- <item name="keyPreviewShowUpAnimator">@anim/key_preview_show_up_holo</item>
- <item name="keyPreviewDismissAnimator">@anim/key_preview_dismiss_holo</item>
- <item name="gestureFloatingPreviewTextColor">@color/highlight_color_klp</item>
- <item name="gestureFloatingPreviewColor">@color/gesture_floating_preview_color_holo</item>
- <item name="gestureTrailColor">@color/highlight_color_klp</item>
- <item name="slidingKeyInputPreviewColor">@color/highlight_translucent_color_klp</item>
- <item name="languageOnSpacebarTextColor">@color/spacebar_text_color_holo</item>
- <item name="languageOnSpacebarTextShadowRadius">1.0</item>
- <item name="languageOnSpacebarTextShadowColor">@color/spacebar_text_shadow_color_holo</item>
- </style>
- <!-- Though {@link com.android.inputmethod.keyboard.emoji.EmojiPalettesView} doesn't extend
- {@link com.android.inputmethod.keyboard.KeyboardView}, some views inside it, for instance
- delete button, need themed {@link com.android.inputmethod.keyboard.KeyboardView}
- attributes. -->
- <style
- name="EmojiPalettesView.KLP"
- parent="MainKeyboardView.KLP"
- >
- <item name="categoryIndicatorEnabled">true</item>
- <item name="categoryIndicatorDrawable">@drawable/emoji_category_tab_selected_klp</item>
- <item name="categoryIndicatorBackground">@drawable/emoji_category_tab_unselected_holo_dark</item>
- <item name="categoryPageIndicatorColor">@color/highlight_color_klp</item>
- <item name="categoryPageIndicatorBackground">@color/emoji_tab_page_indicator_background_holo</item>
- <item name="iconEmojiRecentsTab">@drawable/ic_emoji_recents_holo_dark</item>
- <item name="iconEmojiCategory1Tab">@drawable/ic_emoji_people_holo_dark</item>
- <item name="iconEmojiCategory2Tab">@drawable/ic_emoji_objects_holo_dark</item>
- <item name="iconEmojiCategory3Tab">@drawable/ic_emoji_nature_holo_dark</item>
- <item name="iconEmojiCategory4Tab">@drawable/ic_emoji_places_holo_dark</item>
- <item name="iconEmojiCategory5Tab">@drawable/ic_emoji_symbols_holo_dark</item>
- <item name="iconEmojiCategory6Tab">@drawable/ic_emoji_emoticons_holo_dark</item>
- <item name="iconEmojiCategory7Tab">@drawable/ic_emoji_flag_holo_dark</item>
- <item name="iconEmojiCategory8Tab">@drawable/ic_emoji_people_holo_dark</item>
- <item name="iconEmojiCategory9Tab">@drawable/ic_emoji_nature_holo_dark</item>
- <item name="iconEmojiCategory10Tab">@drawable/ic_emoji_food_holo_dark</item>
- <item name="iconEmojiCategory11Tab">@drawable/ic_emoji_places_holo_dark</item>
- <item name="iconEmojiCategory12Tab">@drawable/ic_emoji_activity_holo_dark</item>
- <item name="iconEmojiCategory13Tab">@drawable/ic_emoji_objects_holo_dark</item>
- <item name="iconEmojiCategory14Tab">@drawable/ic_emoji_symbols_holo_dark</item>
- <item name="iconEmojiCategory15Tab">@drawable/ic_emoji_flag_holo_dark</item>
- <item name="iconEmojiCategory16Tab">@drawable/ic_emoji_people_holo_dark</item>
- </style>
- <style
- name="MoreKeysKeyboard.KLP"
- parent="Keyboard.KLP"
- >
- <item name="keyboardTopPadding">0%p</item>
- <item name="keyboardBottomPadding">0%p</item>
- <item name="horizontalGap">0%p</item>
- <item name="touchPositionCorrectionData">@null</item>
- </style>
- <style
- name="MoreKeysKeyboardView.KLP"
- parent="KeyboardView.KLP"
- >
- <item name="android:background">@drawable/keyboard_popup_panel_background_klp</item>
- <item name="keyBackground">@drawable/btn_keyboard_key_popup_klp</item>
- <item name="divider">@drawable/more_keys_divider</item>
- <item name="keyTypeface">normal</item>
- <item name="verticalCorrection">@dimen/config_more_keys_keyboard_vertical_correction_holo</item>
- </style>
- <style
- name="SuggestionStripView.KLP"
- parent="KeyboardView.KLP"
- >
- <item name="suggestionsCountInStrip">@integer/config_suggestions_count_in_strip</item>
- <item name="centerSuggestionPercentile">@fraction/config_center_suggestion_percentile</item>
- <item name="maxMoreSuggestionsRow">@integer/config_max_more_suggestions_row</item>
- <item name="minMoreSuggestionsWidth">@fraction/config_min_more_suggestions_width</item>
- <item name="android:background">@drawable/keyboard_suggest_strip_holo</item>
- <item name="android:src">@drawable/suggestions_strip_divider_holo</item>
- <item name="suggestionStripOptions">autoCorrectBold|validTypedWordBold</item>
- <item name="colorValidTypedWord">@color/typed_word_color_klp</item>
- <item name="colorTypedWord">@color/typed_word_color_klp</item>
- <item name="colorAutoCorrect">@color/highlight_color_klp</item>
- <item name="colorSuggested">@color/suggested_word_color_klp</item>
- <item name="alphaObsoleted">70%</item>
- </style>
- <style
- name="SuggestionWord.KLP"
- parent="SuggestionWord"
- >
- <item name="android:background">@drawable/btn_suggestion_klp</item>
- <item name="android:textColor">@color/highlight_color_klp</item>
- </style>
-</resources>
diff --git a/java/res/values/themes-you-colors.xml b/java/res/values/themes-you-colors.xml
new file mode 100644
index 0000000..5a9fa40
--- /dev/null
+++ b/java/res/values/themes-you-colors.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+ <color name="keyboard_background_you">@android:color/system_accent3_10</color>
+ <color name="keyboard_key_normal_color_you">@android:color/system_neutral1_100</color>
+ <color name="keyboard_key_pressed_color_you">@android:color/system_neutral1_200</color>
+ <color name="keyboard_key_text_color_you">@android:color/system_accent1_900</color>
+ <color name="functional_text_color_you">@color/keyboard_key_text_color_you</color>
+ <color name="category_page_indicator_color">@android:color/system_accent3_200</color>
+ <color name="icon_color_you">@android:color/system_accent3_800</color>
+ <color name="functional_normal_color_you">@android:color/system_neutral2_100</color>
+ <color name="functional_pressed_color_you">@android:color/system_neutral2_200</color>
+ <color name="shift_normal_color_you">@android:color/system_neutral1_800</color>
+ <color name="shift_locked_color_you">@android:color/system_accent1_1000</color>
+ <color name="key_hint_letter_color_you">@color/key_hint_letter_color_lxx_light</color>
+ <color name="typed_word_color_you">@color/typed_word_color_lxx_light</color>
+ <color name="auto_correct_color_you">@color/auto_correct_color_lxx_light</color>
+ <color name="suggested_word_color_you">@color/suggested_word_color_lxx_light</color>
+ <color name="highlight_color_you">@color/highlight_color_lxx_light</color>
+ <color name="gesture_trail_color_you">@android:color/system_accent3_800</color>
+ <color name="gesture_floating_preview_text_color_you">@android:color/system_neutral1_1000</color>
+</resources>
diff --git a/java/res/values/themes-you-dimens.xml b/java/res/values/themes-you-dimens.xml
new file mode 100644
index 0000000..f43466f
--- /dev/null
+++ b/java/res/values/themes-you-dimens.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+ <dimen name="keyboard_key_corner_radius_you">8dp</dimen>
+ <dimen name="config_gesture_floating_preview_round_radius_you">8dp</dimen>
+</resources>
diff --git a/java/res/values/themes-you.xml b/java/res/values/themes-you.xml
new file mode 100644
index 0000000..a17e4bb
--- /dev/null
+++ b/java/res/values/themes-you.xml
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2015, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+ <style
+ name="InputView.You"
+ parent="InputView"
+ />
+ <!-- LXX KeyboardView theme (LXX_Light and LXX_Dark) -->
+ <style
+ name="KeyboardView.You_Common"
+ parent="KeyboardView"
+ >
+ <item name="keyTypeface">normal</item>
+ <item name="keyLetterSize">@fraction/config_key_letter_ratio_you</item>
+ <item name="keyLabelSize">@fraction/config_key_label_ratio_lxx</item>
+ <item name="keyHintLetterRatio">@fraction/config_key_hint_letter_ratio_lxx</item>
+ <item name="keyShiftedLetterHintRatio">@fraction/config_key_shifted_letter_hint_ratio_lxx</item>
+ <item name="keyLargeLetterRatio">@fraction/config_key_large_letter_ratio_lxx</item>
+ <item name="keyLabelOffCenterRatio">-80%</item>
+ <item name="keyHintLabelRatio">@fraction/config_key_hint_label_ratio_lxx</item>
+ <item name="keyHintLabelOffCenterRatio">300%</item>
+ <item name="keyLabelFlags">alignHintLabelToBottom</item>
+ <item name="spacebarIconWidthRatio">0.9</item>
+ <!-- No popup hint letter -->
+ <item name="keyPopupHintLetter"></item>
+ <item name="keyHintLetterPadding">@dimen/config_key_hint_letter_padding_you</item>
+ <item name="keyHintLetterPaddingVertical">@dimen/config_key_hint_letter_padding_vertical_you</item>
+ <item name="keyPreviewTextRatio">@fraction/config_key_preview_text_ratio_you</item>
+ </style>
+
+ <style name="KeyboardTheme.You" parent="KeyboardIcons.You">
+ <item name="inputViewStyle">@style/InputView.You</item>
+ <item name="keyboardStyle">@style/Keyboard.You</item>
+ <item name="keyboardViewStyle">@style/KeyboardView.You</item>
+ <item name="mainKeyboardViewStyle">@style/MainKeyboardView.You</item>
+ <item name="emojiPalettesViewStyle">@style/EmojiPalettesView.You</item>
+ <item name="moreKeysKeyboardStyle">@style/MoreKeysKeyboard.You</item>
+ <item name="moreKeysKeyboardViewStyle">@style/MoreKeysKeyboardView.You</item>
+ <item name="moreKeysKeyboardViewForActionStyle">@style/MoreKeysKeyboardView.You.Action</item>
+ <item name="suggestionStripViewStyle">@style/SuggestionStripView.You</item>
+ <item name="suggestionWordStyle">@style/SuggestionWord.You</item>
+ </style>
+ <style
+ name="Keyboard.You"
+ parent="Keyboard"
+ >
+ <!-- This should be aligned with KeyboardTheme.THEME_ID_* -->
+ <item name="themeId">You</item>
+ <item name="verticalGap">@fraction/config_key_vertical_gap_you</item>
+ </style>
+ <style
+ name="KeyboardView.You"
+ parent="KeyboardView.You_Common"
+ >
+ <item name="android:background">@color/keyboard_background_you</item>
+ <item name="keyBackground">@drawable/btn_keyboard_key_you</item>
+ <item name="functionalKeyBackground">@drawable/btn_keyboard_key_functional_you</item>
+ <item name="spacebarBackground">@drawable/btn_keyboard_key_you</item>
+ <item name="keyTextColor">@color/keyboard_key_text_color_you</item>
+ <item name="keyTextInactivatedColor">@color/functional_text_color_you</item>
+ <item name="functionalTextColor">@color/functional_text_color_you</item>
+ <item name="keyHintLetterColor">@color/key_hint_letter_color_you</item>
+ <item name="keyHintLabelColor">@color/key_text_inactive_color_lxx_dark</item>
+ <item name="keyShiftedLetterHintInactivatedColor">@color/key_text_inactive_color_lxx_dark</item>
+ <item name="keyShiftedLetterHintActivatedColor">@color/key_text_color_lxx_dark</item>
+ <item name="keyPreviewTextColor">@color/keyboard_key_text_color_you</item>
+ <item name="gestureFloatingPreviewRoundRadius">@dimen/config_gesture_floating_preview_round_radius_you</item>
+ </style>
+ <style
+ name="MainKeyboardView.You"
+ parent="KeyboardView.You"
+ >
+ <item name="moreKeysKeyboardForActionLayout">@layout/more_keys_keyboard_for_action_lxx</item>
+ <item name="keyPreviewBackground">@drawable/keyboard_key_feedback_you</item>
+ <item name="keyPreviewHeight">@dimen/config_key_preview_height_you</item>
+ <item name="keyPreviewOffset">@dimen/config_key_preview_offset_you</item>
+ <item name="keyPreviewShowUpAnimator">@anim/key_preview_show_up_lxx</item>
+ <item name="keyPreviewDismissAnimator">@anim/key_preview_dismiss_lxx</item>
+ <item name="gestureFloatingPreviewTextColor">@color/gesture_floating_preview_text_color_you</item>
+ <item name="gestureFloatingPreviewColor">@color/gesture_floating_preview_color_you</item>
+ <item name="gestureTrailColor">@color/gesture_trail_color_you</item>
+ <item name="slidingKeyInputPreviewColor">@color/sliding_key_input_preview_color_you</item>
+ <item name="languageOnSpacebarTextColor">@color/key_text_inactive_color_lxx_dark</item>
+ <!-- A negative value to disable text shadow layer. -->
+ <item name="languageOnSpacebarTextShadowRadius">-1.0</item>
+ </style>
+ <!-- Though {@link com.android.inputmethod.keyboard.emoji.EmojiPalettesView} doesn't extend
+ {@link com.android.inputmethod.keyboard.KeyboardView}, some views inside it, for instance
+ delete button, need themed {@link com.android.inputmethod.keyboard.KeyboardView}
+ attributes. -->
+ <style
+ name="EmojiPalettesView.You"
+ parent="MainKeyboardView.You"
+ >
+ <item name="categoryIndicatorEnabled">false</item>
+ <item name="categoryPageIndicatorColor">@color/category_page_indicator_color</item>
+ <item name="categoryPageIndicatorBackground">@null</item>
+ <item name="iconEmojiRecentsTab">@drawable/ic_emoji_recents_lxx_dark</item>
+ <item name="iconEmojiCategory1Tab">@drawable/ic_emoji_people_lxx_dark</item>
+ <item name="iconEmojiCategory2Tab">@drawable/ic_emoji_objects_lxx_dark</item>
+ <item name="iconEmojiCategory3Tab">@drawable/ic_emoji_nature_lxx_dark</item>
+ <item name="iconEmojiCategory4Tab">@drawable/ic_emoji_places_lxx_dark</item>
+ <item name="iconEmojiCategory5Tab">@drawable/ic_emoji_symbols_lxx_dark</item>
+ <item name="iconEmojiCategory6Tab">@drawable/ic_emoji_emoticons_lxx_dark</item>
+ <item name="iconEmojiCategory7Tab">@drawable/ic_emoji_flag_lxx_dark</item>
+ <item name="iconEmojiCategory8Tab">@drawable/ic_emoji_people_lxx_dark</item>
+ <item name="iconEmojiCategory9Tab">@drawable/ic_emoji_nature_lxx_dark</item>
+ <item name="iconEmojiCategory10Tab">@drawable/ic_emoji_food_lxx_dark</item>
+ <item name="iconEmojiCategory11Tab">@drawable/ic_emoji_places_lxx_dark</item>
+ <item name="iconEmojiCategory12Tab">@drawable/ic_emoji_activity_lxx_dark</item>
+ <item name="iconEmojiCategory13Tab">@drawable/ic_emoji_objects_lxx_dark</item>
+ <item name="iconEmojiCategory14Tab">@drawable/ic_emoji_symbols_lxx_dark</item>
+ <item name="iconEmojiCategory15Tab">@drawable/ic_emoji_flag_lxx_dark</item>
+ <item name="iconEmojiCategory16Tab">@drawable/ic_emoji_people_lxx_dark</item>
+ </style>
+ <style
+ name="MoreKeysKeyboard.You"
+ parent="Keyboard.You"
+ >
+ <item name="keyboardTopPadding">0%p</item>
+ <item name="keyboardBottomPadding">0%p</item>
+ <item name="horizontalGap">0%p</item>
+ <item name="touchPositionCorrectionData">@null</item>
+ </style>
+ <style
+ name="MoreKeysKeyboardView.You"
+ parent="KeyboardView.You"
+ >
+ <item name="android:background">@drawable/btn_keyboard_key_you</item>
+ <item name="keyBackground">@drawable/btn_keyboard_key_you</item>
+ <item name="divider">@drawable/more_keys_divider</item>
+ <item name="keyTypeface">normal</item>
+ <item name="verticalCorrection">@dimen/config_more_keys_keyboard_vertical_correction_holo</item>
+ </style>
+ <style
+ name="MoreKeysKeyboardView.You.Action"
+ parent="MoreKeysKeyboardView.You"
+ >
+ <item name="android:background">@android:color/transparent</item>
+ <item name="keyBackground">@drawable/btn_keyboard_key_popup_action_lxx_dark</item>
+ <item name="divider">@null</item>
+ <item name="keyLabelFlags">keepBackgroundAspectRatio</item>
+ </style>
+ <style
+ name="SuggestionStripView.You"
+ parent="KeyboardView.You"
+ >
+ <item name="suggestionsCountInStrip">@integer/config_suggestions_count_in_strip</item>
+ <item name="centerSuggestionPercentile">@fraction/config_center_suggestion_percentile</item>
+ <item name="maxMoreSuggestionsRow">@integer/config_max_more_suggestions_row</item>
+ <item name="minMoreSuggestionsWidth">@fraction/config_min_more_suggestions_width</item>
+ <item name="android:background">@color/keyboard_background_you</item>
+ <item name="android:src">@drawable/suggestions_strip_divider_lxx_dark</item>
+ <item name="suggestionStripOptions">autoCorrectBold|validTypedWordBold</item>
+ <item name="colorValidTypedWord">@color/typed_word_color_you</item>
+ <item name="colorTypedWord">@color/typed_word_color_you</item>
+ <item name="colorAutoCorrect">@color/auto_correct_color_you</item>
+ <item name="colorSuggested">@color/suggested_word_color_you</item>
+ <item name="alphaObsoleted">70%</item>
+ </style>
+ <style
+ name="SuggestionWord.You"
+ parent="SuggestionWord"
+ >
+ <item name="android:background">@drawable/btn_suggestion_lxx_dark</item>
+ <item name="android:textColor">@color/highlight_color_you</item>
+ </style>
+</resources>
diff --git a/java/res/xml-sw600dp/key_styles_common.xml b/java/res/xml-sw600dp/key_styles_common.xml
index 3d25f42..257476b 100644
--- a/java/res/xml-sw600dp/key_styles_common.xml
+++ b/java/res/xml-sw600dp/key_styles_common.xml
@@ -109,6 +109,11 @@
latin:keyActionFlags="noKeyPreview"
latin:backgroundType="functional" />
<key-style
+ latin:styleName="emojiKeyStylePopup"
+ latin:keySpec="!icon/emoji_action_key|!code/key_emoji"
+ latin:keyActionFlags="noKeyPreview"
+ latin:backgroundType="functional" />
+ <key-style
latin:styleName="settingsKeyStyle"
latin:keySpec="!icon/settings_key|!code/key_settings"
latin:keyActionFlags="noKeyPreview"
diff --git a/java/res/xml-sw600dp/key_styles_enter.xml b/java/res/xml-sw600dp/key_styles_enter.xml
index 63ef2f8..2628341 100644
--- a/java/res/xml-sw600dp/key_styles_enter.xml
+++ b/java/res/xml-sw600dp/key_styles_enter.xml
@@ -90,6 +90,16 @@
latin:backgroundType="action"
latin:parentStyle="navigateMoreKeysStyle" />
</case>
+ <!-- keyboardTheme="You" -->
+ <case latin:keyboardTheme="You">
+ <key-style
+ latin:styleName="defaultEnterKeyStyle"
+ latin:keySpec="!icon/enter_key|!code/key_enter"
+ latin:keyLabelFlags="preserveCase|autoXScale|followKeyLabelRatio|followFunctionalTextColor"
+ latin:keyActionFlags="noKeyPreview"
+ latin:backgroundType="functional"
+ latin:parentStyle="navigateMoreKeysStyle" />
+ </case>
<!-- keyboardTheme="LXXLight|LXXDark" -->
<default>
<key-style
diff --git a/java/res/xml-sw600dp/rows_qwertz.xml b/java/res/xml-sw600dp/rows_qwertz.xml
index 3b59dec..747dafd 100644
--- a/java/res/xml-sw600dp/rows_qwertz.xml
+++ b/java/res/xml-sw600dp/rows_qwertz.xml
@@ -36,7 +36,7 @@
latin:keyWidth="9.0%p"
>
<include
- latin:keyboardLayout="@xml/rowkeys_qwerty2"
+ latin:keyboardLayout="@xml/rowkeys_qwertz2"
latin:keyXPos="4.5%p" />
<Key
latin:keyStyle="enterKeyStyle"
diff --git a/java/res/xml/key_emoji.xml b/java/res/xml/key_emoji.xml
index 473dd21..602b8d8 100644
--- a/java/res/xml/key_emoji.xml
+++ b/java/res/xml/key_emoji.xml
@@ -26,13 +26,18 @@
latin:mode="email|url"
>
<Key
- latin:keyStyle="comKeyStyle"
+ latin:keyStyle="comKeyStyle" />
+ </case>
+ <case
+ latin:languageSwitchKeyEnabled="true"
+ >
+ <Key
+ latin:keyStyle="emojiKeyStylePopup"
latin:keyWidth="fillRight" />
</case>
<default>
<Key
- latin:keyStyle="emojiKeyStyle"
- latin:keyWidth="fillRight" />
+ latin:keyStyle="emojiKeyStyle" />
</default>
</switch>
</merge>
diff --git a/java/res/xml/key_space_5kw.xml b/java/res/xml/key_space_5kw.xml
index 692c245..810a42c 100644
--- a/java/res/xml/key_space_5kw.xml
+++ b/java/res/xml/key_space_5kw.xml
@@ -57,7 +57,7 @@
<default>
<Key
latin:keyStyle="spaceKeyStyle"
- latin:keyWidth="50%p" />
+ latin:keyWidth="40%p" />
</default>
</switch>
</merge>
diff --git a/java/res/xml/key_styles_common.xml b/java/res/xml/key_styles_common.xml
index fbc44da..2ee5fdd 100644
--- a/java/res/xml/key_styles_common.xml
+++ b/java/res/xml/key_styles_common.xml
@@ -77,24 +77,17 @@
latin:keyActionFlags="isRepeatable|noKeyPreview"
latin:backgroundType="functional" />
<!-- emojiKeyStyle must be defined before including @xml/key_syles_enter. -->
- <switch>
- <case latin:keyboardTheme="ICS|KLP">
- <key-style
- latin:styleName="emojiKeyStyle"
- latin:keySpec="!icon/emoji_action_key|!code/key_emoji"
- latin:keyActionFlags="noKeyPreview"
- latin:backgroundType="action" />
- </case>
- <!-- keyboardTheme="LXXLight|LXXDark" -->
- <default>
- <key-style
- latin:styleName="emojiKeyStyle"
- latin:keySpec="!icon/emoji_action_key|!code/key_emoji"
- latin:keyLabelFlags="keepBackgroundAspectRatio"
- latin:keyActionFlags="noKeyPreview"
- latin:backgroundType="action" />
- </default>
- </switch>
+ <key-style
+ latin:styleName="emojiKeyStyle"
+ latin:keySpec="!icon/emoji_normal_key|!code/key_emoji"
+ latin:keyActionFlags="noKeyPreview"
+ latin:backgroundType="functional" />
+ <key-style
+ latin:styleName="emojiKeyStylePopup"
+ latin:keySpec="!icon/emoji_action_key|!code/key_emoji"
+ latin:keyLabelFlags="keepBackgroundAspectRatio"
+ latin:keyActionFlags="noKeyPreview"
+ latin:backgroundType="action" />
<include
latin:keyboardLayout="@xml/key_styles_enter" />
<!-- TODO: Currently there is no way to specify icon alignment per theme. -->
diff --git a/java/res/xml/key_styles_currency.xml b/java/res/xml/key_styles_currency.xml
index de5e6f2..67b6d6b 100644
--- a/java/res/xml/key_styles_currency.xml
+++ b/java/res/xml/key_styles_currency.xml
@@ -23,59 +23,84 @@
<case latin:passwordInput="true">
<include latin:keyboardLayout="@xml/key_styles_currency_dollar" />
</case>
- <!-- Countries using Euro currency, 23 countries as of November 2012.
- 1. Andorra (ca_AD, ca_ES)
- 2. Austria (de_AT)
- 3. Belgium (nl_BE, fr_BE, de_BE)
- 4. Cyprus (el_CY, tr_CY)
- 5. Estonia (et_EE)
- 6. Finland (fi_FI, sv_FI)
- 7. France (fr_FR)
- 8. Germany (de_DE)
- 9. Greece (el_GR)
- 10. Ireland (ga_IE, en_IE)
- 11. Italy (it_IT)
- 12. Kosovo (sq_XK, sr_XK)
- 13. Luxembourg (lb_LU, fr_LU, de_LU)
- 14. Malta (mt_MT, en_MT)
- 15. Monaco (fr_MO)
- 16. Montenegro (??_ME)
- 17. Netherlands (nl_NL)
- 18. Portugal (pt_PT)
- 19. San Marino (it_SM)
- 20. Slovakia (sk_SK)
- 21. Slovenia (sl_SI)
- 22. Spain (es_ES, ca_ES, eu_ES, gl_ES)
- 23. Vatican City (it_VA) -->
- <case latin:countryCode="AD|AT|BE|CY|EE|FI|FR|DE|GR|IE|IT|XK|LU|MT|MO|ME|NL|PT|SM|SK|SI|ES|VA">
+ <!-- List of countries that should have the euro symbol, due to proximity or membership in
+ the European Union and/or Eurozone as of September 2019.
+ 1. Andorra (ca_AD, ca_ES)
+ 2. Austria (de_AT)
+ 3. Belgium (nl_BE, fr_BE, de_BE)
+ 4. Bulgaria (bg_BG)
+ 5. Croatia (hr_HR)
+ 6. Cyprus (el_CY, tr_CY)
+ 7. Czech Republic (cs_CZ)
+ 8. Denmark (da_DK)
+ 9. Estonia (et_EE)
+ 10. Finland (fi_FI, sv_FI)
+ 11. France (fr_FR)
+ 12. Germany (de_DE)
+ 13. Greece (el_GR)
+ 14. Hungary (hu_HU)
+ 15. Ireland (ga_IE, en_IE)
+ 16. Italy (it_IT)
+ 17. Kosovo (sq_XK, sr_XK)
+ 18. Latvia (lv_LV)
+ 19. Lithuania (lt_LT)
+ 20. Luxembourg (lb_LU, fr_LU, de_LU)
+ 21. Malta (mt_MT, en_MT)
+ 22. Monaco (fr_MO)
+ 23. Montenegro (sr_ME)
+ 24. Netherlands (nl_NL)
+ 25. Poland (pl_PL)
+ 26. Portugal (pt_PT)
+ 27. Romania (ro_RO)
+ 28. San Marino (it_SM)
+ 29. Slovakia (sk_SK)
+ 30. Slovenia (sl_SI)
+ 31. Spain (es_ES, ca_ES, eu_ES, gl_ES)
+ 32. Vatican City (it_VA) -->
+ <case latin:countryCode="AD|AT|BE|BG|HR|CY|CZ|DA|EE|FI|FR|DE|GR|HU|IE|IT|XK|LV|LT|LU|MT|MO|ME|NL|PL|PT|RO|SM|SK|SI|ES|VA">
<include latin:keyboardLayout="@xml/key_styles_currency_euro" />
</case>
- <!-- Note: Some subtype locale may not have country code, and it it supposed to indicate the
- country where the language originally/mainly spoken. -->
- <!-- Though Denmark, Sweden and Turkey don't use Euro as their currency, having the Euro
- sign on the symbol keyboard might be useful. Especially Danish krone (kr), Swedish
- krona (kr) and Turkish lira (TL) can be represented by usual alphabet letters. -->
- <!-- TODO: The currency sign of Turkish Lira was created in 2012 and assigned U+20BA for
- its unicode, although there is no font glyph for it as of November 2012. -->
- <!-- da: Denmark (da_DK)
+ <!-- Note: Some subtype locales may not have a country code, and it is supposed to indicate
+ the country where the language is originally and/or mainly spoken. -->
+ <!-- bg: Bulgaria (bg_BG)
+ ca: Spain (ca_ES), Andorra (ca_AD, ca_ES)
+ cs: Czech Republic (cs_CZ)
+ da: Denmark (da_DK)
de: Germany (de_DE)
+ el: Greece (el_GR)
+ en: Ireland (en_IE), Malta (en_MT)
es: Spain (es_ES)
+ et: Estonia (et_EE)
+ eu: Spain (eu_ES)
fi: Finland (fi_FI)
- fr: France(fr_FR)
+ fr: France (fr_FR)
+ ga: Ireland (ga_IE)
+ gl: Spain (gl_ES)
+ hr: Croatia (hr_HR)
+ hu: Hungary (hu_HU)
it: Italy (it_IT)
+ lb: Luxembourg (lb_LU, fr_LU, de_LU)
+ lt: Lithuania (lt_LT)
+ lv: Latvia (lv_LV)
+ mt: Malta (mt_MT, en_MT)
nl: Netherlands (nl_NL)
+ pl: Poland (pl_PL)
+ pt: Portugal (pt_PT)
+ ro: Romania (ro_RO)
sk: Slovakia (sk_SK)
sl: Slovenia (sl_SL)
+ sq: Kosovo (sq_XK)
+ sr: Kosovo (sq_SR), Montenegro (sr_ME)
sv: Sweden (sv_SV)
- tr: Trukey (tr_TR) -->
- <case latin:localeCode="da|de|es|el|fi|fr|it|nl|sk|sl|sv|tr">
+ tr: Cyprus (tr_CY) -->
+ <case latin:localeCode="bg|ca|cs|da|de|el|en|es|et|eu|fi|fr|ga|gl|hr|hu|it|lb|lt|lv|mt|nl|pl|pt|ro|sk|sl|sq|sr|sv|tr">
<include latin:keyboardLayout="@xml/key_styles_currency_euro" />
</case>
<!-- ca: Catalan (Andorra, Spain)
- et: Estonian (Estonia)
- lb: Luxembougish (Luxembourg)
+ eu: Basque (France, Spain)
+ lb: Luxembourgish (Luxembourg)
mt: Maltese (Malta) -->
- <case latin:languageCode="ca|et|lb|mt">
+ <case latin:languageCode="ca|eu|lb|mt">
<include latin:keyboardLayout="@xml/key_styles_currency_euro" />
</case>
<!-- fa: Persian (Rial and Afgahni)
diff --git a/java/res/xml/key_styles_enter.xml b/java/res/xml/key_styles_enter.xml
index 564f465..562278e 100644
--- a/java/res/xml/key_styles_enter.xml
+++ b/java/res/xml/key_styles_enter.xml
@@ -222,6 +222,16 @@
latin:backgroundType="action"
latin:parentStyle="navigateMoreKeysStyle" />
</case>
+ <!-- keyboardTheme="You" -->
+ <case latin:keyboardTheme="You">
+ <key-style
+ latin:styleName="defaultEnterKeyStyle"
+ latin:keySpec="!icon/enter_key|!code/key_enter"
+ latin:keyLabelFlags="preserveCase|autoXScale|followKeyLabelRatio|followFunctionalTextColor"
+ latin:keyActionFlags="noKeyPreview"
+ latin:backgroundType="functional"
+ latin:parentStyle="navigateMoreKeysStyle" />
+ </case>
<!-- keyboardTheme="LXXLight|LXXDark" -->
<default>
<key-style
@@ -249,6 +259,7 @@
This <case> should be after Shift + Enter <case> and before any of action <case>. -->
<case
latin:mode="im"
+ latin:languageSwitchKeyEnabled="true"
>
<key-style
latin:styleName="enterKeyStyle"
diff --git a/java/res/xml/key_styles_navigate_more_keys.xml b/java/res/xml/key_styles_navigate_more_keys.xml
index f97114d..8dabc98 100644
--- a/java/res/xml/key_styles_navigate_more_keys.xml
+++ b/java/res/xml/key_styles_navigate_more_keys.xml
@@ -52,7 +52,9 @@
latin:keyLabelFlags="hasPopupHint|preserveCase"
latin:moreKeys="!fixedColumnOrder!3,!needsDividers!,!text/keyspec_emoji_action_key,!text/keyspec_action_previous,!text/keyspec_action_next" />
</case>
- <default>
+ <case
+ latin:languageSwitchKeyEnabled="true"
+ >
<key-style
latin:styleName="navigateNextMoreKeysStyle"
latin:keyLabelFlags="hasPopupHint|preserveCase"
@@ -81,6 +83,36 @@
latin:styleName="navigateEmojiPreviousNextMoreKeysStyle"
latin:keyLabelFlags="hasPopupHint|preserveCase"
latin:moreKeys="!fixedColumnOrder!3,!needsDividers!,!text/keyspec_emoji_action_key,!icon/previous_key|!code/key_action_previous,!icon/next_key|!code/key_action_next" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="navigateNextMoreKeysStyle"
+ latin:keyLabelFlags="hasPopupHint|preserveCase"
+ latin:moreKeys="!icon/next_key|!code/key_action_next" />
+ <key-style
+ latin:styleName="navigatePreviousMoreKeysStyle"
+ latin:keyLabelFlags="hasPopupHint|preserveCase"
+ latin:moreKeys="!icon/previous_key|!code/key_action_previous" />
+ <key-style
+ latin:styleName="navigatePreviousNextMoreKeysStyle"
+ latin:keyLabelFlags="hasPopupHint|preserveCase"
+ latin:moreKeys="!fixedColumnOrder!2,!needsDividers!,!icon/previous_key|!code/key_action_previous,!icon/next_key|!code/key_action_next" />
+ <key-style
+ latin:styleName="navigateEmojiMoreKeysStyle"
+ latin:keyLabelFlags="hasPopupHint|preserveCase"
+ latin:moreKeys="" />
+ <key-style
+ latin:styleName="navigateEmojiNextMoreKeysStyle"
+ latin:keyLabelFlags="hasPopupHint|preserveCase"
+ latin:moreKeys="!fixedColumnOrder!2,!needsDividers!,!text/keyspec_emoji_action_key,!icon/next_key|!code/key_action_next" />
+ <key-style
+ latin:styleName="navigateEmojiPreviousMoreKeysStyle"
+ latin:keyLabelFlags="hasPopupHint|preserveCase"
+ latin:moreKeys="!fixedColumnOrder!2,!needsDividers!,!icon/previous_key|!code/key_action_previous" />
+ <key-style
+ latin:styleName="navigateEmojiPreviousNextMoreKeysStyle"
+ latin:keyLabelFlags="hasPopupHint|preserveCase"
+ latin:moreKeys="!fixedColumnOrder!3,!needsDividers!,!icon/previous_key|!code/key_action_previous,!icon/next_key|!code/key_action_next" />
</default>
</switch>
</merge>
diff --git a/java/res/xml/key_styles_number.xml b/java/res/xml/key_styles_number.xml
index 911c276..dbb11fd 100644
--- a/java/res/xml/key_styles_number.xml
+++ b/java/res/xml/key_styles_number.xml
@@ -109,7 +109,7 @@
<!-- TODO: Consolidate these space key styles with numSpaceKeyStyle above by introducing <case>
predicator that checks device form-factor. -->
<switch>
- <case latin:keyboardTheme="ICS|KLP">
+ <case latin:keyboardTheme="ICS|KLP|You">
<key-style
latin:styleName="tabletNumSpaceKeyStyle"
latin:keySpec="!icon/space_key|!code/key_space"
diff --git a/java/res/xml/prefs_screen_advanced.xml b/java/res/xml/prefs_screen_advanced.xml
index b27104a..1aae14e 100644
--- a/java/res/xml/prefs_screen_advanced.xml
+++ b/java/res/xml/prefs_screen_advanced.xml
@@ -48,6 +48,11 @@
android:title="@string/show_setup_wizard_icon"
android:summary="@string/show_setup_wizard_icon_summary"
android:persistent="true" />
+ <com.android.inputmethod.latin.settings.SeekBarDialogPreference
+ android:key="pref_keyboard_height_scale"
+ android:title="@string/prefs_keyboard_height_scale"
+ latin:minValue="50"
+ latin:maxValue="120" /> <!-- percentage -->
<PreferenceScreen
android:fragment="com.android.inputmethod.latin.settings.DebugSettingsFragment"
android:key="screen_debug"
diff --git a/java/res/xml/prefs_screen_debug.xml b/java/res/xml/prefs_screen_debug.xml
index 1ae2d0e..325df57 100644
--- a/java/res/xml/prefs_screen_debug.xml
+++ b/java/res/xml/prefs_screen_debug.xml
@@ -76,17 +76,6 @@
android:key="pref_key_preview_dismiss_duration"
android:title="@string/prefs_key_popup_dismiss_duration_settings"
latin:maxValue="100" /> <!-- milliseconds -->
- <CheckBoxPreference
- android:key="pref_resize_keyboard"
- android:title="@string/prefs_resize_keyboard"
- android:defaultValue="false"
- android:persistent="true" />
- <com.android.inputmethod.latin.settings.SeekBarDialogPreference
- android:dependency="pref_resize_keyboard"
- android:key="pref_keyboard_height_scale"
- android:title="@string/prefs_keyboard_height_scale"
- latin:minValue="50"
- latin:maxValue="120" /> <!-- percentage -->
<PreferenceCategory
android:key="pref_key_dump_dictionaries"
android:title="@string/prefs_dump_dynamic_dicts">
diff --git a/java/res/xml/row_qwerty4.xml b/java/res/xml/row_qwerty4.xml
index 5bc104f..7653282 100644
--- a/java/res/xml/row_qwerty4.xml
+++ b/java/res/xml/row_qwerty4.xml
@@ -21,21 +21,47 @@
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
- <Row
- latin:keyWidth="10%p"
- >
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyWidth="15%p" />
- <include
- latin:keyboardLayout="@xml/key_comma" />
- <include
- latin:keyXPos="25%p"
- latin:keyboardLayout="@xml/key_space_5kw" />
- <include
- latin:keyboardLayout="@xml/key_period" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
+ <switch>
+ <case
+ latin:languageSwitchKeyEnabled="true"
+ >
+ <Row
+ latin:keyWidth="10%p"
+ >
+ <Key
+ latin:keyStyle="toSymbolKeyStyle"
+ latin:keyWidth="15%p" />
+ <include
+ latin:keyboardLayout="@xml/key_comma" />
+ <include
+ latin:keyXPos="25%p"
+ latin:keyboardLayout="@xml/key_space_5kw" />
+ <include
+ latin:keyboardLayout="@xml/key_period" />
+ <Key
+ latin:keyStyle="enterKeyStyle"
+ latin:keyWidth="fillRight" />
+ </Row>
+ </case>
+ <default>
+ <Row
+ latin:keyWidth="10%p"
+ >
+ <Key
+ latin:keyStyle="toSymbolKeyStyle"
+ latin:keyWidth="15%p" />
+ <include
+ latin:keyboardLayout="@xml/key_comma" />
+ <include
+ latin:keyboardLayout="@xml/key_emoji" />
+ <include
+ latin:keyboardLayout="@xml/key_space_5kw" />
+ <include
+ latin:keyboardLayout="@xml/key_period" />
+ <Key
+ latin:keyStyle="enterKeyStyle"
+ latin:keyWidth="fillRight" />
+ </Row>
+ </default>
+ </switch>
</merge>
diff --git a/java/res/xml/rowkeys_east_slavic2.xml b/java/res/xml/rowkeys_east_slavic2.xml
index 21463fb..4047ab7 100644
--- a/java/res/xml/rowkeys_east_slavic2.xml
+++ b/java/res/xml/rowkeys_east_slavic2.xml
@@ -23,37 +23,59 @@
>
<!-- U+0444: "ф" CYRILLIC SMALL LETTER EF -->
<Key
- latin:keySpec="ф" />
+ latin:keySpec="ф"
+ latin:keyHintLabel="\@"
+ latin:additionalMoreKeys="\\@" />
<Key
latin:keySpec="!text/keyspec_east_slavic_row2_2"
+ latin:keyHintLabel="#"
+ latin:additionalMoreKeys="#"
latin:moreKeys="!text/morekeys_east_slavic_row2_2" />
<!-- U+0432: "в" CYRILLIC SMALL LETTER VE -->
<Key
- latin:keySpec="в" />
+ latin:keySpec="в"
+ latin:keyHintLabel="$"
+ latin:additionalMoreKeys="$" />
<!-- U+0430: "а" CYRILLIC SMALL LETTER A -->
<Key
latin:keySpec="а"
- latin:moreKeys="!text/morekeys_cyrillic_a" />
+ latin:moreKeys="!text/morekeys_cyrillic_a"
+ latin:keyHintLabel="%"
+ latin:additionalMoreKeys="%" />
<!-- U+043F: "п" CYRILLIC SMALL LETTER PE -->
<Key
- latin:keySpec="п" />
+ latin:keySpec="п"
+ latin:keyHintLabel="&"
+ latin:additionalMoreKeys="&" />
<!-- U+0440: "р" CYRILLIC SMALL LETTER ER -->
<Key
- latin:keySpec="р" />
+ latin:keySpec="р"
+ latin:keyHintLabel="_"
+ latin:additionalMoreKeys="_" />
<!-- U+043E: "о" CYRILLIC SMALL LETTER O -->
<Key
latin:keySpec="о"
+ latin:keyHintLabel="/"
+ latin:additionalMoreKeys="/"
latin:moreKeys="!text/morekeys_cyrillic_o" />
<!-- U+043B: "л" CYRILLIC SMALL LETTER EL -->
<Key
- latin:keySpec="л" />
+ latin:keySpec="л"
+ latin:keyHintLabel="-"
+ latin:additionalMoreKeys="-" />
<!-- U+0434: "д" CYRILLIC SMALL LETTER DE -->
<Key
- latin:keySpec="д" />
+ latin:keySpec="д"
+ latin:keyHintLabel="+"
+ latin:additionalMoreKeys="+" />
<!-- U+0436: "ж" CYRILLIC SMALL LETTER ZHE -->
<Key
- latin:keySpec="ж" />
+ latin:keySpec="ж"
+ latin:keyHintLabel="("
+ latin:additionalMoreKeys="(" />
<Key
latin:keySpec="!text/keyspec_east_slavic_row2_11"
- latin:moreKeys="!text/morekeys_east_slavic_row2_11" />
+ latin:moreKeys="!text/morekeys_east_slavic_row2_11"
+ latin:keyHintLabel=")"
+ latin:additionalMoreKeys=")" />
</merge>
diff --git a/java/res/xml/rowkeys_east_slavic3.xml b/java/res/xml/rowkeys_east_slavic3.xml
index 54802e8..e1b9b60 100644
--- a/java/res/xml/rowkeys_east_slavic3.xml
+++ b/java/res/xml/rowkeys_east_slavic3.xml
@@ -23,29 +23,47 @@
>
<!-- U+044F: "я" CYRILLIC SMALL LETTER YA -->
<Key
- latin:keySpec="я" />
+ latin:keySpec="я"
+ latin:keyHintLabel="*"
+ latin:additionalMoreKeys="*" />
<!-- U+0447: "ч" CYRILLIC SMALL LETTER CHE -->
<Key
- latin:keySpec="ч" />
+ latin:keySpec="ч"
+ latin:keyHintLabel="""
+ latin:additionalMoreKeys=""" />
<!-- U+0441: "с" CYRILLIC SMALL LETTER ES -->
<Key
- latin:keySpec="с" />
+ latin:keySpec="с"
+ latin:keyHintLabel="'"
+ latin:additionalMoreKeys="'" />
<!-- U+043C: "м" CYRILLIC SMALL LETTER EM -->
<Key
- latin:keySpec="м" />
+ latin:keySpec="м"
+ latin:keyHintLabel=":"
+ latin:additionalMoreKeys=":" />
<Key
- latin:keySpec="!text/keyspec_east_slavic_row3_5" />
+ latin:keySpec="!text/keyspec_east_slavic_row3_5"
+ latin:keyHintLabel=";"
+ latin:additionalMoreKeys=";" />
<!-- U+0442: "т" CYRILLIC SMALL LETTER TE -->
<Key
- latin:keySpec="т" />
+ latin:keySpec="т"
+ latin:keyHintLabel="!"
+ latin:additionalMoreKeys="!" />
<!-- U+044C: "ь" CYRILLIC SMALL LETTER SOFT SIGN -->
<Key
latin:keySpec="ь"
- latin:moreKeys="!text/morekeys_cyrillic_soft_sign" />
+ latin:moreKeys="!text/morekeys_cyrillic_soft_sign"
+ latin:keyHintLabel="\?"
+ latin:additionalMoreKeys="\\?" />
<!-- U+0431: "б" CYRILLIC SMALL LETTER BE -->
<Key
- latin:keySpec="б" />
+ latin:keySpec="б"
+ latin:keyHintLabel="<"
+ latin:additionalMoreKeys="<" />
<!-- U+044E: "ю" CYRILLIC SMALL LETTER YU -->
<Key
- latin:keySpec="ю" />
+ latin:keySpec="ю"
+ latin:keyHintLabel=">"
+ latin:additionalMoreKeys=">" />
</merge>
diff --git a/java/res/xml/rowkeys_greek2.xml b/java/res/xml/rowkeys_greek2.xml
index 97dde5b..59e3b01 100644
--- a/java/res/xml/rowkeys_greek2.xml
+++ b/java/res/xml/rowkeys_greek2.xml
@@ -38,7 +38,9 @@
U+1F0F: "Ἇ" GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI -->
<Key
latin:keySpec="Α"
- latin:moreKeys="Ά,Ὰ,Ἀ,Ἁ,ἄ,ἅ,Ἂ,Ἃ,Ἆ,Ἇ" />
+ latin:moreKeys="Ά,Ὰ,Ἀ,Ἁ,ἄ,ἅ,Ἂ,Ἃ,Ἆ,Ἇ"
+ latin:keyHintLabel="\@"
+ latin:additionalMoreKeys="\\@" />
</case>
<default>
<!-- U+03B1: "α" GREEK SMALL LETTER ALPHA
@@ -67,21 +69,31 @@
U+1F87: "ᾇ" GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI -->
<Key
latin:keySpec="α"
- latin:moreKeys="ά,ὰ,ᾶ,ἀ,ἁ,ἄ,ἅ,ἂ,ἃ,ἆ,ἇ,ᾳ,ᾴ,ᾲ,ᾷ,ᾀ,ᾁ,ᾄ,ᾅ,ᾂ,ᾃ,ᾆ,ᾇ" />
+ latin:moreKeys="ά,ὰ,ᾶ,ἀ,ἁ,ἄ,ἅ,ἂ,ἃ,ἆ,ἇ,ᾳ,ᾴ,ᾲ,ᾷ,ᾀ,ᾁ,ᾄ,ᾅ,ᾂ,ᾃ,ᾆ,ᾇ"
+ latin:keyHintLabel="\@"
+ latin:additionalMoreKeys="\\@" />
</default>
</switch>
<!-- U+03C3: "σ" GREEK SMALL LETTER SIGMA -->
<Key
- latin:keySpec="σ" />
+ latin:keySpec="σ"
+ latin:keyHintLabel="#"
+ latin:additionalMoreKeys="#" />
<!-- U+03B4: "δ" GREEK SMALL LETTER DELTA -->
<Key
- latin:keySpec="δ" />
+ latin:keySpec="δ"
+ latin:keyHintLabel="€"
+ latin:additionalMoreKeys="€" />
<!-- U+03C6: "φ" GREEK SMALL LETTER PHI -->
<Key
- latin:keySpec="φ" />
+ latin:keySpec="φ"
+ latin:keyHintLabel="%"
+ latin:additionalMoreKeys="%" />
<!-- U+03B3: "γ" GREEK SMALL LETTER GAMMA -->
<Key
- latin:keySpec="γ" />
+ latin:keySpec="γ"
+ latin:keyHintLabel="&"
+ latin:additionalMoreKeys="&" />
<switch>
<case
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
@@ -99,7 +111,9 @@
U+1F2F: "Ἧ" GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI -->
<Key
latin:keySpec="Η"
- latin:moreKeys="Ή,Ὴ,Ἠ,Ἡ,Ἤ,Ἥ,Ἢ,Ἣ,Ἦ,Ἧ" />
+ latin:moreKeys="Ή,Ὴ,Ἠ,Ἡ,Ἤ,Ἥ,Ἢ,Ἣ,Ἦ,Ἧ"
+ latin:keyHintLabel="-"
+ latin:additionalMoreKeys="-" />
</case>
<default>
<!-- U+03B7: "η" GREEK SMALL LETTER ETA
@@ -128,16 +142,24 @@
U+1F97: "ᾗ" GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI -->
<Key
latin:keySpec="η"
- latin:moreKeys="ή,ὴ,ῆ,ἠ,ἡ,ἤ,ἥ,ἢ,ἣ,ἦ,ἧ,ῃ,ῄ,ῂ,ῇ,ᾐ,ᾑ,ᾔ,ᾕ,ᾒ,ᾓ,ᾖ,ᾗ" />
+ latin:moreKeys="ή,ὴ,ῆ,ἠ,ἡ,ἤ,ἥ,ἢ,ἣ,ἦ,ἧ,ῃ,ῄ,ῂ,ῇ,ᾐ,ᾑ,ᾔ,ᾕ,ᾒ,ᾓ,ᾖ,ᾗ"
+ latin:keyHintLabel="-"
+ latin:additionalMoreKeys="-" />
</default>
</switch>
<!-- U+03BE: "ξ" GREEK SMALL LETTER XI -->
<Key
- latin:keySpec="ξ" />
+ latin:keySpec="ξ"
+ latin:keyHintLabel="+"
+ latin:additionalMoreKeys="+" />
<!-- U+03BA: "κ" GREEK SMALL LETTER KAPPA -->
<Key
- latin:keySpec="κ" />
+ latin:keySpec="κ"
+ latin:keyHintLabel="("
+ latin:additionalMoreKeys="(" />
<!-- U+03BB: "λ" GREEK SMALL LETTER LAMDA -->
<Key
- latin:keySpec="λ" />
+ latin:keySpec="λ"
+ latin:keyHintLabel=")"
+ latin:additionalMoreKeys=")" />
</merge>
diff --git a/java/res/xml/rowkeys_greek3.xml b/java/res/xml/rowkeys_greek3.xml
index 0c2667b..8249992 100644
--- a/java/res/xml/rowkeys_greek3.xml
+++ b/java/res/xml/rowkeys_greek3.xml
@@ -23,13 +23,19 @@
>
<!-- U+03B6: "ζ" GREEK SMALL LETTER ZETA -->
<Key
- latin:keySpec="ζ" />
+ latin:keySpec="ζ"
+ latin:keyHintLabel="*"
+ latin:additionalMoreKeys="*" />
<!-- U+03C7: "χ" GREEK SMALL LETTER CHI -->
<Key
- latin:keySpec="χ" />
+ latin:keySpec="χ"
+ latin:keyHintLabel="""
+ latin:additionalMoreKeys=""" />
<!-- U+03C8: "ψ" GREEK SMALL LETTER PSI -->
<Key
- latin:keySpec="ψ" />
+ latin:keySpec="ψ"
+ latin:keyHintLabel="'"
+ latin:additionalMoreKeys="'" />
<switch>
<case
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
@@ -47,7 +53,9 @@
U+1F6F: "Ὧ" GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI -->
<Key
latin:keySpec="ω"
- latin:moreKeys="Ώ,Ὼ,Ὠ,Ὡ,Ὤ,Ὥ,Ὢ,Ὣ,Ὦ,Ὧ" />
+ latin:moreKeys="Ώ,Ὼ,Ὠ,Ὡ,Ὤ,Ὥ,Ὢ,Ὣ,Ὦ,Ὧ"
+ latin:keyHintLabel=":"
+ latin:additionalMoreKeys=":" />
</case>
<default>
<!-- U+03C9: "ω" GREEK SMALL LETTER OMEGA
@@ -76,16 +84,24 @@
U+1FA7: "ᾧ" GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI -->
<Key
latin:keySpec="ω"
- latin:moreKeys="ώ,ὼ,ῶ,ὠ,ὡ,ὤ,ὥ,ὢ,ὣ,ὦ,ὧ,ῳ,ῴ,ῲ,ῷ,ᾠ,ᾡ,ᾤ,ᾥ,ᾢ,ᾣ,ᾦ,ᾧ" />
+ latin:moreKeys="ώ,ὼ,ῶ,ὠ,ὡ,ὤ,ὥ,ὢ,ὣ,ὦ,ὧ,ῳ,ῴ,ῲ,ῷ,ᾠ,ᾡ,ᾤ,ᾥ,ᾢ,ᾣ,ᾦ,ᾧ"
+ latin:keyHintLabel=":"
+ latin:additionalMoreKeys=":" />
</default>
</switch>
<!-- U+03B2: "β" GREEK SMALL LETTER BETA -->
<Key
- latin:keySpec="β" />
+ latin:keySpec="β"
+ latin:keyHintLabel=";"
+ latin:additionalMoreKeys=";" />
<!-- U+03BD: "ν" GREEK SMALL LETTER NU -->
<Key
- latin:keySpec="ν" />
+ latin:keySpec="ν"
+ latin:keyHintLabel="!"
+ latin:additionalMoreKeys="!" />
<!-- U+03BC: "μ" GREEK SMALL LETTER MU -->
<Key
- latin:keySpec="μ" />
+ latin:keySpec="μ"
+ latin:keyHintLabel="\?"
+ latin:additionalMoreKeys="\\?" />
</merge>
diff --git a/java/res/xml/rowkeys_qwerty2_left5.xml b/java/res/xml/rowkeys_qwerty2_left5.xml
index 1803bf2..3f8517c 100644
--- a/java/res/xml/rowkeys_qwerty2_left5.xml
+++ b/java/res/xml/rowkeys_qwerty2_left5.xml
@@ -23,16 +23,26 @@
>
<Key
latin:keySpec="a"
+ latin:keyHintLabel="\@"
+ latin:additionalMoreKeys="\\@"
latin:moreKeys="!text/morekeys_a" />
<Key
latin:keySpec="s"
+ latin:keyHintLabel="#"
+ latin:additionalMoreKeys="#"
latin:moreKeys="!text/morekeys_s" />
<Key
latin:keySpec="d"
+ latin:keyHintLabel="$"
+ latin:additionalMoreKeys="$"
latin:moreKeys="!text/morekeys_d" />
<Key
- latin:keySpec="f" />
+ latin:keySpec="f"
+ latin:keyHintLabel="%"
+ latin:additionalMoreKeys="%" />
<Key
latin:keySpec="g"
+ latin:keyHintLabel="&"
+ latin:additionalMoreKeys="&"
latin:moreKeys="!text/morekeys_g" />
</merge>
diff --git a/java/res/xml/rowkeys_qwerty2_right4.xml b/java/res/xml/rowkeys_qwerty2_right4.xml
index 99936b7..c936280 100644
--- a/java/res/xml/rowkeys_qwerty2_right4.xml
+++ b/java/res/xml/rowkeys_qwerty2_right4.xml
@@ -23,14 +23,22 @@
>
<Key
latin:keySpec="h"
+ latin:keyHintLabel="-"
+ latin:additionalMoreKeys="-"
latin:moreKeys="!text/morekeys_h" />
<Key
latin:keySpec="j"
+ latin:keyHintLabel="+"
+ latin:additionalMoreKeys="+"
latin:moreKeys="!text/morekeys_j" />
<Key
latin:keySpec="k"
+ latin:keyHintLabel="("
+ latin:additionalMoreKeys="("
latin:moreKeys="!text/morekeys_k" />
<Key
latin:keySpec="l"
+ latin:keyHintLabel=")"
+ latin:additionalMoreKeys=")"
latin:moreKeys="!text/morekeys_l" />
</merge>
diff --git a/java/res/xml/rowkeys_qwerty3_left4.xml b/java/res/xml/rowkeys_qwerty3_left4.xml
index 6043c3b..8dc9d41 100644
--- a/java/res/xml/rowkeys_qwerty3_left4.xml
+++ b/java/res/xml/rowkeys_qwerty3_left4.xml
@@ -23,14 +23,22 @@
>
<Key
latin:keySpec="z"
+ latin:keyHintLabel="*"
+ latin:additionalMoreKeys="*"
latin:moreKeys="!text/morekeys_z" />
<Key
latin:keySpec="!text/keyspec_x"
+ latin:keyHintLabel="""
+ latin:additionalMoreKeys="""
latin:moreKeys="!text/morekeys_x" />
<Key
latin:keySpec="c"
+ latin:keyHintLabel="'"
+ latin:additionalMoreKeys="'"
latin:moreKeys="!text/morekeys_c" />
<Key
latin:keySpec="v"
+ latin:keyHintLabel=":"
+ latin:additionalMoreKeys=":"
latin:moreKeys="!text/morekeys_v" />
</merge>
diff --git a/java/res/xml/rowkeys_qwerty3_right3.xml b/java/res/xml/rowkeys_qwerty3_right3.xml
index f699103..4646029 100644
--- a/java/res/xml/rowkeys_qwerty3_right3.xml
+++ b/java/res/xml/rowkeys_qwerty3_right3.xml
@@ -22,10 +22,16 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
<Key
- latin:keySpec="b" />
+ latin:keySpec="b"
+ latin:keyHintLabel=";"
+ latin:additionalMoreKeys=";" />
<Key
latin:keySpec="n"
+ latin:keyHintLabel="!"
+ latin:additionalMoreKeys="!"
latin:moreKeys="!text/morekeys_n" />
<Key
- latin:keySpec="m" />
+ latin:keySpec="m"
+ latin:keyHintLabel="\?"
+ latin:additionalMoreKeys="\\?" />
</merge>
diff --git a/java/res/drawable/btn_suggestion_klp.xml b/java/res/xml/rowkeys_qwertz2.xml
similarity index 63%
rename from java/res/drawable/btn_suggestion_klp.xml
rename to java/res/xml/rowkeys_qwertz2.xml
index 471165b..10878a0 100644
--- a/java/res/drawable/btn_suggestion_klp.xml
+++ b/java/res/xml/rowkeys_qwertz2.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2013, The Android Open Source Project
+** Copyright 2012, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@@ -18,10 +18,13 @@
*/
-->
-<selector
- xmlns:android="http://schemas.android.com/apk/res/android"
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
- <item
- android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_popup_selected_klp" />
-</selector>
+ <!-- a,s,d,f,g -->
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwertz2_left5" />
+ <!-- h,j,k,l -->
+ <include
+ latin:keyboardLayout="@xml/rowkeys_qwertz2_right4" />
+</merge>
diff --git a/java/res/xml/rowkeys_qwertz2_left5.xml b/java/res/xml/rowkeys_qwertz2_left5.xml
new file mode 100644
index 0000000..f0ccaa5
--- /dev/null
+++ b/java/res/xml/rowkeys_qwertz2_left5.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <Key
+ latin:keySpec="a"
+ latin:moreKeys="!text/morekeys_a" />
+ <Key
+ latin:keySpec="s"
+ latin:moreKeys="!text/morekeys_s" />
+ <Key
+ latin:keySpec="d"
+ latin:keyHintLabel="€"
+ latin:additionalMoreKeys="€"
+ latin:moreKeys="!text/morekeys_d" />
+ <Key
+ latin:keySpec="f"
+ latin:keyHintLabel="%"
+ latin:additionalMoreKeys="%" />
+ <Key
+ latin:keySpec="g"
+ latin:keyHintLabel="&"
+ latin:additionalMoreKeys="&"
+ latin:moreKeys="!text/morekeys_g" />
+</merge>
diff --git a/java/res/xml/rowkeys_qwertz2_right4.xml b/java/res/xml/rowkeys_qwertz2_right4.xml
new file mode 100644
index 0000000..c936280
--- /dev/null
+++ b/java/res/xml/rowkeys_qwertz2_right4.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <Key
+ latin:keySpec="h"
+ latin:keyHintLabel="-"
+ latin:additionalMoreKeys="-"
+ latin:moreKeys="!text/morekeys_h" />
+ <Key
+ latin:keySpec="j"
+ latin:keyHintLabel="+"
+ latin:additionalMoreKeys="+"
+ latin:moreKeys="!text/morekeys_j" />
+ <Key
+ latin:keySpec="k"
+ latin:keyHintLabel="("
+ latin:additionalMoreKeys="("
+ latin:moreKeys="!text/morekeys_k" />
+ <Key
+ latin:keySpec="l"
+ latin:keyHintLabel=")"
+ latin:additionalMoreKeys=")"
+ latin:moreKeys="!text/morekeys_l" />
+</merge>
diff --git a/java/res/xml/rowkeys_qwertz3.xml b/java/res/xml/rowkeys_qwertz3.xml
index a66c348..18c60b3 100644
--- a/java/res/xml/rowkeys_qwertz3.xml
+++ b/java/res/xml/rowkeys_qwertz3.xml
@@ -23,20 +23,34 @@
>
<Key
latin:keySpec="y"
+ latin:keyHintLabel="*"
+ latin:additionalMoreKeys="*"
latin:moreKeys="!text/morekeys_y" />
<Key
- latin:keySpec="x" />
+ latin:keySpec="x"
+ latin:keyHintLabel="""
+ latin:additionalMoreKeys=""" />
<Key
latin:keySpec="c"
+ latin:keyHintLabel="'"
+ latin:additionalMoreKeys="'"
latin:moreKeys="!text/morekeys_c" />
<Key
latin:keySpec="v"
+ latin:keyHintLabel=":"
+ latin:additionalMoreKeys=":"
latin:moreKeys="!text/morekeys_v" />
<Key
- latin:keySpec="b" />
+ latin:keySpec="b"
+ latin:keyHintLabel=";"
+ latin:additionalMoreKeys=";" />
<Key
latin:keySpec="n"
+ latin:keyHintLabel="!"
+ latin:additionalMoreKeys="!"
latin:moreKeys="!text/morekeys_n" />
<Key
- latin:keySpec="m" />
+ latin:keySpec="m"
+ latin:keyHintLabel="\?"
+ latin:additionalMoreKeys="\\?" />
</merge>
diff --git a/java/res/xml/rows_qwertz.xml b/java/res/xml/rows_qwertz.xml
index 31a147c..e4ba99f 100644
--- a/java/res/xml/rows_qwertz.xml
+++ b/java/res/xml/rows_qwertz.xml
@@ -33,7 +33,7 @@
latin:keyWidth="10%p"
>
<include
- latin:keyboardLayout="@xml/rowkeys_qwerty2"
+ latin:keyboardLayout="@xml/rowkeys_qwertz2"
latin:keyXPos="5%p" />
</Row>
<Row
diff --git a/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java b/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java
index 35b46a9..df03fd3 100644
--- a/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java
+++ b/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java
@@ -31,7 +31,6 @@
import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.Preference;
-import android.preference.PreferenceFragment;
import android.preference.PreferenceGroup;
import android.text.TextUtils;
import android.util.Log;
@@ -44,6 +43,7 @@
import android.view.animation.AnimationUtils;
import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.settings.CustomPreferenceFragment;
import java.util.ArrayList;
import java.util.Collection;
@@ -53,7 +53,7 @@
/**
* Preference screen.
*/
-public final class DictionarySettingsFragment extends PreferenceFragment
+public final class DictionarySettingsFragment extends CustomPreferenceFragment
implements UpdateHandler.UpdateEventListener {
private static final String TAG = DictionarySettingsFragment.class.getSimpleName();
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java b/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java
index 006d086..fbfb108 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java
@@ -17,6 +17,7 @@
package com.android.inputmethod.keyboard;
import android.content.Context;
+import android.content.res.Configuration;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Build.VERSION_CODES;
@@ -32,33 +33,30 @@
public final class KeyboardTheme implements Comparable<KeyboardTheme> {
private static final String TAG = KeyboardTheme.class.getSimpleName();
- static final String KLP_KEYBOARD_THEME_KEY = "pref_keyboard_layout_20110916";
static final String LXX_KEYBOARD_THEME_KEY = "pref_keyboard_theme_20140509";
// These should be aligned with Keyboard.themeId and Keyboard.Case.keyboardTheme
// attributes' values in attrs.xml.
- public static final int THEME_ID_ICS = 0;
- public static final int THEME_ID_KLP = 2;
public static final int THEME_ID_LXX_LIGHT = 3;
public static final int THEME_ID_LXX_DARK = 4;
- public static final int DEFAULT_THEME_ID = THEME_ID_KLP;
+ public static final int THEME_ID_AUTO_DARK = 5;
+ public static final int THEME_ID_YOU = 6;
+ public static final int DEFAULT_THEME_ID = THEME_ID_AUTO_DARK;
private static KeyboardTheme[] AVAILABLE_KEYBOARD_THEMES;
/* package private for testing */
static final KeyboardTheme[] KEYBOARD_THEMES = {
- new KeyboardTheme(THEME_ID_ICS, "ICS", R.style.KeyboardTheme_ICS,
- // This has never been selected because we support ICS or later.
- VERSION_CODES.BASE),
- new KeyboardTheme(THEME_ID_KLP, "KLP", R.style.KeyboardTheme_KLP,
- // Default theme for ICS, JB, and KLP.
- VERSION_CODES.ICE_CREAM_SANDWICH),
new KeyboardTheme(THEME_ID_LXX_LIGHT, "LXXLight", R.style.KeyboardTheme_LXX_Light,
// Default theme for LXX.
Build.VERSION_CODES.LOLLIPOP),
new KeyboardTheme(THEME_ID_LXX_DARK, "LXXDark", R.style.KeyboardTheme_LXX_Dark,
// This has never been selected as default theme.
VERSION_CODES.BASE),
+ new KeyboardTheme(THEME_ID_AUTO_DARK, "AutoDark", 0,
+ Build.VERSION_CODES.Q),
+ new KeyboardTheme(THEME_ID_YOU, "You", R.style.KeyboardTheme_You,
+ Build.VERSION_CODES.S_V2),
};
static {
@@ -114,25 +112,6 @@
/* package private for testing */
static KeyboardTheme getDefaultKeyboardTheme(final SharedPreferences prefs,
final int sdkVersion, final KeyboardTheme[] availableThemeArray) {
- final String klpThemeIdString = prefs.getString(KLP_KEYBOARD_THEME_KEY, null);
- if (klpThemeIdString != null) {
- if (sdkVersion <= VERSION_CODES.KITKAT) {
- try {
- final int themeId = Integer.parseInt(klpThemeIdString);
- final KeyboardTheme theme = searchKeyboardThemeById(themeId,
- availableThemeArray);
- if (theme != null) {
- return theme;
- }
- Log.w(TAG, "Unknown keyboard theme in KLP preference: " + klpThemeIdString);
- } catch (final NumberFormatException e) {
- Log.w(TAG, "Illegal keyboard theme in KLP preference: " + klpThemeIdString, e);
- }
- }
- // Remove old preference.
- Log.i(TAG, "Remove KLP keyboard theme preference: " + klpThemeIdString);
- prefs.edit().remove(KLP_KEYBOARD_THEME_KEY).apply();
- }
// TODO: This search algorithm isn't optimal if there are many themes.
for (final KeyboardTheme theme : availableThemeArray) {
if (sdkVersion >= theme.mMinApiVersion) {
@@ -143,33 +122,19 @@
}
public static String getKeyboardThemeName(final int themeId) {
- final KeyboardTheme theme = searchKeyboardThemeById(themeId, KEYBOARD_THEMES);
+ KeyboardTheme theme = searchKeyboardThemeById(themeId, KEYBOARD_THEMES);
+ if (theme == null) {
+ theme = searchKeyboardThemeById(DEFAULT_THEME_ID, KEYBOARD_THEMES);
+ }
return theme.mThemeName;
}
public static void saveKeyboardThemeId(final int themeId, final SharedPreferences prefs) {
- saveKeyboardThemeId(themeId, prefs, BuildCompatUtils.EFFECTIVE_SDK_INT);
- }
-
- /* package private for testing */
- static String getPreferenceKey(final int sdkVersion) {
- if (sdkVersion <= VERSION_CODES.KITKAT) {
- return KLP_KEYBOARD_THEME_KEY;
- }
- return LXX_KEYBOARD_THEME_KEY;
- }
-
- /* package private for testing */
- static void saveKeyboardThemeId(final int themeId, final SharedPreferences prefs,
- final int sdkVersion) {
- final String prefKey = getPreferenceKey(sdkVersion);
- prefs.edit().putString(prefKey, Integer.toString(themeId)).apply();
+ prefs.edit().putString(LXX_KEYBOARD_THEME_KEY, Integer.toString(themeId)).apply();
}
public static KeyboardTheme getKeyboardTheme(final Context context) {
- final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
- final KeyboardTheme[] availableThemeArray = getAvailableThemeArray(context);
- return getKeyboardTheme(prefs, BuildCompatUtils.EFFECTIVE_SDK_INT, availableThemeArray);
+ return getKeyboardTheme(context, BuildCompatUtils.EFFECTIVE_SDK_INT);
}
/* package private for testing */
@@ -192,24 +157,43 @@
}
/* package private for testing */
- static KeyboardTheme getKeyboardTheme(final SharedPreferences prefs, final int sdkVersion,
- final KeyboardTheme[] availableThemeArray) {
- final String lxxThemeIdString = prefs.getString(LXX_KEYBOARD_THEME_KEY, null);
- if (lxxThemeIdString == null) {
- return getDefaultKeyboardTheme(prefs, sdkVersion, availableThemeArray);
- }
- try {
- final int themeId = Integer.parseInt(lxxThemeIdString);
- final KeyboardTheme theme = searchKeyboardThemeById(themeId, availableThemeArray);
- if (theme != null) {
- return theme;
+ static KeyboardTheme getKeyboardTheme(final Context context, final int sdkVersion) {
+ int themeId = getSelectedKeyboardThemeId(context);
+ if (THEME_ID_AUTO_DARK == themeId) {
+ Configuration cfg = context.getResources().getConfiguration();
+ int nightMode = cfg.uiMode & Configuration.UI_MODE_NIGHT_MASK;
+ if (nightMode == Configuration.UI_MODE_NIGHT_YES) {
+ themeId = THEME_ID_LXX_DARK;
+ } else {
+ themeId = THEME_ID_LXX_LIGHT;
}
- Log.w(TAG, "Unknown keyboard theme in LXX preference: " + lxxThemeIdString);
- } catch (final NumberFormatException e) {
- Log.w(TAG, "Illegal keyboard theme in LXX preference: " + lxxThemeIdString, e);
+ }
+ final KeyboardTheme[] availableThemeArray = getAvailableThemeArray(context);
+ final KeyboardTheme theme = searchKeyboardThemeById(themeId, availableThemeArray);
+ if (theme != null) {
+ return theme;
+ }
+ Log.w(TAG, "Unknown keyboard theme in LXX preference: " + themeId);
+ // Remove preference that contains unknown or illegal theme id.
+ final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+ prefs.edit().remove(LXX_KEYBOARD_THEME_KEY).apply();
+ return getDefaultKeyboardTheme(prefs, sdkVersion, availableThemeArray);
+ }
+
+ public static int getSelectedKeyboardThemeId(final Context context) {
+ final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+ final KeyboardTheme[] availableThemeArray = getAvailableThemeArray(context);
+ final String lxxThemeIdString = prefs.getString(LXX_KEYBOARD_THEME_KEY, null);
+ if (lxxThemeIdString != null) {
+ try {
+ return Integer.parseInt(lxxThemeIdString);
+ } catch (final NumberFormatException e) {
+ Log.w(TAG, "Illegal keyboard theme in LXX preference: " + lxxThemeIdString, e);
+ }
}
// Remove preference that contains unknown or illegal theme id.
prefs.edit().remove(LXX_KEYBOARD_THEME_KEY).apply();
- return getDefaultKeyboardTheme(prefs, sdkVersion, availableThemeArray);
+ return getDefaultKeyboardTheme(prefs, BuildCompatUtils.EFFECTIVE_SDK_INT,
+ availableThemeArray).mThemeId;
}
}
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index faa2107..cd5073d 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -52,6 +52,7 @@
* @attr ref R.styleable#KeyboardView_spacebarIconWidthRatio
* @attr ref R.styleable#Keyboard_Key_keyLabelFlags
* @attr ref R.styleable#KeyboardView_keyHintLetterPadding
+ * @attr ref R.styleable#KeyboardView_keyHintLetterPaddingVertical
* @attr ref R.styleable#KeyboardView_keyPopupHintLetter
* @attr ref R.styleable#KeyboardView_keyPopupHintLetterPadding
* @attr ref R.styleable#KeyboardView_keyShiftedLetterHintPadding
@@ -83,7 +84,8 @@
// Default keyLabelFlags from {@link KeyboardTheme}.
// Currently only "alignHintLabelToBottom" is supported.
private final int mDefaultKeyLabelFlags;
- private final float mKeyHintLetterPadding;
+ private final float mKeyHintLetterPaddingX;
+ private final float mKeyHintLetterPaddingY;
private final String mKeyPopupHintLetter;
private final float mKeyPopupHintLetterPadding;
private final float mKeyShiftedLetterHintPadding;
@@ -142,8 +144,10 @@
mSpacebarBackground = (spacebarBackground != null) ? spacebarBackground : mKeyBackground;
mSpacebarIconWidthRatio = keyboardViewAttr.getFloat(
R.styleable.KeyboardView_spacebarIconWidthRatio, 1.0f);
- mKeyHintLetterPadding = keyboardViewAttr.getDimension(
+ mKeyHintLetterPaddingX = keyboardViewAttr.getDimension(
R.styleable.KeyboardView_keyHintLetterPadding, 0.0f);
+ mKeyHintLetterPaddingY = keyboardViewAttr.getDimension(
+ R.styleable.KeyboardView_keyHintLetterPaddingVertical, 0.0f);
mKeyPopupHintLetter = keyboardViewAttr.getString(
R.styleable.KeyboardView_keyPopupHintLetter);
mKeyPopupHintLetterPadding = keyboardViewAttr.getDimension(
@@ -355,12 +359,8 @@
if (key.needsToKeepBackgroundAspectRatio(mDefaultKeyLabelFlags)
// HACK: To disable expanding normal/functional key background.
&& !key.hasCustomActionLabel()) {
- final int intrinsicWidth = background.getIntrinsicWidth();
- final int intrinsicHeight = background.getIntrinsicHeight();
- final float minScale = Math.min(
- keyWidth / (float)intrinsicWidth, keyHeight / (float)intrinsicHeight);
- bgWidth = (int)(intrinsicWidth * minScale);
- bgHeight = (int)(intrinsicHeight * minScale);
+ bgWidth = background.getIntrinsicWidth();
+ bgHeight = background.getIntrinsicHeight();
bgX = (keyWidth - bgWidth) / 2;
bgY = (keyHeight - bgHeight) / 2;
} else {
@@ -370,10 +370,7 @@
bgX = -padding.left;
bgY = -padding.top;
}
- final Rect bounds = background.getBounds();
- if (bgWidth != bounds.right || bgHeight != bounds.bottom) {
- background.setBounds(0, 0, bgWidth, bgHeight);
- }
+ background.setBounds(0, 0, bgWidth, bgHeight);
canvas.translate(bgX, bgY);
background.draw(canvas);
canvas.translate(-bgX, -bgY);
@@ -474,9 +471,9 @@
// The hint letter is placed at top-right corner of the key. Used mainly on phone.
final float hintDigitWidth = TypefaceUtils.getReferenceDigitWidth(paint);
final float hintLabelWidth = TypefaceUtils.getStringWidth(hintLabel, paint);
- hintX = keyWidth - mKeyHintLetterPadding
+ hintX = keyWidth - mKeyHintLetterPaddingX
- Math.max(hintDigitWidth, hintLabelWidth) / 2.0f;
- hintBaseline = -paint.ascent();
+ hintBaseline = -paint.ascent() + mKeyHintLetterPaddingY;
paint.setTextAlign(Align.CENTER);
}
final float adjustmentY = params.mHintLabelVerticalAdjustment * labelCharHeight;
@@ -521,7 +518,7 @@
paint.setTextSize(params.mHintLetterSize);
paint.setColor(params.mHintLabelColor);
paint.setTextAlign(Align.CENTER);
- final float hintX = keyWidth - mKeyHintLetterPadding
+ final float hintX = keyWidth - mKeyHintLetterPaddingX
- TypefaceUtils.getReferenceCharWidth(paint) / 2.0f;
final float hintY = keyHeight - mKeyPopupHintLetterPadding;
canvas.drawText(mKeyPopupHintLetter, hintX, hintY, paint);
diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
index 9764cb3..05680c5 100644
--- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java
+++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
@@ -636,9 +636,14 @@
final Key key = getKeyOn(x, y);
mBogusMoveEventDetector.onActualDownEvent(x, y);
if (key != null && key.isModifier()) {
- // Before processing a down event of modifier key, all pointers already being
- // tracked should be released.
- sPointerTrackerQueue.releaseAllPointers(eventTime);
+ if (sInGesture) {
+ // Make sure not to interrupt an active gesture
+ return;
+ } else {
+ // Before processing a down event of modifier key, all pointers
+ // already being tracked should be released.
+ sPointerTrackerQueue.releaseAllPointers(eventTime);
+ }
}
sPointerTrackerQueue.add(this);
onDownEventInternal(x, y, eventTime);
diff --git a/java/src/com/android/inputmethod/keyboard/emoji/EmojiCategory.java b/java/src/com/android/inputmethod/keyboard/emoji/EmojiCategory.java
index b57e483..41e87f4 100644
--- a/java/src/com/android/inputmethod/keyboard/emoji/EmojiCategory.java
+++ b/java/src/com/android/inputmethod/keyboard/emoji/EmojiCategory.java
@@ -184,7 +184,7 @@
addShownCategoryId(EmojiCategory.ID_EIGHT_ACTIVITY);
addShownCategoryId(EmojiCategory.ID_EIGHT_OBJECTS);
addShownCategoryId(EmojiCategory.ID_EIGHT_SYMBOLS);
- addShownCategoryId(EmojiCategory.ID_FLAGS); // Exclude combinations without glyphs.
+ addShownCategoryId(EmojiCategory.ID_EIGHT_FLAGS);
} else {
defaultCategoryId = EmojiCategory.ID_PEOPLE;
addShownCategoryId(EmojiCategory.ID_PEOPLE);
diff --git a/java/src/com/android/inputmethod/keyboard/emoji/EmojiLayoutParams.java b/java/src/com/android/inputmethod/keyboard/emoji/EmojiLayoutParams.java
index 797541a..d3d050e 100644
--- a/java/src/com/android/inputmethod/keyboard/emoji/EmojiLayoutParams.java
+++ b/java/src/com/android/inputmethod/keyboard/emoji/EmojiLayoutParams.java
@@ -25,8 +25,6 @@
import com.android.inputmethod.latin.utils.ResourceUtils;
final class EmojiLayoutParams {
- private static final int DEFAULT_KEYBOARD_ROWS = 4;
-
public final int mEmojiPagerHeight;
private final int mEmojiPagerBottomMargin;
public final int mEmojiKeyboardHeight;
@@ -52,7 +50,9 @@
(int) (res.getDimension(R.dimen.config_emoji_category_page_id_height));
final int baseheight = defaultKeyboardHeight - mBottomPadding - mTopPadding
+ mKeyVerticalGap;
- mEmojiActionBarHeight = baseheight / DEFAULT_KEYBOARD_ROWS
+ final int mNumberOfRows = (int) (1.0f / res.getFraction(
+ R.fraction.config_emoji_keyboard_row_height, 1, 1)) + 1;
+ mEmojiActionBarHeight = baseheight / mNumberOfRows
- (mKeyVerticalGap - mBottomPadding) / 2;
mEmojiPagerHeight = defaultKeyboardHeight - mEmojiActionBarHeight
- mEmojiCategoryPageIdViewHeight;
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
index 7dfb532..ec1307e 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
@@ -2781,6 +2781,41 @@
/* additional_morekeys_symbols_0 */ "0",
};
+ /* Locale my_MM: Burmese (Myanmar) */
+ private static final String[] TEXTS_my_MM = {
+ /* morekeys_a ~ */
+ null, null, null, null,
+ /* ~ morekeys_u */
+ // Label for "switch to alphabetic" key.
+ // U+1000: "က" MYANMAR LETTER KA
+ // U+1001: "ခ" MYANMAR LETTER KHA
+ // U+1002: "ဂ" MYANMAR LETTER GA
+ /* keylabel_to_alpha */ "\u1000\u1001\u1002",
+ /* morekeys_i ~ */
+ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null,
+ /* ~ morekeys_nordic_row2_11 */
+ /* morekeys_punctuation */ "!autoColumnOrder!9,\u104A,.,?,!,#,),(,/,;,...,',@,:,-,\",+,\\%,&",
+ // U+104A: "၊" MYANMAR SIGN LITTLE SECTION
+ // U+104B: "။" MYANMAR SIGN SECTION
+ /* keyspec_tablet_comma */ "\u104A",
+ /* keyspec_period */ "\u104B",
+ /* morekeys_period */ null,
+ /* keyspec_tablet_period */ "\u104B",
+ /* keyspec_swiss_row1_11 ~ */
+ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null,
+ /* ~ keyspec_comma */
+ /* morekeys_tablet_comma */ "\\,",
+ /* keyhintlabel_period */ "\u104A",
+ /* morekeys_question ~ */
+ null, null, null, null, null, null, null, null, null, null, null, null, null,
+ /* ~ keyspec_south_slavic_row3_8 */
+ /* morekeys_tablet_punctuation */ "!autoColumnOrder!8,.,',#,),(,/,;,@,...,:,-,\",+,\\%,&",
+ };
+
/* Locale nb: Norwegian Bokmål */
private static final String[] TEXTS_nb = {
// U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
@@ -4154,6 +4189,7 @@
"ml_IN" , TEXTS_ml_IN, /* 2/ 12 Malayalam (India) */
"mn_MN" , TEXTS_mn_MN, /* 2/ 12 Mongolian (Mongolia) */
"mr_IN" , TEXTS_mr_IN, /* 23/ 53 Marathi (India) */
+ "my_MM" , TEXTS_my_MM, /* 8/ 98 Burmese (Myanmar) */
"nb" , TEXTS_nb, /* 11/ 55 Norwegian Bokmål */
"ne_NP" , TEXTS_ne_NP, /* 27/ 60 Nepali (Nepal) */
"nl" , TEXTS_nl, /* 9/ 13 Dutch */
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
index 9a3ac67..3c329bb 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
@@ -76,7 +76,7 @@
private static final int FORMAT_WORD_PROPERTY_IS_NOT_A_WORD_INDEX = 0;
private static final int FORMAT_WORD_PROPERTY_IS_POSSIBLY_OFFENSIVE_INDEX = 1;
private static final int FORMAT_WORD_PROPERTY_HAS_NGRAMS_INDEX = 2;
- private static final int FORMAT_WORD_PROPERTY_HAS_SHORTCUTS_INDEX = 3; // DEPRECATED
+ private static final int FORMAT_WORD_PROPERTY_HAS_SHORTCUTS_INDEX = 3;
private static final int FORMAT_WORD_PROPERTY_IS_BEGINNING_OF_SENTENCE_INDEX = 4;
// Format to get probability and historical info from native side via getWordPropertyNative().
@@ -412,9 +412,11 @@
outFlags[FORMAT_WORD_PROPERTY_IS_NOT_A_WORD_INDEX],
outFlags[FORMAT_WORD_PROPERTY_IS_POSSIBLY_OFFENSIVE_INDEX],
outFlags[FORMAT_WORD_PROPERTY_HAS_NGRAMS_INDEX],
+ outFlags[FORMAT_WORD_PROPERTY_HAS_SHORTCUTS_INDEX],
outFlags[FORMAT_WORD_PROPERTY_IS_BEGINNING_OF_SENTENCE_INDEX], outProbabilityInfo,
outNgramPrevWordsArray, outNgramPrevWordIsBeginningOfSentenceArray,
- outNgramTargets, outNgramProbabilityInfo);
+ outNgramTargets, outNgramProbabilityInfo, outShortcutTargets,
+ outShortcutProbabilities);
}
public static class GetNextWordPropertyResult {
@@ -442,16 +444,19 @@
}
// Add a unigram entry to binary dictionary with unigram attributes in native code.
- public boolean addUnigramEntry(
- final String word, final int probability, final boolean isBeginningOfSentence,
- final boolean isNotAWord, final boolean isPossiblyOffensive, final int timestamp) {
+ public boolean addUnigramEntry(final String word, final int probability,
+ final String shortcutTarget, final int shortcutProbability,
+ final boolean isBeginningOfSentence, final boolean isNotAWord,
+ final boolean isPossiblyOffensive, final int timestamp) {
if (word == null || (word.isEmpty() && !isBeginningOfSentence)) {
return false;
}
final int[] codePoints = StringUtils.toCodePointArray(word);
- if (!addUnigramEntryNative(mNativeDict, codePoints, probability,
- null /* shortcutTargetCodePoints */, 0 /* shortcutProbability */,
- isBeginningOfSentence, isNotAWord, isPossiblyOffensive, timestamp)) {
+ final int[] shortcutTargetCodePoints = (shortcutTarget != null) ?
+ StringUtils.toCodePointArray(shortcutTarget) : null;
+ if (!addUnigramEntryNative(mNativeDict, codePoints, probability, shortcutTargetCodePoints,
+ shortcutProbability, isBeginningOfSentence, isNotAWord, isPossiblyOffensive,
+ timestamp)) {
return false;
}
mHasUpdated = true;
diff --git a/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
index dbd639f..732484c 100644
--- a/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
@@ -101,6 +101,8 @@
}
runGCIfRequiredLocked(true /* mindsBlockByGC */);
addUnigramLocked(word, ContactsDictionaryConstants.FREQUENCY_FOR_CONTACTS,
+ null /* shortcut */,
+ 0 /* shortcutFreq */,
false /* isNotAWord */, false /* isPossiblyOffensive */,
BinaryDictionary.NOT_A_VALID_TIMESTAMP);
}
@@ -151,8 +153,8 @@
Log.d(TAG, "addName " + name + ", " + word + ", " + ngramContext);
}
runGCIfRequiredLocked(true /* mindsBlockByGC */);
- addUnigramLocked(word,
- ContactsDictionaryConstants.FREQUENCY_FOR_CONTACTS, false /* isNotAWord */,
+ addUnigramLocked(word, ContactsDictionaryConstants.FREQUENCY_FOR_CONTACTS,
+ null /* shortcut */, 0 /* shortcutFreq */, false /* isNotAWord */,
false /* isPossiblyOffensive */,
BinaryDictionary.NOT_A_VALID_TIMESTAMP);
if (ngramContext.isValid() && mUseFirstLastBigrams) {
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index 9070957..f9cc1c4 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -295,18 +295,21 @@
* Adds unigram information of a word to the dictionary. May overwrite an existing entry.
*/
public void addUnigramEntry(final String word, final int frequency,
- final boolean isNotAWord, final boolean isPossiblyOffensive, final int timestamp) {
+ final String shortcutTarget, final int shortcutFreq, final boolean isNotAWord,
+ final boolean isPossiblyOffensive, final int timestamp) {
updateDictionaryWithWriteLock(new Runnable() {
@Override
public void run() {
- addUnigramLocked(word, frequency, isNotAWord, isPossiblyOffensive, timestamp);
+ addUnigramLocked(word, frequency, shortcutTarget, shortcutFreq,
+ isNotAWord, isPossiblyOffensive, timestamp);
}
});
}
protected void addUnigramLocked(final String word, final int frequency,
- final boolean isNotAWord, final boolean isPossiblyOffensive, final int timestamp) {
- if (!mBinaryDictionary.addUnigramEntry(word, frequency,
+ final String shortcutTarget, final int shortcutFreq, final boolean isNotAWord,
+ final boolean isPossiblyOffensive, final int timestamp) {
+ if (!mBinaryDictionary.addUnigramEntry(word, frequency, shortcutTarget, shortcutFreq,
false /* isBeginningOfSentence */, isNotAWord, isPossiblyOffensive, timestamp)) {
Log.e(TAG, "Cannot add unigram entry. word: " + word);
}
diff --git a/java/src/com/android/inputmethod/latin/InputAttributes.java b/java/src/com/android/inputmethod/latin/InputAttributes.java
index 86c7810..5214c74 100644
--- a/java/src/com/android/inputmethod/latin/InputAttributes.java
+++ b/java/src/com/android/inputmethod/latin/InputAttributes.java
@@ -43,6 +43,7 @@
final public boolean mApplicationSpecifiedCompletionOn;
final public boolean mShouldInsertSpacesAutomatically;
final public boolean mShouldShowVoiceInputKey;
+ final public boolean mNoLearning;
/**
* Whether the floating gesture preview should be disabled. If true, this should override the
* corresponding keyboard settings preference, always suppressing the floating preview text.
@@ -86,6 +87,7 @@
mShouldShowVoiceInputKey = false;
mDisableGestureFloatingPreviewText = false;
mIsGeneralTextInput = false;
+ mNoLearning = false;
return;
}
// inputClass == InputType.TYPE_CLASS_TEXT
@@ -139,6 +141,8 @@
&& InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD != variation
&& InputType.TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS != variation
&& InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD != variation;
+
+ mNoLearning = (editorInfo.imeOptions & EditorInfo.IME_FLAG_NO_PERSONALIZED_LEARNING) != 0;
}
public boolean isTypeNull() {
diff --git a/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java b/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java
index fe24ccf..1ed2103 100644
--- a/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java
@@ -22,6 +22,7 @@
import android.database.Cursor;
import android.database.sqlite.SQLiteException;
import android.net.Uri;
+import android.os.Build;
import android.provider.UserDictionary.Words;
import android.text.TextUtils;
import android.util.Log;
@@ -46,8 +47,19 @@
private static final String USER_DICTIONARY_ALL_LANGUAGES = "";
private static final int HISTORICAL_DEFAULT_USER_DICTIONARY_FREQUENCY = 250;
private static final int LATINIME_DEFAULT_USER_DICTIONARY_FREQUENCY = 160;
+ // Shortcut frequency is 0~15, with 15 = whitelist. We don't want user dictionary entries
+ // to auto-correct, so we set this to the highest frequency that won't, i.e. 14.
+ private static final int USER_DICT_SHORTCUT_FREQUENCY = 14;
- private static final String[] PROJECTION_QUERY = new String[] {Words.WORD, Words.FREQUENCY};
+ private static final String[] PROJECTION_QUERY_WITH_SHORTCUT = new String[] {
+ Words.WORD,
+ Words.SHORTCUT,
+ Words.FREQUENCY,
+ };
+ private static final String[] PROJECTION_QUERY_WITHOUT_SHORTCUT = new String[] {
+ Words.WORD,
+ Words.FREQUENCY,
+ };
private static final String NAME = "userunigram";
@@ -159,7 +171,20 @@
requestArguments = localeElements;
}
final String requestString = request.toString();
- addWordsFromProjectionLocked(PROJECTION_QUERY, requestString, requestArguments);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
+ try {
+ addWordsFromProjectionLocked(PROJECTION_QUERY_WITH_SHORTCUT, requestString,
+ requestArguments);
+ } catch (IllegalArgumentException e) {
+ // This may happen on some non-compliant devices where the declared API is JB+ but
+ // the SHORTCUT column is not present for some reason.
+ addWordsFromProjectionLocked(PROJECTION_QUERY_WITHOUT_SHORTCUT, requestString,
+ requestArguments);
+ }
+ } else {
+ addWordsFromProjectionLocked(PROJECTION_QUERY_WITHOUT_SHORTCUT, requestString,
+ requestArguments);
+ }
}
private void addWordsFromProjectionLocked(final String[] query, String request,
@@ -194,20 +219,31 @@
}
private void addWordsLocked(final Cursor cursor) {
+ final boolean hasShortcutColumn = Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
if (cursor == null) return;
if (cursor.moveToFirst()) {
final int indexWord = cursor.getColumnIndex(Words.WORD);
+ final int indexShortcut = hasShortcutColumn ? cursor.getColumnIndex(Words.SHORTCUT) : 0;
final int indexFrequency = cursor.getColumnIndex(Words.FREQUENCY);
while (!cursor.isAfterLast()) {
final String word = cursor.getString(indexWord);
+ final String shortcut = hasShortcutColumn ? cursor.getString(indexShortcut) : null;
final int frequency = cursor.getInt(indexFrequency);
final int adjustedFrequency = scaleFrequencyFromDefaultToLatinIme(frequency);
// Safeguard against adding really long words.
if (word.length() <= MAX_WORD_LENGTH) {
runGCIfRequiredLocked(true /* mindsBlockByGC */);
- addUnigramLocked(word, adjustedFrequency, false /* isNotAWord */,
+ addUnigramLocked(word, adjustedFrequency, null /* shortcutTarget */,
+ 0 /* shortcutFreq */, false /* isNotAWord */,
false /* isPossiblyOffensive */,
BinaryDictionary.NOT_A_VALID_TIMESTAMP);
+ if (null != shortcut && shortcut.length() <= MAX_WORD_LENGTH) {
+ runGCIfRequiredLocked(true /* mindsBlockByGC */);
+ addUnigramLocked(shortcut, adjustedFrequency, word,
+ USER_DICT_SHORTCUT_FREQUENCY, true /* isNotAWord */,
+ false /* isPossiblyOffensive */,
+ BinaryDictionary.NOT_A_VALID_TIMESTAMP);
+ }
}
cursor.moveToNext();
}
diff --git a/java/src/com/android/inputmethod/latin/define/JniLibName.java b/java/src/com/android/inputmethod/latin/define/JniLibName.java
index abfc36d..83ed5eb 100644
--- a/java/src/com/android/inputmethod/latin/define/JniLibName.java
+++ b/java/src/com/android/inputmethod/latin/define/JniLibName.java
@@ -22,4 +22,5 @@
}
public static final String JNI_LIB_NAME = "jni_latinime";
+ public static final String JNI_LIB_NAME2 = "jni_latinimegoogle";
}
diff --git a/java/src/com/android/inputmethod/latin/makedict/WordProperty.java b/java/src/com/android/inputmethod/latin/makedict/WordProperty.java
index 264e757..388d578 100644
--- a/java/src/com/android/inputmethod/latin/makedict/WordProperty.java
+++ b/java/src/com/android/inputmethod/latin/makedict/WordProperty.java
@@ -37,11 +37,13 @@
public final class WordProperty implements Comparable<WordProperty> {
public final String mWord;
public final ProbabilityInfo mProbabilityInfo;
+ public final ArrayList<WeightedString> mShortcutTargets;
public final ArrayList<NgramProperty> mNgrams;
// TODO: Support mIsBeginningOfSentence.
public final boolean mIsBeginningOfSentence;
public final boolean mIsNotAWord;
public final boolean mIsPossiblyOffensive;
+ public final boolean mHasShortcuts;
public final boolean mHasNgrams;
private int mHashCode = 0;
@@ -49,10 +51,12 @@
// TODO: Support n-gram.
@UsedForTesting
public WordProperty(final String word, final ProbabilityInfo probabilityInfo,
+ final ArrayList<WeightedString> shortcutTargets,
@Nullable final ArrayList<WeightedString> bigrams,
final boolean isNotAWord, final boolean isPossiblyOffensive) {
mWord = word;
mProbabilityInfo = probabilityInfo;
+ mShortcutTargets = shortcutTargets;
if (null == bigrams) {
mNgrams = null;
} else {
@@ -66,6 +70,7 @@
mIsNotAWord = isNotAWord;
mIsPossiblyOffensive = isPossiblyOffensive;
mHasNgrams = bigrams != null && !bigrams.isEmpty();
+ mHasShortcuts = shortcutTargets != null && !shortcutTargets.isEmpty();
}
private static ProbabilityInfo createProbabilityInfoFromArray(final int[] probabilityInfo) {
@@ -79,17 +84,21 @@
// Construct word property using information from native code.
// This represents invalid word when the probability is BinaryDictionary.NOT_A_PROBABILITY.
public WordProperty(final int[] codePoints, final boolean isNotAWord,
- final boolean isPossiblyOffensive, final boolean hasBigram,
+ final boolean isPossiblyOffensive, final boolean hasBigram, final boolean hasShortcuts,
final boolean isBeginningOfSentence, final int[] probabilityInfo,
final ArrayList<int[][]> ngramPrevWordsArray,
final ArrayList<boolean[]> ngramPrevWordIsBeginningOfSentenceArray,
- final ArrayList<int[]> ngramTargets, final ArrayList<int[]> ngramProbabilityInfo) {
+ final ArrayList<int[]> ngramTargets, final ArrayList<int[]> ngramProbabilityInfo,
+ final ArrayList<int[]> shortcutTargets,
+ final ArrayList<Integer> shortcutProbabilities) {
mWord = StringUtils.getStringFromNullTerminatedCodePointArray(codePoints);
mProbabilityInfo = createProbabilityInfoFromArray(probabilityInfo);
+ mShortcutTargets = new ArrayList<>();
final ArrayList<NgramProperty> ngrams = new ArrayList<>();
mIsBeginningOfSentence = isBeginningOfSentence;
mIsNotAWord = isNotAWord;
mIsPossiblyOffensive = isPossiblyOffensive;
+ mHasShortcuts = hasShortcuts;
mHasNgrams = hasBigram;
final int relatedNgramCount = ngramTargets.size();
@@ -112,6 +121,14 @@
ngrams.add(new NgramProperty(ngramTarget, ngramContext));
}
mNgrams = ngrams.isEmpty() ? null : ngrams;
+
+ final int shortcutTargetCount = shortcutTargets.size();
+ for (int i = 0; i < shortcutTargetCount; i++) {
+ final String shortcutTargetString =
+ StringUtils.getStringFromNullTerminatedCodePointArray(shortcutTargets.get(i));
+ mShortcutTargets.add(
+ new WeightedString(shortcutTargetString, shortcutProbabilities.get(i)));
+ }
}
// TODO: Remove
@@ -137,6 +154,7 @@
return Arrays.hashCode(new Object[] {
word.mWord,
word.mProbabilityInfo,
+ word.mShortcutTargets,
word.mNgrams,
word.mIsNotAWord,
word.mIsPossiblyOffensive
@@ -167,10 +185,10 @@
if (o == this) return true;
if (!(o instanceof WordProperty)) return false;
WordProperty w = (WordProperty)o;
- return mProbabilityInfo.equals(w.mProbabilityInfo)
- && mWord.equals(w.mWord) && equals(mNgrams, w.mNgrams)
+ return mProbabilityInfo.equals(w.mProbabilityInfo) && mWord.equals(w.mWord)
+ && mShortcutTargets.equals(w.mShortcutTargets) && equals(mNgrams, w.mNgrams)
&& mIsNotAWord == w.mIsNotAWord && mIsPossiblyOffensive == w.mIsPossiblyOffensive
- && mHasNgrams == w.mHasNgrams;
+ && mHasNgrams == w.mHasNgrams && mHasShortcuts && w.mHasNgrams;
}
// TDOO: Have a utility method like java.util.Objects.equals.
diff --git a/java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java
index a6fb7f1..bddb864 100644
--- a/java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java
@@ -29,6 +29,8 @@
import com.android.inputmethod.latin.SystemBroadcastReceiver;
import com.android.inputmethod.latin.define.ProductionFlags;
+import java.util.Locale;
+
/**
* "Advanced" settings sub screen.
*
@@ -41,6 +43,7 @@
* - Debug settings
*/
public final class AdvancedSettingsFragment extends SubScreenFragment {
+ public static final String PREF_KEYBOARD_HEIGHT_SCALE = "pref_keyboard_height_scale";
@Override
public void onCreate(final Bundle icicle) {
super.onCreate(icicle);
@@ -91,6 +94,8 @@
setupKeypressVibrationDurationSettings();
setupKeypressSoundVolumeSettings();
setupKeyLongpressTimeoutSettings();
+ setupKeyboardHeight(
+ Settings.PREF_KEYBOARD_HEIGHT_SCALE, SettingsValues.DEFAULT_SIZE_SCALE);
refreshEnablingsOfKeypressSoundAndVibrationSettings();
}
@@ -261,4 +266,49 @@
public void feedbackValue(final int value) {}
});
}
+ private void setupKeyboardHeight(final String prefKey, final float defaultValue) {
+ final SharedPreferences prefs = getSharedPreferences();
+ final SeekBarDialogPreference pref = (SeekBarDialogPreference)findPreference(prefKey);
+ if (pref == null) {
+ return;
+ }
+ pref.setInterface(new SeekBarDialogPreference.ValueProxy() {
+ private static final float PERCENTAGE_FLOAT = 100.0f;
+ private float getValueFromPercentage(final int percentage) {
+ return percentage / PERCENTAGE_FLOAT;
+ }
+
+ private int getPercentageFromValue(final float floatValue) {
+ return (int)(floatValue * PERCENTAGE_FLOAT);
+ }
+
+ @Override
+ public void writeValue(final int value, final String key) {
+ prefs.edit().putFloat(key, getValueFromPercentage(value)).apply();
+ }
+
+ @Override
+ public void writeDefaultValue(final String key) {
+ prefs.edit().remove(key).apply();
+ }
+
+ @Override
+ public int readValue(final String key) {
+ return getPercentageFromValue(Settings.readKeyboardHeight(prefs, defaultValue));
+ }
+
+ @Override
+ public int readDefaultValue(final String key) {
+ return getPercentageFromValue(defaultValue);
+ }
+
+ @Override
+ public String getValueText(final int value) {
+ return String.format(Locale.ROOT, "%d%%", value);
+ }
+
+ @Override
+ public void feedbackValue(final int value) {}
+ });
+ }
}
diff --git a/java/src/com/android/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java
index 56e8f16..6be766c 100644
--- a/java/src/com/android/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java
@@ -24,7 +24,6 @@
import android.content.res.Resources;
import android.os.Bundle;
import android.preference.Preference;
-import android.preference.PreferenceFragment;
import android.preference.PreferenceGroup;
import androidx.core.view.ViewCompat;
import android.text.TextUtils;
@@ -47,7 +46,7 @@
import java.util.ArrayList;
-public final class CustomInputStyleSettingsFragment extends PreferenceFragment
+public final class CustomInputStyleSettingsFragment extends CustomPreferenceFragment
implements CustomInputStylePreference.Listener {
private static final String TAG = CustomInputStyleSettingsFragment.class.getSimpleName();
// Note: We would like to turn this debug flag true in order to see what input styles are
@@ -173,7 +172,8 @@
return;
}
if (findDuplicatedSubtype(subtype) == null) {
- mRichImm.setAdditionalInputMethodSubtypes(getSubtypes());
+ final InputMethodSubtype[] subTypes = saveAndGetSubTypes();
+ mRichImm.setAdditionalInputMethodSubtypes(subTypes);
return;
}
@@ -190,7 +190,8 @@
mIsAddingNewSubtype = false;
final InputMethodSubtype subtype = stylePref.getSubtype();
if (findDuplicatedSubtype(subtype) == null) {
- mRichImm.setAdditionalInputMethodSubtypes(getSubtypes());
+ final InputMethodSubtype[] subTypes = saveAndGetSubTypes();
+ mRichImm.setAdditionalInputMethodSubtypes(subTypes);
mSubtypePreferenceKeyForSubtypeEnabler = stylePref.getKey();
mSubtypeEnablerNotificationDialog = createDialog();
mSubtypeEnablerNotificationDialog.show();
@@ -284,16 +285,7 @@
@Override
public void onPause() {
super.onPause();
- final String oldSubtypes = Settings.readPrefAdditionalSubtypes(mPrefs, getResources());
- final InputMethodSubtype[] subtypes = getSubtypes();
- final String prefSubtypes = AdditionalSubtypeUtils.createPrefSubtypes(subtypes);
- if (DEBUG_CUSTOM_INPUT_STYLES) {
- Log.i(TAG, "Save custom input styles: " + prefSubtypes);
- }
- if (prefSubtypes.equals(oldSubtypes)) {
- return;
- }
- Settings.writePrefAdditionalSubtypes(mPrefs, prefSubtypes);
+ final InputMethodSubtype[] subtypes = saveAndGetSubTypes();
mRichImm.setAdditionalInputMethodSubtypes(subtypes);
}
@@ -315,4 +307,18 @@
}
return super.onOptionsItemSelected(item);
}
+
+ private InputMethodSubtype[] saveAndGetSubTypes() {
+ final String oldSubtypes = Settings.readPrefAdditionalSubtypes(mPrefs, getResources());
+ final InputMethodSubtype[] subtypes = getSubtypes();
+ final String prefSubtypes = AdditionalSubtypeUtils.createPrefSubtypes(subtypes);
+ if (DEBUG_CUSTOM_INPUT_STYLES) {
+ Log.i(TAG, "Save custom input styles: " + prefSubtypes);
+ }
+ if (prefSubtypes.equals(oldSubtypes)) {
+ return null;
+ }
+ Settings.writePrefAdditionalSubtypes(mPrefs, prefSubtypes);
+ return subtypes;
+ }
}
diff --git a/java/src/com/android/inputmethod/latin/settings/CustomPreferenceFragment.java b/java/src/com/android/inputmethod/latin/settings/CustomPreferenceFragment.java
new file mode 100644
index 0000000..d791b53
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/settings/CustomPreferenceFragment.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2020 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.settings;
+
+import android.os.Bundle;
+import android.preference.PreferenceFragment;
+import android.view.View;
+import android.widget.ListView;
+
+/**
+ * A base abstract class for a {@link PreferenceFragment} that removes divider lines
+ */
+public abstract class CustomPreferenceFragment extends PreferenceFragment {
+ @Override
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+
+ // remove dividers
+ View rootView = getView();
+ ListView list = (ListView) rootView.findViewById(android.R.id.list);
+ list.setDivider(null);
+ }
+}
diff --git a/java/src/com/android/inputmethod/latin/settings/DebugSettings.java b/java/src/com/android/inputmethod/latin/settings/DebugSettings.java
index 6fffb8e..4985c2f 100644
--- a/java/src/com/android/inputmethod/latin/settings/DebugSettings.java
+++ b/java/src/com/android/inputmethod/latin/settings/DebugSettings.java
@@ -29,8 +29,6 @@
public static final String PREF_FORCE_NON_DISTINCT_MULTITOUCH = "force_non_distinct_multitouch";
public static final String PREF_HAS_CUSTOM_KEY_PREVIEW_ANIMATION_PARAMS =
"pref_has_custom_key_preview_animation_params";
- public static final String PREF_RESIZE_KEYBOARD = "pref_resize_keyboard";
- public static final String PREF_KEYBOARD_HEIGHT_SCALE = "pref_keyboard_height_scale";
public static final String PREF_KEY_PREVIEW_DISMISS_DURATION =
"pref_key_preview_dismiss_duration";
public static final String PREF_KEY_PREVIEW_DISMISS_END_X_SCALE =
diff --git a/java/src/com/android/inputmethod/latin/settings/DebugSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/DebugSettingsFragment.java
index 3785537..e754f32 100644
--- a/java/src/com/android/inputmethod/latin/settings/DebugSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/DebugSettingsFragment.java
@@ -81,8 +81,6 @@
defaultKeyPreviewDismissEndScale);
setupKeyPreviewAnimationScale(DebugSettings.PREF_KEY_PREVIEW_DISMISS_END_Y_SCALE,
defaultKeyPreviewDismissEndScale);
- setupKeyboardHeight(
- DebugSettings.PREF_KEYBOARD_HEIGHT_SCALE, SettingsValues.DEFAULT_SIZE_SCALE);
mServiceNeedsRestart = false;
mDebugMode = (TwoStatePreference) findPreference(DebugSettings.PREF_DEBUG_MODE);
@@ -240,49 +238,4 @@
});
}
- private void setupKeyboardHeight(final String prefKey, final float defaultValue) {
- final SharedPreferences prefs = getSharedPreferences();
- final SeekBarDialogPreference pref = (SeekBarDialogPreference)findPreference(prefKey);
- if (pref == null) {
- return;
- }
- pref.setInterface(new SeekBarDialogPreference.ValueProxy() {
- private static final float PERCENTAGE_FLOAT = 100.0f;
- private float getValueFromPercentage(final int percentage) {
- return percentage / PERCENTAGE_FLOAT;
- }
-
- private int getPercentageFromValue(final float floatValue) {
- return (int)(floatValue * PERCENTAGE_FLOAT);
- }
-
- @Override
- public void writeValue(final int value, final String key) {
- prefs.edit().putFloat(key, getValueFromPercentage(value)).apply();
- }
-
- @Override
- public void writeDefaultValue(final String key) {
- prefs.edit().remove(key).apply();
- }
-
- @Override
- public int readValue(final String key) {
- return getPercentageFromValue(Settings.readKeyboardHeight(prefs, defaultValue));
- }
-
- @Override
- public int readDefaultValue(final String key) {
- return getPercentageFromValue(defaultValue);
- }
-
- @Override
- public String getValueText(final int value) {
- return String.format(Locale.ROOT, "%d%%", value);
- }
-
- @Override
- public void feedbackValue(final int value) {}
- });
- }
}
diff --git a/java/src/com/android/inputmethod/latin/settings/LocalSettingsConstants.java b/java/src/com/android/inputmethod/latin/settings/LocalSettingsConstants.java
index 5c416ab..0fd94b0 100644
--- a/java/src/com/android/inputmethod/latin/settings/LocalSettingsConstants.java
+++ b/java/src/com/android/inputmethod/latin/settings/LocalSettingsConstants.java
@@ -47,14 +47,12 @@
DebugSettings.PREF_DEBUG_MODE,
DebugSettings.PREF_FORCE_NON_DISTINCT_MULTITOUCH,
DebugSettings.PREF_HAS_CUSTOM_KEY_PREVIEW_ANIMATION_PARAMS,
- DebugSettings.PREF_KEYBOARD_HEIGHT_SCALE,
DebugSettings.PREF_KEY_PREVIEW_DISMISS_DURATION,
DebugSettings.PREF_KEY_PREVIEW_DISMISS_END_X_SCALE,
DebugSettings.PREF_KEY_PREVIEW_DISMISS_END_Y_SCALE,
DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_DURATION,
DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_START_X_SCALE,
DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_START_Y_SCALE,
- DebugSettings.PREF_RESIZE_KEYBOARD,
DebugSettings.PREF_SHOULD_SHOW_LXX_SUGGESTION_UI,
DebugSettings.PREF_SLIDING_KEY_INPUT_PREVIEW
};
diff --git a/java/src/com/android/inputmethod/latin/settings/Settings.java b/java/src/com/android/inputmethod/latin/settings/Settings.java
index 940f1bd..8a1a8a3 100644
--- a/java/src/com/android/inputmethod/latin/settings/Settings.java
+++ b/java/src/com/android/inputmethod/latin/settings/Settings.java
@@ -31,6 +31,7 @@
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.common.StringUtils;
import com.android.inputmethod.latin.utils.AdditionalSubtypeUtils;
+import com.android.inputmethod.latin.utils.JniUtils;
import com.android.inputmethod.latin.utils.ResourceUtils;
import com.android.inputmethod.latin.utils.RunInLocale;
import com.android.inputmethod.latin.utils.StatsUtils;
@@ -48,6 +49,7 @@
public static final String SCREEN_ACCOUNTS = "screen_accounts";
public static final String SCREEN_THEME = "screen_theme";
public static final String SCREEN_DEBUG = "screen_debug";
+ public static final String SCREEN_GESTURE = "screen_gesture";
// In the same order as xml/prefs.xml
public static final String PREF_AUTO_CAP = "auto_cap";
public static final String PREF_VIBRATE_ON = "vibrate_on";
@@ -112,6 +114,9 @@
private static final String PREF_CORPUS_HANDLES_FOR_PERSONALIZATION =
"pref_corpus_handles_for_personalization";
+ // Keyboard height (moved from debug settings)
+ public static final String PREF_KEYBOARD_HEIGHT_SCALE = "pref_keyboard_height_scale";
+
// Emoji
public static final String PREF_EMOJI_RECENT_KEYS = "emoji_recent_keys";
public static final String PREF_EMOJI_CATEGORY_LAST_TYPED_ID = "emoji_category_last_typed_id";
@@ -230,6 +235,9 @@
}
public static boolean readFromBuildConfigIfGestureInputEnabled(final Resources res) {
+ if (!JniUtils.sHaveGestureLib) {
+ return false;
+ }
return res.getBoolean(R.bool.config_gesture_input_enabled_by_build_config);
}
@@ -345,7 +353,7 @@
public static float readKeyboardHeight(final SharedPreferences prefs,
final float defaultValue) {
final float percentage = prefs.getFloat(
- DebugSettings.PREF_KEYBOARD_HEIGHT_SCALE, UNDEFINED_PREFERENCE_VALUE_FLOAT);
+ PREF_KEYBOARD_HEIGHT_SCALE, UNDEFINED_PREFERENCE_VALUE_FLOAT);
return (percentage != UNDEFINED_PREFERENCE_VALUE_FLOAT) ? percentage : defaultValue;
}
diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsActivity.java b/java/src/com/android/inputmethod/latin/settings/SettingsActivity.java
index ac16577..43467a0 100644
--- a/java/src/com/android/inputmethod/latin/settings/SettingsActivity.java
+++ b/java/src/com/android/inputmethod/latin/settings/SettingsActivity.java
@@ -59,7 +59,7 @@
@Override
public boolean onOptionsItemSelected(final MenuItem item) {
if (mShowHomeAsUp && item.getItemId() == android.R.id.home) {
- finish();
+ onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java
index 874f221..1671ac6 100644
--- a/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java
@@ -26,11 +26,14 @@
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
+import android.view.View;
+import android.widget.ListView;
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.define.ProductionFlags;
import com.android.inputmethod.latin.utils.ApplicationUtils;
import com.android.inputmethod.latin.utils.FeedbackUtils;
+import com.android.inputmethod.latin.utils.JniUtils;
import com.android.inputmethodcommon.InputMethodSettingsFragment;
public final class SettingsFragment extends InputMethodSettingsFragment {
@@ -55,6 +58,20 @@
final Preference accountsPreference = findPreference(Settings.SCREEN_ACCOUNTS);
preferenceScreen.removePreference(accountsPreference);
}
+ if (!JniUtils.sHaveGestureLib) {
+ final Preference gesturePreference = findPreference(Settings.SCREEN_GESTURE);
+ preferenceScreen.removePreference(gesturePreference);
+ }
+ }
+
+ @Override
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+
+ // remove dividers
+ View rootView = getView();
+ ListView list = (ListView) rootView.findViewById(android.R.id.list);
+ list.setDivider(null);
}
@Override
diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsValues.java b/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
index 5701824..7a276a6 100644
--- a/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
+++ b/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
@@ -108,7 +108,6 @@
// Debug settings
public final boolean mIsInternal;
public final boolean mHasCustomKeyPreviewAnimationParams;
- public final boolean mHasKeyboardResize;
public final float mKeyboardHeightScale;
public final int mKeyPreviewShowUpDuration;
public final int mKeyPreviewDismissDuration;
@@ -184,11 +183,11 @@
&& prefs.getBoolean(Settings.PREF_GESTURE_FLOATING_PREVIEW_TEXT, true);
mAutoCorrectionEnabledPerUserSettings = mAutoCorrectEnabled
&& !mInputAttributes.mInputTypeNoAutoCorrect;
- mSuggestionsEnabledPerUserSettings = readSuggestionsEnabled(prefs);
+ mSuggestionsEnabledPerUserSettings = !mInputAttributes.mNoLearning &&
+ readSuggestionsEnabled(prefs);
mIsInternal = Settings.isInternal(prefs);
mHasCustomKeyPreviewAnimationParams = prefs.getBoolean(
DebugSettings.PREF_HAS_CUSTOM_KEY_PREVIEW_ANIMATION_PARAMS, false);
- mHasKeyboardResize = prefs.getBoolean(DebugSettings.PREF_RESIZE_KEYBOARD, false);
mKeyboardHeightScale = Settings.readKeyboardHeight(prefs, DEFAULT_SIZE_SCALE);
mKeyPreviewShowUpDuration = Settings.readKeyPreviewAnimationDuration(
prefs, DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_DURATION,
diff --git a/java/src/com/android/inputmethod/latin/settings/SubScreenFragment.java b/java/src/com/android/inputmethod/latin/settings/SubScreenFragment.java
index 5994a76..3194ba0 100644
--- a/java/src/com/android/inputmethod/latin/settings/SubScreenFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/SubScreenFragment.java
@@ -24,7 +24,6 @@
import android.os.Bundle;
import android.preference.ListPreference;
import android.preference.Preference;
-import android.preference.PreferenceFragment;
import android.preference.PreferenceScreen;
import android.util.Log;
@@ -32,7 +31,7 @@
* A base abstract class for a {@link PreferenceFragment} that implements a nested
* {@link PreferenceScreen} of the main preference screen.
*/
-public abstract class SubScreenFragment extends PreferenceFragment
+public abstract class SubScreenFragment extends CustomPreferenceFragment
implements OnSharedPreferenceChangeListener {
private OnSharedPreferenceChangeListener mSharedPreferenceChangeListener;
@@ -98,6 +97,11 @@
}
@Override
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ }
+
+ @Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mSharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() {
diff --git a/java/src/com/android/inputmethod/latin/settings/ThemeSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/ThemeSettingsFragment.java
index 29289ae..437209b 100644
--- a/java/src/com/android/inputmethod/latin/settings/ThemeSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/ThemeSettingsFragment.java
@@ -46,11 +46,11 @@
static void updateKeyboardThemeSummary(final Preference pref) {
final Context context = pref.getContext();
final Resources res = context.getResources();
- final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(context);
+ final int keyboardThemeId = KeyboardTheme.getSelectedKeyboardThemeId(context);
final String[] keyboardThemeNames = res.getStringArray(R.array.keyboard_theme_names);
final int[] keyboardThemeIds = res.getIntArray(R.array.keyboard_theme_ids);
for (int index = 0; index < keyboardThemeNames.length; index++) {
- if (keyboardTheme.mThemeId == keyboardThemeIds[index]) {
+ if (keyboardThemeId == keyboardThemeIds[index]) {
pref.setSummary(keyboardThemeNames[index]);
return;
}
@@ -72,8 +72,7 @@
screen.addPreference(pref);
pref.setOnRadioButtonClickedListener(this);
}
- final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(context);
- mSelectedThemeId = keyboardTheme.mThemeId;
+ mSelectedThemeId = KeyboardTheme.getSelectedKeyboardThemeId(context);
}
@Override
diff --git a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryList.java b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryList.java
index f7940e3..8efa85f 100644
--- a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryList.java
+++ b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryList.java
@@ -22,7 +22,6 @@
import android.database.Cursor;
import android.os.Bundle;
import android.preference.Preference;
-import android.preference.PreferenceFragment;
import android.preference.PreferenceGroup;
import android.provider.UserDictionary;
import android.text.TextUtils;
@@ -32,6 +31,7 @@
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.common.LocaleUtils;
+import com.android.inputmethod.latin.settings.CustomPreferenceFragment;
import java.util.List;
import java.util.Locale;
@@ -43,7 +43,7 @@
// packages/apps/Settings/src/com/android/settings/inputmethod/UserDictionaryList.java
// in order to deal with some devices that have issues with the user dictionary handling
-public class UserDictionaryList extends PreferenceFragment {
+public class UserDictionaryList extends CustomPreferenceFragment {
public static final String USER_DICTIONARY_SETTINGS_INTENT_ACTION =
"android.settings.USER_DICTIONARY_SETTINGS";
diff --git a/java/src/com/android/inputmethod/latin/utils/CombinedFormatUtils.java b/java/src/com/android/inputmethod/latin/utils/CombinedFormatUtils.java
index 5c0c432..476c134 100644
--- a/java/src/com/android/inputmethod/latin/utils/CombinedFormatUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/CombinedFormatUtils.java
@@ -19,6 +19,7 @@
import com.android.inputmethod.latin.makedict.DictionaryHeader;
import com.android.inputmethod.latin.makedict.NgramProperty;
import com.android.inputmethod.latin.makedict.ProbabilityInfo;
+import com.android.inputmethod.latin.makedict.WeightedString;
import com.android.inputmethod.latin.makedict.WordProperty;
import java.util.HashMap;
@@ -28,6 +29,7 @@
public static final String BIGRAM_TAG = "bigram";
public static final String NGRAM_TAG = "ngram";
public static final String NGRAM_PREV_WORD_TAG = "prev_word";
+ public static final String SHORTCUT_TAG = "shortcut";
public static final String PROBABILITY_TAG = "f";
public static final String HISTORICAL_INFO_TAG = "historicalInfo";
public static final String HISTORICAL_INFO_SEPARATOR = ":";
@@ -69,6 +71,14 @@
builder.append("," + POSSIBLY_OFFENSIVE_TAG + "=" + TRUE_VALUE);
}
builder.append("\n");
+ if (wordProperty.mHasShortcuts) {
+ for (final WeightedString shortcutTarget : wordProperty.mShortcutTargets) {
+ builder.append(" " + SHORTCUT_TAG + "=" + shortcutTarget.mWord);
+ builder.append(",");
+ builder.append(formatProbabilityInfo(shortcutTarget.mProbabilityInfo));
+ builder.append("\n");
+ }
+ }
if (wordProperty.mHasNgrams) {
for (final NgramProperty ngramProperty : wordProperty.mNgrams) {
builder.append(" " + NGRAM_TAG + "=" + ngramProperty.mTargetWord.mWord);
diff --git a/java/src/com/android/inputmethod/latin/utils/JniUtils.java b/java/src/com/android/inputmethod/latin/utils/JniUtils.java
index e7fdafa..458c169 100644
--- a/java/src/com/android/inputmethod/latin/utils/JniUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/JniUtils.java
@@ -23,11 +23,18 @@
public final class JniUtils {
private static final String TAG = JniUtils.class.getSimpleName();
+ public static boolean sHaveGestureLib = false;
static {
try {
- System.loadLibrary(JniLibName.JNI_LIB_NAME);
- } catch (UnsatisfiedLinkError ule) {
- Log.e(TAG, "Could not load native library " + JniLibName.JNI_LIB_NAME, ule);
+ System.loadLibrary(JniLibName.JNI_LIB_NAME2);
+ sHaveGestureLib = true;
+ } catch (UnsatisfiedLinkError ue) {
+ Log.e(TAG, "Could not load native library " + JniLibName.JNI_LIB_NAME2, ue);
+ try {
+ System.loadLibrary(JniLibName.JNI_LIB_NAME);
+ } catch (UnsatisfiedLinkError ule) {
+ Log.e(TAG, "Could not load native library " + JniLibName.JNI_LIB_NAME, ule);
+ }
}
}
diff --git a/java/src/com/android/inputmethod/latin/utils/ResourceUtils.java b/java/src/com/android/inputmethod/latin/utils/ResourceUtils.java
index cc0d470..0bb19af 100644
--- a/java/src/com/android/inputmethod/latin/utils/ResourceUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/ResourceUtils.java
@@ -189,11 +189,8 @@
public static int getKeyboardHeight(final Resources res, final SettingsValues settingsValues) {
final int defaultKeyboardHeight = getDefaultKeyboardHeight(res);
- if (settingsValues.mHasKeyboardResize) {
- // mKeyboardHeightScale Ranges from [.5,1.2], from xml/prefs_screen_debug.xml
- return (int)(defaultKeyboardHeight * settingsValues.mKeyboardHeightScale);
- }
- return defaultKeyboardHeight;
+ // mKeyboardHeightScale Ranges from [.5,1.2], from xml/prefs_screen_debug.xml
+ return (int)(defaultKeyboardHeight * settingsValues.mKeyboardHeightScale);
}
public static int getDefaultKeyboardHeight(final Resources res) {
diff --git a/java/src/com/android/inputmethodcommon/InputMethodSettingsFragment.java b/java/src/com/android/inputmethodcommon/InputMethodSettingsFragment.java
index 49f0b87..8d05f83 100644
--- a/java/src/com/android/inputmethodcommon/InputMethodSettingsFragment.java
+++ b/java/src/com/android/inputmethodcommon/InputMethodSettingsFragment.java
@@ -19,13 +19,14 @@
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
-import android.preference.PreferenceFragment;
+
+import com.android.inputmethod.latin.settings.CustomPreferenceFragment;
/**
* This is a helper class for an IME's settings preference fragment. It's recommended for every
* IME to have its own settings preference fragment which inherits this class.
*/
-public abstract class InputMethodSettingsFragment extends PreferenceFragment
+public abstract class InputMethodSettingsFragment extends CustomPreferenceFragment
implements InputMethodSettingsInterface {
private final InputMethodSettingsImpl mSettings = new InputMethodSettingsImpl();
@Override
@@ -33,6 +34,7 @@
super.onCreate(savedInstanceState);
final Context context = getActivity();
setPreferenceScreen(getPreferenceManager().createPreferenceScreen(context));
+ mSettings.setSpawnAsNewActivity(false);
mSettings.init(context, getPreferenceScreen());
}
diff --git a/java/src/com/android/inputmethodcommon/InputMethodSettingsImpl.java b/java/src/com/android/inputmethodcommon/InputMethodSettingsImpl.java
index cfa1a65..e56c975 100644
--- a/java/src/com/android/inputmethodcommon/InputMethodSettingsImpl.java
+++ b/java/src/com/android/inputmethodcommon/InputMethodSettingsImpl.java
@@ -40,6 +40,7 @@
private Drawable mSubtypeEnablerIcon;
private InputMethodManager mImm;
private InputMethodInfo mImi;
+ private boolean mSpawnAsNewActivity = true;
/**
* Initialize internal states of this object.
@@ -55,9 +56,11 @@
}
final Intent intent = new Intent(Settings.ACTION_INPUT_METHOD_SUBTYPE_SETTINGS);
intent.putExtra(Settings.EXTRA_INPUT_METHOD_ID, mImi.getId());
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
- | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
- | Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ if (mSpawnAsNewActivity) {
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
+ | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
+ | Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ }
mSubtypeEnablerPreference = new Preference(context);
mSubtypeEnablerPreference.setIntent(intent);
prefScreen.addPreference(mSubtypeEnablerPreference);
@@ -176,4 +179,8 @@
pref.setIcon(mSubtypeEnablerIcon);
}
}
+
+ public void setSpawnAsNewActivity(boolean spawnAsNew) {
+ mSpawnAsNewActivity = spawnAsNew;
+ }
}
diff --git a/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java b/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
index db8b809..ed14831 100644
--- a/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
+++ b/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
@@ -170,7 +170,8 @@
addUnigramWord(binaryDictionary, validLongWord, probability);
addUnigramWord(binaryDictionary, invalidLongWord, probability);
// Too long short cut.
- binaryDictionary.addUnigramEntry("a", probability, false /* isBeginningOfSentence */,
+ binaryDictionary.addUnigramEntry("a", probability, invalidLongWord,
+ 10 /* shortcutProbability */, false /* isBeginningOfSentence */,
false /* isNotAWord */, false /* isPossiblyOffensive */,
BinaryDictionary.NOT_A_VALID_TIMESTAMP);
addUnigramWord(binaryDictionary, "abc", probability);
@@ -188,7 +189,8 @@
private static void addUnigramWord(final BinaryDictionary binaryDictionary, final String word,
final int probability) {
- binaryDictionary.addUnigramEntry(word, probability,
+ binaryDictionary.addUnigramEntry(word, probability, "" /* shortcutTarget */,
+ Dictionary.NOT_A_PROBABILITY /* shortcutProbability */,
false /* isBeginningOfSentence */, false /* isNotAWord */,
false /* isPossiblyOffensive */,
BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
@@ -736,6 +738,7 @@
final boolean isPossiblyOffensive = random.nextBoolean();
// TODO: Add tests for historical info.
binaryDictionary.addUnigramEntry(word, unigramProbability,
+ null /* shortcutTarget */, Dictionary.NOT_A_PROBABILITY,
false /* isBeginningOfSentence */, isNotAWord, isPossiblyOffensive,
BinaryDictionary.NOT_A_VALID_TIMESTAMP);
if (binaryDictionary.needsToRunGC(false /* mindsBlockByGC */)) {
@@ -750,7 +753,9 @@
assertEquals(isNotAWord, wordProperty.mIsNotAWord);
assertEquals(isPossiblyOffensive, wordProperty.mIsPossiblyOffensive);
assertEquals(false, wordProperty.mHasNgrams);
+ assertEquals(false, wordProperty.mHasShortcuts);
assertEquals(unigramProbability, wordProperty.mProbabilityInfo.mProbability);
+ assertTrue(wordProperty.mShortcutTargets.isEmpty());
}
for (int i = 0; i < BIGRAM_COUNT; i++) {
@@ -880,10 +885,127 @@
}
@Test
+ public void testAddShortcuts() {
+ final BinaryDictionary binaryDictionary = getEmptyBinaryDictionary(FormatSpec.VERSION403);
+
+ final int unigramProbability = 100;
+ final int shortcutProbability = 10;
+ binaryDictionary.addUnigramEntry("aaa", unigramProbability, "zzz",
+ shortcutProbability, false /* isBeginningOfSentence */,
+ false /* isNotAWord */, false /* isPossiblyOffensive */, 0 /* timestamp */);
+ WordProperty wordProperty = binaryDictionary.getWordProperty("aaa",
+ false /* isBeginningOfSentence */);
+ assertEquals(1, wordProperty.mShortcutTargets.size());
+ assertEquals("zzz", wordProperty.mShortcutTargets.get(0).mWord);
+ assertEquals(shortcutProbability, wordProperty.mShortcutTargets.get(0).getProbability());
+ final int updatedShortcutProbability = 2;
+ binaryDictionary.addUnigramEntry("aaa", unigramProbability, "zzz",
+ updatedShortcutProbability, false /* isBeginningOfSentence */,
+ false /* isNotAWord */, false /* isPossiblyOffensive */, 0 /* timestamp */);
+ wordProperty = binaryDictionary.getWordProperty("aaa",
+ false /* isBeginningOfSentence */);
+ assertEquals(1, wordProperty.mShortcutTargets.size());
+ assertEquals("zzz", wordProperty.mShortcutTargets.get(0).mWord);
+ assertEquals(updatedShortcutProbability,
+ wordProperty.mShortcutTargets.get(0).getProbability());
+ binaryDictionary.addUnigramEntry("aaa", unigramProbability, "yyy",
+ shortcutProbability, false /* isBeginningOfSentence */, false /* isNotAWord */,
+ false /* isPossiblyOffensive */, 0 /* timestamp */);
+ final HashMap<String, Integer> shortcutTargets = new HashMap<>();
+ shortcutTargets.put("zzz", updatedShortcutProbability);
+ shortcutTargets.put("yyy", shortcutProbability);
+ wordProperty = binaryDictionary.getWordProperty("aaa",
+ false /* isBeginningOfSentence */);
+ assertEquals(2, wordProperty.mShortcutTargets.size());
+ for (WeightedString shortcutTarget : wordProperty.mShortcutTargets) {
+ assertTrue(shortcutTargets.containsKey(shortcutTarget.mWord));
+ assertEquals((int)shortcutTargets.get(shortcutTarget.mWord),
+ shortcutTarget.getProbability());
+ shortcutTargets.remove(shortcutTarget.mWord);
+ }
+ shortcutTargets.put("zzz", updatedShortcutProbability);
+ shortcutTargets.put("yyy", shortcutProbability);
+ binaryDictionary.flushWithGC();
+ wordProperty = binaryDictionary.getWordProperty("aaa",
+ false /* isBeginningOfSentence */);
+ assertEquals(2, wordProperty.mShortcutTargets.size());
+ for (WeightedString shortcutTarget : wordProperty.mShortcutTargets) {
+ assertTrue(shortcutTargets.containsKey(shortcutTarget.mWord));
+ assertEquals((int)shortcutTargets.get(shortcutTarget.mWord),
+ shortcutTarget.getProbability());
+ shortcutTargets.remove(shortcutTarget.mWord);
+ }
+ }
+
+ @Test
+ public void testAddManyShortcuts() {
+ final long seed = System.currentTimeMillis();
+ final Random random = new Random(seed);
+ final int UNIGRAM_COUNT = 1000;
+ final int SHORTCUT_COUNT = 10000;
+ final int codePointSetSize = 20;
+ final int[] codePointSet = CodePointUtils.generateCodePointSet(codePointSetSize, random);
+
+ final ArrayList<String> words = new ArrayList<>();
+ final HashMap<String, Integer> unigramProbabilities = new HashMap<>();
+ final HashMap<String, HashMap<String, Integer>> shortcutTargets = new HashMap<>();
+ final BinaryDictionary binaryDictionary = getEmptyBinaryDictionary(FormatSpec.VERSION403);
+
+ for (int i = 0; i < UNIGRAM_COUNT; i++) {
+ final String word = CodePointUtils.generateWord(random, codePointSet);
+ final int unigramProbability = random.nextInt(0xFF);
+ addUnigramWord(binaryDictionary, word, unigramProbability);
+ words.add(word);
+ unigramProbabilities.put(word, unigramProbability);
+ if (binaryDictionary.needsToRunGC(true /* mindsBlockByGC */)) {
+ binaryDictionary.flushWithGC();
+ }
+ }
+ for (int i = 0; i < SHORTCUT_COUNT; i++) {
+ final String shortcutTarget = CodePointUtils.generateWord(random, codePointSet);
+ final int shortcutProbability = random.nextInt(0xF);
+ final String word = words.get(random.nextInt(words.size()));
+ final int unigramProbability = unigramProbabilities.get(word);
+ binaryDictionary.addUnigramEntry(word, unigramProbability, shortcutTarget,
+ shortcutProbability, false /* isBeginningOfSentence */, false /* isNotAWord */,
+ false /* isPossiblyOffensive */, 0 /* timestamp */);
+ if (shortcutTargets.containsKey(word)) {
+ final HashMap<String, Integer> shortcutTargetsOfWord = shortcutTargets.get(word);
+ shortcutTargetsOfWord.put(shortcutTarget, shortcutProbability);
+ } else {
+ final HashMap<String, Integer> shortcutTargetsOfWord = new HashMap<>();
+ shortcutTargetsOfWord.put(shortcutTarget, shortcutProbability);
+ shortcutTargets.put(word, shortcutTargetsOfWord);
+ }
+ if (binaryDictionary.needsToRunGC(true /* mindsBlockByGC */)) {
+ binaryDictionary.flushWithGC();
+ }
+ }
+
+ for (final String word : words) {
+ final WordProperty wordProperty = binaryDictionary.getWordProperty(word,
+ false /* isBeginningOfSentence */);
+ assertEquals((int)unigramProbabilities.get(word),
+ wordProperty.mProbabilityInfo.mProbability);
+ if (!shortcutTargets.containsKey(word)) {
+ // The word does not have shortcut targets.
+ continue;
+ }
+ assertEquals(shortcutTargets.get(word).size(), wordProperty.mShortcutTargets.size());
+ for (final WeightedString shortcutTarget : wordProperty.mShortcutTargets) {
+ final String targetCodePonts = shortcutTarget.mWord;
+ assertEquals((int)shortcutTargets.get(word).get(targetCodePonts),
+ shortcutTarget.getProbability());
+ }
+ }
+ }
+
+ @Test
public void testPossiblyOffensiveAttributeMaintained() {
final BinaryDictionary binaryDictionary =
getEmptyBinaryDictionary(FormatSpec.VERSION403);
- binaryDictionary.addUnigramEntry("ddd", 100, false, true, true, 0);
+ binaryDictionary.addUnigramEntry("ddd", 100, null, Dictionary.NOT_A_PROBABILITY,
+ false, true, true, 0);
WordProperty wordProperty = binaryDictionary.getWordProperty("ddd", false);
assertEquals(true, wordProperty.mIsPossiblyOffensive);
}
diff --git a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictEncoderUtils.java b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictEncoderUtils.java
index 2ae5bf5..f423769 100644
--- a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictEncoderUtils.java
+++ b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictEncoderUtils.java
@@ -16,7 +16,9 @@
package com.android.inputmethod.latin.makedict;
+import com.android.inputmethod.annotations.UsedForTesting;
import com.android.inputmethod.latin.makedict.BinaryDictDecoderUtils.CharEncoding;
+import com.android.inputmethod.latin.makedict.BinaryDictDecoderUtils.DictBuffer;
import com.android.inputmethod.latin.makedict.FormatSpec.FormatOptions;
import com.android.inputmethod.latin.makedict.FusionDictionary.PtNode;
import com.android.inputmethod.latin.makedict.FusionDictionary.PtNodeArray;
@@ -90,6 +92,38 @@
}
/**
+ * Compute the size of a shortcut in bytes.
+ */
+ private static int getShortcutSize(final WeightedString shortcut,
+ final HashMap<Integer, Integer> codePointToOneByteCodeMap) {
+ int size = FormatSpec.PTNODE_ATTRIBUTE_FLAGS_SIZE;
+ final String word = shortcut.mWord;
+ final int length = word.length();
+ for (int i = 0; i < length; i = word.offsetByCodePoints(i, 1)) {
+ final int codePoint = word.codePointAt(i);
+ size += CharEncoding.getCharSize(codePoint, codePointToOneByteCodeMap);
+ }
+ size += FormatSpec.PTNODE_TERMINATOR_SIZE;
+ return size;
+ }
+
+ /**
+ * Compute the size of a shortcut list in bytes.
+ *
+ * This is known in advance and does not change according to position in the file
+ * like address lists do.
+ */
+ static int getShortcutListSize(final ArrayList<WeightedString> shortcutList,
+ final HashMap<Integer, Integer> codePointToOneByteCodeMap) {
+ if (null == shortcutList || shortcutList.isEmpty()) return 0;
+ int size = FormatSpec.PTNODE_SHORTCUT_LIST_SIZE_SIZE;
+ for (final WeightedString shortcut : shortcutList) {
+ size += getShortcutSize(shortcut, codePointToOneByteCodeMap);
+ }
+ return size;
+ }
+
+ /**
* Compute the maximum size of a PtNode, assuming 3-byte addresses for everything.
*
* @param ptNode the PtNode to compute the size of.
@@ -103,6 +137,8 @@
size += FormatSpec.PTNODE_FREQUENCY_SIZE;
}
size += FormatSpec.PTNODE_MAX_ADDRESS_SIZE; // For children address
+ // TODO: Use codePointToOneByteCodeMap for shortcuts.
+ size += getShortcutListSize(ptNode.mShortcutTargets, null /* codePointToOneByteCodeMap */);
if (null != ptNode.mBigrams) {
size += (FormatSpec.PTNODE_ATTRIBUTE_FLAGS_SIZE
+ FormatSpec.PTNODE_ATTRIBUTE_MAX_ADDRESS_SIZE)
@@ -205,6 +241,27 @@
}
}
+ @UsedForTesting
+ static void writeUIntToDictBuffer(final DictBuffer dictBuffer, final int value,
+ final int size) {
+ switch(size) {
+ case 4:
+ dictBuffer.put((byte) ((value >> 24) & 0xFF));
+ /* fall through */
+ case 3:
+ dictBuffer.put((byte) ((value >> 16) & 0xFF));
+ /* fall through */
+ case 2:
+ dictBuffer.put((byte) ((value >> 8) & 0xFF));
+ /* fall through */
+ case 1:
+ dictBuffer.put((byte) (value & 0xFF));
+ break;
+ default:
+ /* nop */
+ }
+ }
+
// End utility methods
// This method is responsible for finding a nice ordering of the nodes that favors run-time
@@ -334,6 +391,9 @@
nodeSize += getByteSize(getOffsetToTargetNodeArrayDuringUpdate(ptNodeArray,
nodeSize + size, ptNode.mChildren));
}
+ // TODO: Use codePointToOneByteCodeMap for shortcuts.
+ nodeSize += getShortcutListSize(ptNode.mShortcutTargets,
+ null /* codePointToOneByteCodeMap */);
if (null != ptNode.mBigrams) {
for (WeightedString bigram : ptNode.mBigrams) {
final int offset = getOffsetToTargetPtNodeDuringUpdate(ptNodeArray,
@@ -508,13 +568,14 @@
* @param hasMultipleChars whether the PtNode has multiple chars.
* @param isTerminal whether the PtNode is terminal.
* @param childrenAddressSize the size of a children address.
+ * @param hasShortcuts whether the PtNode has shortcuts.
* @param hasBigrams whether the PtNode has bigrams.
* @param isNotAWord whether the PtNode is not a word.
* @param isPossiblyOffensive whether the PtNode is a possibly offensive entry.
* @return the flags
*/
static int makePtNodeFlags(final boolean hasMultipleChars, final boolean isTerminal,
- final int childrenAddressSize, final boolean hasBigrams,
+ final int childrenAddressSize, final boolean hasShortcuts, final boolean hasBigrams,
final boolean isNotAWord, final boolean isPossiblyOffensive) {
byte flags = 0;
if (hasMultipleChars) flags |= FormatSpec.FLAG_HAS_MULTIPLE_CHARS;
@@ -535,6 +596,7 @@
default:
throw new RuntimeException("Node with a strange address");
}
+ if (hasShortcuts) flags |= FormatSpec.FLAG_HAS_SHORTCUT_TARGETS;
if (hasBigrams) flags |= FormatSpec.FLAG_HAS_BIGRAMS;
if (isNotAWord) flags |= FormatSpec.FLAG_IS_NOT_A_WORD;
if (isPossiblyOffensive) flags |= FormatSpec.FLAG_IS_POSSIBLY_OFFENSIVE;
@@ -544,6 +606,7 @@
/* package */ static byte makePtNodeFlags(final PtNode node, final int childrenOffset) {
return (byte) makePtNodeFlags(node.mChars.length > 1, node.isTerminal(),
getByteSize(childrenOffset),
+ node.mShortcutTargets != null && !node.mShortcutTargets.isEmpty(),
node.mBigrams != null && !node.mBigrams.isEmpty(),
node.mIsNotAWord, node.mIsPossiblyOffensive);
}
@@ -558,7 +621,7 @@
* @param word the second bigram, for debugging purposes
* @return the flags
*/
- /* package */ static int makeBigramFlags(final boolean more, final int offset,
+ /* package */ static final int makeBigramFlags(final boolean more, final int offset,
final int bigramFrequency, final int unigramFrequency, final String word) {
int bigramFlags = (more ? FormatSpec.FLAG_BIGRAM_SHORTCUT_ATTR_HAS_NEXT : 0)
+ (offset < 0 ? FormatSpec.FLAG_BIGRAM_ATTR_OFFSET_NEGATIVE : 0);
@@ -627,7 +690,19 @@
return discretizedFrequency > 0 ? discretizedFrequency : 0;
}
- /* package */ static int getChildrenPosition(final PtNode ptNode,
+ /**
+ * Makes the flag value for a shortcut.
+ *
+ * @param more whether there are more attributes after this one.
+ * @param frequency the frequency of the attribute, 0..15
+ * @return the flags
+ */
+ static final int makeShortcutFlags(final boolean more, final int frequency) {
+ return (more ? FormatSpec.FLAG_BIGRAM_SHORTCUT_ATTR_HAS_NEXT : 0)
+ + (frequency & FormatSpec.FLAG_BIGRAM_SHORTCUT_ATTR_FREQUENCY);
+ }
+
+ /* package */ static final int getChildrenPosition(final PtNode ptNode,
final HashMap<Integer, Integer> codePointToOneByteCodeMap) {
int positionOfChildrenPosField = ptNode.mCachedAddressAfterUpdate
+ getNodeHeaderSize(ptNode, codePointToOneByteCodeMap);
diff --git a/tests/src/com/android/inputmethod/latin/makedict/FusionDictionary.java b/tests/src/com/android/inputmethod/latin/makedict/FusionDictionary.java
index 2bed44d..c97e886 100644
--- a/tests/src/com/android/inputmethod/latin/makedict/FusionDictionary.java
+++ b/tests/src/com/android/inputmethod/latin/makedict/FusionDictionary.java
@@ -82,6 +82,7 @@
public static final class PtNode {
private static final int NOT_A_TERMINAL = -1;
final int mChars[];
+ ArrayList<WeightedString> mShortcutTargets;
ArrayList<WeightedString> mBigrams;
// null == mProbabilityInfo indicates this is not a terminal.
ProbabilityInfo mProbabilityInfo;
@@ -99,23 +100,26 @@
int mCachedAddressBeforeUpdate; // The address of this PtNode (before update)
int mCachedAddressAfterUpdate; // The address of this PtNode (after update)
- public PtNode(final int[] chars, final ArrayList<WeightedString> bigrams,
- final ProbabilityInfo probabilityInfo, final boolean isNotAWord,
- final boolean isPossiblyOffensive) {
+ public PtNode(final int[] chars, final ArrayList<WeightedString> shortcutTargets,
+ final ArrayList<WeightedString> bigrams, final ProbabilityInfo probabilityInfo,
+ final boolean isNotAWord, final boolean isPossiblyOffensive) {
mChars = chars;
mProbabilityInfo = probabilityInfo;
mTerminalId = probabilityInfo == null ? NOT_A_TERMINAL : probabilityInfo.mProbability;
+ mShortcutTargets = shortcutTargets;
mBigrams = bigrams;
mChildren = null;
mIsNotAWord = isNotAWord;
mIsPossiblyOffensive = isPossiblyOffensive;
}
- public PtNode(final int[] chars, final ArrayList<WeightedString> bigrams,
- final ProbabilityInfo probabilityInfo, final boolean isNotAWord,
- final boolean isPossiblyOffensive, final PtNodeArray children) {
+ public PtNode(final int[] chars, final ArrayList<WeightedString> shortcutTargets,
+ final ArrayList<WeightedString> bigrams, final ProbabilityInfo probabilityInfo,
+ final boolean isNotAWord, final boolean isPossiblyOffensive,
+ final PtNodeArray children) {
mChars = chars;
mProbabilityInfo = probabilityInfo;
+ mShortcutTargets = shortcutTargets;
mBigrams = bigrams;
mChildren = children;
mIsNotAWord = isNotAWord;
@@ -149,6 +153,14 @@
return mIsPossiblyOffensive;
}
+ public ArrayList<WeightedString> getShortcutTargets() {
+ // We don't want write permission to escape outside the package, so we return a copy
+ if (null == mShortcutTargets) return null;
+ final ArrayList<WeightedString> copyOfShortcutTargets =
+ new ArrayList<>(mShortcutTargets);
+ return copyOfShortcutTargets;
+ }
+
public ArrayList<WeightedString> getBigrams() {
// We don't want write permission to escape outside the package, so we return a copy
if (null == mBigrams) return null;
@@ -179,6 +191,24 @@
}
/**
+ * Gets the shortcut target for the given word. Returns null if the word is not in the
+ * shortcut list.
+ */
+ public WeightedString getShortcut(final String word) {
+ // TODO: Don't do a linear search
+ if (mShortcutTargets != null) {
+ final int size = mShortcutTargets.size();
+ for (int i = 0; i < size; ++i) {
+ WeightedString shortcut = mShortcutTargets.get(i);
+ if (shortcut.mWord.equals(word)) {
+ return shortcut;
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
* Gets the bigram for the given word.
* Returns null if the word is not in the bigrams list.
*/
@@ -202,9 +232,27 @@
* updated if they are higher than the existing ones.
*/
void update(final ProbabilityInfo probabilityInfo,
+ final ArrayList<WeightedString> shortcutTargets,
final ArrayList<WeightedString> bigrams,
final boolean isNotAWord, final boolean isPossiblyOffensive) {
mProbabilityInfo = ProbabilityInfo.max(mProbabilityInfo, probabilityInfo);
+ if (shortcutTargets != null) {
+ if (mShortcutTargets == null) {
+ mShortcutTargets = shortcutTargets;
+ } else {
+ final int size = shortcutTargets.size();
+ for (int i = 0; i < size; ++i) {
+ final WeightedString shortcut = shortcutTargets.get(i);
+ final WeightedString existingShortcut = getShortcut(shortcut.mWord);
+ if (existingShortcut == null) {
+ mShortcutTargets.add(shortcut);
+ } else {
+ existingShortcut.mProbabilityInfo = ProbabilityInfo.max(
+ existingShortcut.mProbabilityInfo, shortcut.mProbabilityInfo);
+ }
+ }
+ }
+ }
if (bigrams != null) {
if (mBigrams == null) {
mBigrams = bigrams;
@@ -264,16 +312,19 @@
* Helper method to add a word as a string.
*
* This method adds a word to the dictionary with the given frequency. Optional
- * lists of bigrams can be passed here. For each word inside,
+ * lists of bigrams and shortcuts can be passed here. For each word inside,
* they will be added to the dictionary as necessary.
- * @param word the word to add.
+ *
+ * @param word the word to add.
* @param probabilityInfo probability information of the word.
+ * @param shortcutTargets a list of shortcut targets for this word, or null.
* @param isNotAWord true if this should not be considered a word (e.g. shortcut only)
* @param isPossiblyOffensive true if this word is possibly offensive
*/
public void add(final String word, final ProbabilityInfo probabilityInfo,
- final boolean isNotAWord, final boolean isPossiblyOffensive) {
- add(getCodePoints(word), probabilityInfo, isNotAWord, isPossiblyOffensive);
+ final ArrayList<WeightedString> shortcutTargets, final boolean isNotAWord,
+ final boolean isPossiblyOffensive) {
+ add(getCodePoints(word), probabilityInfo, shortcutTargets, isNotAWord, isPossiblyOffensive);
}
/**
@@ -307,7 +358,7 @@
if (ptNode0 != null) {
final PtNode ptNode1 = findWordInTree(mRootNodeArray, word1);
if (ptNode1 == null) {
- add(getCodePoints(word1), new ProbabilityInfo(0), false /* isNotAWord */,
+ add(getCodePoints(word1), new ProbabilityInfo(0), null, false /* isNotAWord */,
false /* isPossiblyOffensive */);
// The PtNode for the first word may have moved by the above insertion,
// if word1 and word2 share a common stem that happens not to have been
@@ -325,12 +376,15 @@
*
* The shortcuts, if any, have to be in the dictionary already. If they aren't,
* an exception is thrown.
- * @param word the word, as an int array.
+ *
+ * @param word the word, as an int array.
* @param probabilityInfo the probability information of the word.
- * @param isNotAWord true if this is not a word for spellchecking purposes (shortcut only or so)
+ * @param shortcutTargets an optional list of shortcut targets for this word (null if none).
+ * @param isNotAWord true if this is not a word for spellcheking purposes (shortcut only or so)
* @param isPossiblyOffensive true if this word is possibly offensive
*/
private void add(final int[] word, final ProbabilityInfo probabilityInfo,
+ final ArrayList<WeightedString> shortcutTargets,
final boolean isNotAWord, final boolean isPossiblyOffensive) {
assert(probabilityInfo.mProbability <= FormatSpec.MAX_TERMINAL_FREQUENCY);
if (word.length >= DecoderSpecificConstants.DICTIONARY_MAX_WORD_LENGTH) {
@@ -360,7 +414,7 @@
// No node at this point to accept the word. Create one.
final int insertionIndex = findInsertionIndex(currentNodeArray, word[charIndex]);
final PtNode newPtNode = new PtNode(Arrays.copyOfRange(word, charIndex, word.length),
- null /* bigrams */, probabilityInfo, isNotAWord,
+ shortcutTargets, null /* bigrams */, probabilityInfo, isNotAWord,
isPossiblyOffensive);
currentNodeArray.mData.add(insertionIndex, newPtNode);
if (DBG) checkStack(currentNodeArray);
@@ -371,14 +425,14 @@
// The new word is a prefix of an existing word, but the node on which it
// should end already exists as is. Since the old PtNode was not a terminal,
// make it one by filling in its frequency and other attributes
- currentPtNode.update(probabilityInfo, null, isNotAWord,
+ currentPtNode.update(probabilityInfo, shortcutTargets, null, isNotAWord,
isPossiblyOffensive);
} else {
// The new word matches the full old word and extends past it.
// We only have to create a new node and add it to the end of this.
final PtNode newNode = new PtNode(
Arrays.copyOfRange(word, charIndex + differentCharIndex, word.length),
- null /* bigrams */, probabilityInfo,
+ shortcutTargets, null /* bigrams */, probabilityInfo,
isNotAWord, isPossiblyOffensive);
currentPtNode.mChildren = new PtNodeArray();
currentPtNode.mChildren.mData.add(newNode);
@@ -387,7 +441,7 @@
if (0 == differentCharIndex) {
// Exact same word. Update the frequency if higher. This will also add the
// new shortcuts to the existing shortcut list if it already exists.
- currentPtNode.update(probabilityInfo, null,
+ currentPtNode.update(probabilityInfo, shortcutTargets, null,
currentPtNode.mIsNotAWord && isNotAWord,
currentPtNode.mIsPossiblyOffensive || isPossiblyOffensive);
} else {
@@ -396,7 +450,7 @@
PtNodeArray newChildren = new PtNodeArray();
final PtNode newOldWord = new PtNode(
Arrays.copyOfRange(currentPtNode.mChars, differentCharIndex,
- currentPtNode.mChars.length),
+ currentPtNode.mChars.length), currentPtNode.mShortcutTargets,
currentPtNode.mBigrams, currentPtNode.mProbabilityInfo,
currentPtNode.mIsNotAWord, currentPtNode.mIsPossiblyOffensive,
currentPtNode.mChildren);
@@ -406,17 +460,17 @@
if (charIndex + differentCharIndex >= word.length) {
newParent = new PtNode(
Arrays.copyOfRange(currentPtNode.mChars, 0, differentCharIndex),
- null /* bigrams */, probabilityInfo,
+ shortcutTargets, null /* bigrams */, probabilityInfo,
isNotAWord, isPossiblyOffensive, newChildren);
} else {
newParent = new PtNode(
Arrays.copyOfRange(currentPtNode.mChars, 0, differentCharIndex),
- null /* bigrams */, null /* probabilityInfo */,
- false /* isNotAWord */, false /* isPossiblyOffensive */,
- newChildren);
+ null /* shortcutTargets */, null /* bigrams */,
+ null /* probabilityInfo */, false /* isNotAWord */,
+ false /* isPossiblyOffensive */, newChildren);
final PtNode newWord = new PtNode(Arrays.copyOfRange(word,
charIndex + differentCharIndex, word.length),
- null /* bigrams */, probabilityInfo,
+ shortcutTargets, null /* bigrams */, probabilityInfo,
isNotAWord, isPossiblyOffensive);
final int addIndex = word[charIndex + differentCharIndex]
> currentPtNode.mChars[differentCharIndex] ? 1 : 0;
@@ -478,7 +532,7 @@
private static int findInsertionIndex(final PtNodeArray nodeArray, int character) {
final ArrayList<PtNode> data = nodeArray.mData;
final PtNode reference = new PtNode(new int[] { character },
- null /* bigrams */, null /* probabilityInfo */,
+ null /* shortcutTargets */, null /* bigrams */, null /* probabilityInfo */,
false /* isNotAWord */, false /* isPossiblyOffensive */);
int result = Collections.binarySearch(data, reference, PTNODE_COMPARATOR);
return result >= 0 ? result : -result - 1;
@@ -615,7 +669,8 @@
}
if (currentPtNode.isTerminal()) {
return new WordProperty(mCurrentString.toString(),
- currentPtNode.mProbabilityInfo, currentPtNode.mBigrams,
+ currentPtNode.mProbabilityInfo,
+ currentPtNode.mShortcutTargets, currentPtNode.mBigrams,
currentPtNode.mIsNotAWord, currentPtNode.mIsPossiblyOffensive);
}
} else {
diff --git a/tests/src/com/android/inputmethod/latin/makedict/Ver4DictDecoder.java b/tests/src/com/android/inputmethod/latin/makedict/Ver4DictDecoder.java
index 746431d..63ea89c 100644
--- a/tests/src/com/android/inputmethod/latin/makedict/Ver4DictDecoder.java
+++ b/tests/src/com/android/inputmethod/latin/makedict/Ver4DictDecoder.java
@@ -84,7 +84,7 @@
// Insert unigrams into the fusion dictionary.
for (final WordProperty wordProperty : wordProperties) {
fusionDict.add(wordProperty.mWord, wordProperty.mProbabilityInfo,
- wordProperty.mIsNotAWord,
+ wordProperty.mShortcutTargets, wordProperty.mIsNotAWord,
wordProperty.mIsPossiblyOffensive);
}
// Insert bigrams into the fusion dictionary.