diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_active_ics.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_active_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..9aa8db60e728935c79ee652c067cb8acfe637bbf
Binary files /dev/null and b/java/res/drawable-hdpi/btn_keyboard_key_dark_active_ics.9.png differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on_ics.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..9f4587b4a6fb62ea7e162823fc17be15f182d749
Binary files /dev/null and b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on_ics.9.png differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_ics.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..7ec33dd207693d4e65aee1fd5436986bcc743a37
Binary files /dev/null and b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_ics.9.png differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off_ics.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..655bc01b113e7285f8c4bb4cd44ee0818624ff18
Binary files /dev/null and b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off_ics.9.png differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on_ics.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..138e915d914c94630e01ba4f430bb831de86ef9e
Binary files /dev/null and b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on_ics.9.png differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_pressed_ics.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_pressed_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..5612c51a12c554b94614fbb23985b18169280ae4
Binary files /dev/null and b/java/res/drawable-hdpi/btn_keyboard_key_light_pressed_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..c2e8b3779a96eb17a8db9fa4fb367bc8aa5cae89
Binary files /dev/null and b/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..28b406a5cf796984e78003fe21a88f83d7944ca3
Binary files /dev/null and b/java/res/drawable-hdpi/keyboard_key_feedback_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..e42cd88dc8b840f2c71251699e559139b9709a95
Binary files /dev/null and b/java/res/drawable-hdpi/keyboard_key_feedback_left_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..16034407338bb9ef2a7bb69fa56eff9b34ddfe0f
Binary files /dev/null and b/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..a40d4277cee55af4ffd5a3456041dfd87335acd0
Binary files /dev/null and b/java/res/drawable-hdpi/keyboard_key_feedback_more_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..1f68073766f915db3f4faa1ec95c707225392bbd
Binary files /dev/null and b/java/res/drawable-hdpi/keyboard_key_feedback_right_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..ec53593d9dad9ef0c5b6a9fd9d97f99cbc6c961f
Binary files /dev/null and b/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..53d7b6fb3ea73194523b7dc725431ddbe56f886e
Binary files /dev/null and b/java/res/drawable-hdpi/keyboard_popup_panel_background_ics.9.png differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_active_ics.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_active_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..e810c77896e36069fc5f90a4abfb430723451254
Binary files /dev/null and b/java/res/drawable-mdpi/btn_keyboard_key_dark_active_ics.9.png differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on_ics.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..f3fc64114ffa5994010c82d183c3684f5df41bb2
Binary files /dev/null and b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on_ics.9.png differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_ics.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..8f340d3551de82288633d23f364e0005704f7ad5
Binary files /dev/null and b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_ics.9.png differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off_ics.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..53ea5f8948d773408f384477dce10ec135f085e6
Binary files /dev/null and b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off_ics.9.png differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on_ics.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..69c84e7ece3c627531cb3a203f503b84254b3acf
Binary files /dev/null and b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on_ics.9.png differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_light_pressed_ics.9.png b/java/res/drawable-mdpi/btn_keyboard_key_light_pressed_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..c39dd4a94c52fb454d3c37c12ba097cea704c472
Binary files /dev/null and b/java/res/drawable-mdpi/btn_keyboard_key_light_pressed_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..93a6e79217ffa44938795703fb5396520f2bf73f
Binary files /dev/null and b/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..7a9f640d1f76fc92890d66b15aa5a645a767fb69
Binary files /dev/null and b/java/res/drawable-mdpi/keyboard_key_feedback_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..5b06f09bb68af624b8e7bf69ef58d5d6bf3fd86f
Binary files /dev/null and b/java/res/drawable-mdpi/keyboard_key_feedback_left_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..fd992d6f4ef7087d48f8ce33d63e554e3eff9160
Binary files /dev/null and b/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..128dcd6ad7417469bed27a81768fb54094a0a1cc
Binary files /dev/null and b/java/res/drawable-mdpi/keyboard_key_feedback_more_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..0b08d1747c200ab3c0837c5e56eff1fd946640b0
Binary files /dev/null and b/java/res/drawable-mdpi/keyboard_key_feedback_right_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..cf0b33c1da4b53bcb29f37fdfe7768eaa1793b39
Binary files /dev/null and b/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..61988a8e17f3f75eb0d6db3265b5371c3dcabbbe
Binary files /dev/null and b/java/res/drawable-mdpi/keyboard_popup_panel_background_ics.9.png differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_active_ics.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_active_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..d990c02582ba11c0d7525f6c2f9f36402d1522a6
Binary files /dev/null and b/java/res/drawable-xhdpi/btn_keyboard_key_dark_active_ics.9.png differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on_ics.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..ab8fb2e86e16777900c4bd2955e92b4021535c8b
Binary files /dev/null and b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on_ics.9.png differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_ics.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..3871689ef23cc70d5b6faeb5b3d3caa6c8791d98
Binary files /dev/null and b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_ics.9.png differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off_ics.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..91250636824759d3c1909c00f628d2339b00090b
Binary files /dev/null and b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off_ics.9.png differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on_ics.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..35ce67fdc0d8fa100631d3fda2de9f081d8a1bc9
Binary files /dev/null and b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on_ics.9.png differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_light_pressed_ics.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_light_pressed_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..c23a4b22578d047b6f083ea584d5b1c7468c66ae
Binary files /dev/null and b/java/res/drawable-xhdpi/btn_keyboard_key_light_pressed_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..0c7bfdacea56f750249b07f5d065865d8869cbfc
Binary files /dev/null and b/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..d999127f219e2087d3ef765efd86925980ce8fa1
Binary files /dev/null and b/java/res/drawable-xhdpi/keyboard_key_feedback_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..c4d69413681c8ae4f34bf7de6993dfd1ee4d13a7
Binary files /dev/null and b/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..5429c1785b88a263265f4c19336d6c1fc90a2d3e
Binary files /dev/null and b/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..5135a086926d6641c0b11c2dc359db7feea555fd
Binary files /dev/null and b/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..19a77a29fd534492f09c9c3742fff48cd32e8f94
Binary files /dev/null and b/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..ae2ffff8ed9cbf9f4e06e093b7225a995acb7440
Binary files /dev/null and b/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..1dee699f47de5bcdab560110f993a6a74edca624
Binary files /dev/null and b/java/res/drawable-xhdpi/keyboard_popup_panel_background_ics.9.png differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_dark_active_ics.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_dark_active_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..680421eafa26378cba11b1f4e12c822c697b503a
Binary files /dev/null and b/java/res/drawable-xxhdpi/btn_keyboard_key_dark_active_ics.9.png differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_dark_normal_on_ics.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_dark_normal_on_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..40f5011c0d5e116828e3079fe28e583b4ecff6d6
Binary files /dev/null and b/java/res/drawable-xxhdpi/btn_keyboard_key_dark_normal_on_ics.9.png differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_dark_pressed_ics.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_dark_pressed_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..6ff6319d3c8a0f0b70271d9de476f7c2d32c4fe8
Binary files /dev/null and b/java/res/drawable-xxhdpi/btn_keyboard_key_dark_pressed_ics.9.png differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_dark_pressed_off_ics.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_dark_pressed_off_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..818ea70fd0975bed860d3b6b8f5b1490f71a6d96
Binary files /dev/null and b/java/res/drawable-xxhdpi/btn_keyboard_key_dark_pressed_off_ics.9.png differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_dark_pressed_on_ics.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_dark_pressed_on_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..a476d2a9e1d79cf4fb3a0d8effe605a2c118ba4a
Binary files /dev/null and b/java/res/drawable-xxhdpi/btn_keyboard_key_dark_pressed_on_ics.9.png differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_light_pressed_ics.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_light_pressed_ics.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c17c5eecf7fdfbc4c1db7c01844729afd34f2bd
Binary files /dev/null and b/java/res/drawable-xxhdpi/btn_keyboard_key_light_pressed_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..6d2af5942949b07bd7e8e34043ca45b14b73f907
Binary files /dev/null and b/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..bd1ef3cd9c74559cc0bcbff7a18c7bb09ce5c487
Binary files /dev/null and b/java/res/drawable-xxhdpi/keyboard_key_feedback_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..65af4b5693c0b4426f61bd86cc6dfd7f74ff2d9e
Binary files /dev/null and b/java/res/drawable-xxhdpi/keyboard_key_feedback_left_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..ac6750dcbbc18f17bb2d57c15fbe44ff1ec99a1b
Binary files /dev/null and b/java/res/drawable-xxhdpi/keyboard_key_feedback_left_more_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..cea7c05f6db9c406f4bd5b881d7717f9b9f5ae17
Binary files /dev/null and b/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..520fa7c6bb57ed9b7ea07e6ea10ab6c80ebb8d38
Binary files /dev/null and b/java/res/drawable-xxhdpi/keyboard_key_feedback_right_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..eee22175896e418bee8e667c44a7a35399244f11
Binary files /dev/null and b/java/res/drawable-xxhdpi/keyboard_key_feedback_right_more_background_ics.9.png 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
new file mode 100644
index 0000000000000000000000000000000000000000..721c2440019753700cd25bb5a110d6b44b96db23
Binary files /dev/null and b/java/res/drawable-xxhdpi/keyboard_popup_panel_background_ics.9.png differ
diff --git a/java/res/drawable/btn_keyboard_key_functional_ics.xml b/java/res/drawable/btn_keyboard_key_functional_ics.xml
new file mode 100644
index 0000000000000000000000000000000000000000..847ca72f4cc85c77dc3848cd86bd2b0d8a107f9a
--- /dev/null
+++ b/java/res/drawable/btn_keyboard_key_functional_ics.xml
@@ -0,0 +1,22 @@
+<?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_dark_pressed_ics" />
+    <item android:drawable="@drawable/btn_keyboard_key_dark_normal_holo" />
+</selector>
diff --git a/java/res/drawable/btn_keyboard_key_ics.xml b/java/res/drawable/btn_keyboard_key_ics.xml
new file mode 100644
index 0000000000000000000000000000000000000000..259bb9ba536101004100fc57b23823aa4d6a6531
--- /dev/null
+++ b/java/res/drawable/btn_keyboard_key_ics.xml
@@ -0,0 +1,48 @@
+<?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_single="true" android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_dark_pressed_ics" />
+    <item android:state_single="true"
+          android:drawable="@drawable/btn_keyboard_key_dark_normal_holo" />
+
+    <!-- Action keys. -->
+    <item android:state_active="true" android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_dark_pressed_ics" />
+    <item android:state_active="true"
+          android:drawable="@drawable/btn_keyboard_key_dark_active_ics" />
+
+    <!-- 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_dark_pressed_on_ics" />
+    <item android:state_checkable="true" android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_dark_pressed_off_ics" />
+    <item android:state_checkable="true" android:state_checked="true"
+          android:drawable="@drawable/btn_keyboard_key_dark_normal_on_ics" />
+    <item android:state_checkable="true"
+          android:drawable="@drawable/btn_keyboard_key_dark_normal_off_holo" />
+
+    <!-- Empty background keys. -->
+    <item android:state_empty="true"
+          android:drawable="@drawable/transparent" />
+
+    <!-- Normal keys. -->
+    <item android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_light_pressed_ics" />
+    <item android:drawable="@drawable/btn_keyboard_key_light_normal_holo" />
+</selector>
diff --git a/java/res/drawable/btn_keyboard_key_popup_ics.xml b/java/res/drawable/btn_keyboard_key_popup_ics.xml
new file mode 100644
index 0000000000000000000000000000000000000000..31b6131762f365d81bebb41afe0e19502e3578cb
--- /dev/null
+++ b/java/res/drawable/btn_keyboard_key_popup_ics.xml
@@ -0,0 +1,21 @@
+<?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="@drawable/transparent" />
+</selector>
diff --git a/java/res/drawable/btn_suggestion_ics.xml b/java/res/drawable/btn_suggestion_ics.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8f528ee4b04b55f96ed436ac002dcfc6af7f56fa
--- /dev/null
+++ b/java/res/drawable/btn_suggestion_ics.xml
@@ -0,0 +1,27 @@
+<?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/keyboard_key_feedback_ics.xml b/java/res/drawable/keyboard_key_feedback_ics.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b52a61fbff9c46ce5fcf0e89ed1a11d8860f92bf
--- /dev/null
+++ b/java/res/drawable/keyboard_key_feedback_ics.xml
@@ -0,0 +1,36 @@
+<?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/layout/key_preview_ics.xml b/java/res/layout/key_preview_ics.xml
new file mode 100644
index 0000000000000000000000000000000000000000..33b6947ef3a5875a325c51037c3e87483ce084aa
--- /dev/null
+++ b/java/res/layout/key_preview_ics.xml
@@ -0,0 +1,27 @@
+<?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.
+*/
+-->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:background="@drawable/keyboard_key_feedback_ics"
+    android:minWidth="32dp"
+    android:gravity="center"
+/>
diff --git a/java/res/values/config.xml b/java/res/values/config.xml
index 66b9b70823ba9d912c56f165e09a4d81b0254080..8f6c12561efdd982ddf33ad26c15a884a5938714 100644
--- a/java/res/values/config.xml
+++ b/java/res/values/config.xml
@@ -42,7 +42,7 @@
     <integer name="config_keyboard_grid_height">16</integer>
     <integer name="config_double_space_period_timeout">1100</integer>
     <!-- This configuration is the index of the array {@link KeyboardSwitcher.KEYBOARD_THEMES}. -->
-    <string name="config_default_keyboard_theme_index" translatable="false">0</string>
+    <string name="config_default_keyboard_theme_index" translatable="false">2</string>
     <integer name="config_max_more_keys_column">5</integer>
 
     <!--
diff --git a/java/res/values/donottranslate.xml b/java/res/values/donottranslate.xml
index 4733aa257f5c6920962c08036db3913178a91f3b..ca9d7c388f11b47c8a0cef07ab074b8515ab8f81 100644
--- a/java/res/values/donottranslate.xml
+++ b/java/res/values/donottranslate.xml
@@ -103,15 +103,18 @@
     <!-- Keyboard theme names -->
     <string name="layout_gingerbread">Gingerbread</string>
     <string name="layout_ics">IceCreamSandwich</string>
+    <string name="layout_klp">KeyLimePie</string>
 
     <!-- For keyboard theme switcher dialog -->
     <string-array name="keyboard_layout_modes">
         <item>@string/layout_ics</item>
         <item>@string/layout_gingerbread</item>
+        <item>@string/layout_klp</item>
     </string-array>
     <string-array name="keyboard_layout_modes_values">
         <item>0</item>
         <item>1</item>
+        <item>2</item>
     </string-array>
 
     <!-- Subtype locale display name exceptions.
diff --git a/java/res/values/themes-ics.xml b/java/res/values/themes-ics.xml
new file mode 100644
index 0000000000000000000000000000000000000000..432ad51227481f17682105ddc759b2f462ec1ad4
--- /dev/null
+++ b/java/res/values/themes-ics.xml
@@ -0,0 +1,124 @@
+<?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="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>
+        <item name="moreKeysKeyboardViewStyle">@style/MoreKeysKeyboardView.ICS</item>
+        <item name="moreKeysKeyboardContainerStyle">@style/MoreKeysKeyboardContainer.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 KeyboardSwitcher.KEYBOARD_THEMES[] -->
+        <item name="themeId">2</item>
+        <item name="keyboardTopPadding">@fraction/keyboard_top_padding_holo</item>
+        <item name="keyboardBottomPadding">@fraction/keyboard_bottom_padding_holo</item>
+        <item name="horizontalGap">@fraction/key_horizontal_gap_holo</item>
+        <item name="verticalGap">@fraction/key_bottom_gap_holo</item>
+        <item name="touchPositionCorrectionData">@array/touch_position_correction_data_holo</item>
+    </style>
+    <style
+        name="KeyboardView.ICS"
+        parent="KeyboardView"
+    >
+        <item name="android:background">@drawable/keyboard_background_holo</item>
+        <item name="keyBackground">@drawable/btn_keyboard_key_ics</item>
+        <item name="keyTypeface">bold</item>
+        <item name="keyTextColor">@color/key_text_color_holo</item>
+        <item name="keyTextInactivatedColor">@color/key_text_inactivated_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>
+        <item name="keyTextShadowColor">@color/key_text_shadow_color_holo</item>
+        <item name="keyTextShadowRadius">0.0</item>
+    </style>
+    <style
+        name="MainKeyboardView.ICS"
+        parent="KeyboardView.ICS"
+    >
+        <item name="keyPreviewLayout">@layout/key_preview_ics</item>
+        <item name="keyPreviewOffset">@dimen/key_preview_offset_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="autoCorrectionSpacebarLedEnabled">false</item>
+        <item name="autoCorrectionSpacebarLedIcon">@drawable/sym_keyboard_space_led_holo</item>
+        <item name="spacebarTextColor">@color/spacebar_text_color_holo</item>
+        <item name="spacebarTextShadowColor">@color/spacebar_text_shadow_color_holo</item>
+    </style>
+    <!-- Though {@link EmojiPalettesView} doesn't extend {@link KeyboardView}, some views inside it,
+         for instance delete button, need themed {@link KeyboardView} attributes. -->
+    <style
+        name="EmojiPalettesView.ICS"
+        parent="KeyboardView.ICS"
+    >
+        <item name="keyBackgroundEmojiFunctional">@drawable/btn_keyboard_key_functional_ics</item>
+        <item name="emojiTabLabelColor">@color/emoji_tab_label_color_holo</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">@null</item>
+        <item name="keyBackground">@drawable/btn_keyboard_key_popup_ics</item>
+        <item name="keyTypeface">normal</item>
+        <item name="verticalCorrection">@dimen/more_keys_keyboard_vertical_correction_holo</item>
+    </style>
+    <style
+        name="MoreKeysKeyboardContainer.ICS"
+    >
+        <item name="android:background">@drawable/keyboard_popup_panel_background_ics</item>
+    </style>
+    <style
+        name="SuggestionStripView.ICS"
+        parent="SuggestionStripView"
+    >
+        <item name="android:background">@drawable/keyboard_suggest_strip_holo</item>
+        <item name="suggestionStripOption">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">
+        <item name="android:background">@drawable/btn_suggestion_ics</item>
+    </style>
+</resources>
diff --git a/java/res/xml/prefs_for_debug.xml b/java/res/xml/prefs_for_debug.xml
index 5d89b9cb2f6a357c9418486613bd04b64343e8b6..8d9508e38e7c6199aa25b3a77ed3b5d343f239bd 100644
--- a/java/res/xml/prefs_for_debug.xml
+++ b/java/res/xml/prefs_for_debug.xml
@@ -28,6 +28,7 @@
     <ListPreference
             android:key="pref_keyboard_layout_20110916"
             android:title="@string/keyboard_layout"
+            android:summary="%s"
             android:persistent="true"
             android:entryValues="@array/keyboard_layout_modes_values"
             android:entries="@array/keyboard_layout_modes"
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index ef1b9d53f32a2407d062000eac8287d157e0a9bd..f893636ada03666e050fa255bb7adbe6cfd1fca7 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -57,9 +57,13 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
         }
     }
 
+    private static final int INDEX_THEME_ICS = 0;
+    private static final int INDEX_THEME_GB = 1;
+    private static final int INDEX_THEME_KLP = 2;
     private static final KeyboardTheme[] KEYBOARD_THEMES = {
-        new KeyboardTheme(0, R.style.KeyboardTheme_KLP),
-        new KeyboardTheme(1, R.style.KeyboardTheme_GB),
+        new KeyboardTheme(INDEX_THEME_ICS, R.style.KeyboardTheme_ICS),
+        new KeyboardTheme(INDEX_THEME_GB, R.style.KeyboardTheme_GB),
+        new KeyboardTheme(INDEX_THEME_KLP, R.style.KeyboardTheme_KLP),
     };
 
     private SubtypeSwitcher mSubtypeSwitcher;
@@ -80,7 +84,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
      * what user actually typed. */
     private boolean mIsAutoCorrectionActive;
 
-    private KeyboardTheme mKeyboardTheme = KEYBOARD_THEMES[0];
+    private KeyboardTheme mKeyboardTheme = KEYBOARD_THEMES[INDEX_THEME_KLP];
     private Context mThemeContext;
 
     private static final KeyboardSwitcher sInstance = new KeyboardSwitcher();