Add keyHintIcon attribute to BaseKeyboard.Key class

This keyHintIcon attribute is used to specify hint icon drawable at
top right corner of Key.

Change-Id: Icaa91e63c4473b2513396bd3fbeb8ed6fd73586c
diff --git a/java/res/drawable-mdpi/keyboard_hint_at.9.png b/java/res/drawable-mdpi/keyboard_hint_at.9.png
new file mode 100644
index 0000000..69baede
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_hint_at.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_hint_colon.9.png b/java/res/drawable-mdpi/keyboard_hint_colon.9.png
new file mode 100644
index 0000000..9d0d7cb
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_hint_colon.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_hint_doublecross.9.png b/java/res/drawable-mdpi/keyboard_hint_doublecross.9.png
new file mode 100644
index 0000000..d24aa0f
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_hint_doublecross.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_hint_exclamation.9.png b/java/res/drawable-mdpi/keyboard_hint_exclamation.9.png
new file mode 100644
index 0000000..f6cc7fe
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_hint_exclamation.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_hint_greater.9.png b/java/res/drawable-mdpi/keyboard_hint_greater.9.png
new file mode 100644
index 0000000..5210392
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_hint_greater.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_hint_plus.9.png b/java/res/drawable-mdpi/keyboard_hint_plus.9.png
new file mode 100644
index 0000000..d1d85ac
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_hint_plus.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_hint_question.9.png b/java/res/drawable-mdpi/keyboard_hint_question.9.png
new file mode 100644
index 0000000..37f6e5f
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_hint_question.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_hint_quote.9.png b/java/res/drawable-mdpi/keyboard_hint_quote.9.png
new file mode 100644
index 0000000..e7d2cb5
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_hint_quote.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_hint_smaller.9.png b/java/res/drawable-mdpi/keyboard_hint_smaller.9.png
new file mode 100644
index 0000000..76553cf
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_hint_smaller.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_hint_star.9.png b/java/res/drawable-mdpi/keyboard_hint_star.9.png
new file mode 100644
index 0000000..47978c4
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_hint_star.9.png
Binary files differ
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 943a43b..1900214 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -106,8 +106,12 @@
         <attr name="keyOutputText" format="string" />
         <!-- The label to display on the key. -->
         <attr name="keyLabel" format="string" />
+        <!-- The label to display on the key when keyboard is in temporary shift mode. -->
+        <attr name="temporaryShiftKeyLabel" format="string" />
         <!-- The icon to display on the key instead of the label. -->
         <attr name="keyIcon" format="reference" />
+        <!-- The hint icon to display on the key in conjunction with the label -->
+        <attr name="keyHintIcon" format="reference" />
         <!-- Mode of the keyboard. If the mode doesn't match the
              requested keyboard mode, the key will be skipped. -->
         <attr name="keyboardMode" />
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index 94fe76d..a05d291 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -212,6 +212,8 @@
     <string name="label_alpha_key">ABC</string>
     <!-- Label for ALT modifier key.  Must be short to fit on key! -->
     <string name="label_alt_key">ALT</string>
+    <!-- Label for Shift modifier key of symbol keyboard.  Must be short to fit on key! -->
+    <string name="label_more_key">More</string>
 
     <!-- Voice related labels -->
 
diff --git a/java/res/xml-da/kbd_qwerty.xml b/java/res/xml-da/kbd_qwerty.xml
index 4aef4b4..431c5d7 100644
--- a/java/res/xml-da/kbd_qwerty.xml
+++ b/java/res/xml-da/kbd_qwerty.xml
@@ -34,44 +34,54 @@
     <Row>
         <Key
             latin:keyLabel="q"
+            latin:keyHintIcon="@drawable/keyboard_hint_1"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_q"
             latin:keyWidth="8.75%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="w"
+            latin:keyHintIcon="@drawable/keyboard_hint_2"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
+            latin:keyHintIcon="@drawable/keyboard_hint_3"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
+            latin:keyHintIcon="@drawable/keyboard_hint_4"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
+            latin:keyHintIcon="@drawable/keyboard_hint_5"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
+            latin:keyHintIcon="@drawable/keyboard_hint_6"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
+            latin:keyHintIcon="@drawable/keyboard_hint_7"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
+            latin:keyHintIcon="@drawable/keyboard_hint_8"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
+            latin:keyHintIcon="@drawable/keyboard_hint_9"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
+            latin:keyHintIcon="@drawable/keyboard_hint_0"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_p" />
         <Key
diff --git a/java/res/xml-da/kbd_qwerty_black.xml b/java/res/xml-da/kbd_qwerty_black.xml
index e3b6768..43bcdee 100644
--- a/java/res/xml-da/kbd_qwerty_black.xml
+++ b/java/res/xml-da/kbd_qwerty_black.xml
@@ -34,44 +34,54 @@
     <Row>
         <Key
             latin:keyLabel="q"
+            latin:keyHintIcon="@drawable/keyboard_hint_1"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_q"
             latin:keyWidth="8.75%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="w"
+            latin:keyHintIcon="@drawable/keyboard_hint_2"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
+            latin:keyHintIcon="@drawable/keyboard_hint_3"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
+            latin:keyHintIcon="@drawable/keyboard_hint_4"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
+            latin:keyHintIcon="@drawable/keyboard_hint_5"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
+            latin:keyHintIcon="@drawable/keyboard_hint_6"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
+            latin:keyHintIcon="@drawable/keyboard_hint_7"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
+            latin:keyHintIcon="@drawable/keyboard_hint_8"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
+            latin:keyHintIcon="@drawable/keyboard_hint_9"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
+            latin:keyHintIcon="@drawable/keyboard_hint_0"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_p" />
         <Key
diff --git a/java/res/xml-de/kbd_qwerty.xml b/java/res/xml-de/kbd_qwerty.xml
index 6318a9d..cc9d32f 100644
--- a/java/res/xml-de/kbd_qwerty.xml
+++ b/java/res/xml-de/kbd_qwerty.xml
@@ -28,43 +28,53 @@
     <Row>
         <Key
             latin:keyLabel="q"
+            latin:keyHintIcon="@drawable/keyboard_hint_1"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_q"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="w"
+            latin:keyHintIcon="@drawable/keyboard_hint_2"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
+            latin:keyHintIcon="@drawable/keyboard_hint_3"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
+            latin:keyHintIcon="@drawable/keyboard_hint_4"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
+            latin:keyHintIcon="@drawable/keyboard_hint_5"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_t" />
         <Key
             latin:keyLabel="z"
+            latin:keyHintIcon="@drawable/keyboard_hint_6"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_z" />
         <Key
             latin:keyLabel="u"
+            latin:keyHintIcon="@drawable/keyboard_hint_7"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
+            latin:keyHintIcon="@drawable/keyboard_hint_8"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
+            latin:keyHintIcon="@drawable/keyboard_hint_9"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
+            latin:keyHintIcon="@drawable/keyboard_hint_0"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_p"
             latin:keyEdgeFlags="right" />
diff --git a/java/res/xml-de/kbd_qwerty_black.xml b/java/res/xml-de/kbd_qwerty_black.xml
index dfa7ef6..fc0ede3 100644
--- a/java/res/xml-de/kbd_qwerty_black.xml
+++ b/java/res/xml-de/kbd_qwerty_black.xml
@@ -28,43 +28,53 @@
     <Row>
         <Key
             latin:keyLabel="q"
+            latin:keyHintIcon="@drawable/keyboard_hint_1"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_q"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="w"
+            latin:keyHintIcon="@drawable/keyboard_hint_2"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
+            latin:keyHintIcon="@drawable/keyboard_hint_3"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
             latin:popupKeyboard="@xml/kbd_popup_template"
+            latin:keyHintIcon="@drawable/keyboard_hint_4"
             latin:popupCharacters="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
             latin:popupKeyboard="@xml/kbd_popup_template"
+            latin:keyHintIcon="@drawable/keyboard_hint_5"
             latin:popupCharacters="@string/alternates_for_t" />
         <Key
             latin:keyLabel="z"
+            latin:keyHintIcon="@drawable/keyboard_hint_6"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_z" />
         <Key
             latin:keyLabel="u"
+            latin:keyHintIcon="@drawable/keyboard_hint_7"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
+            latin:keyHintIcon="@drawable/keyboard_hint_8"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
+            latin:keyHintIcon="@drawable/keyboard_hint_9"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
+            latin:keyHintIcon="@drawable/keyboard_hint_0"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_p"
             latin:keyEdgeFlags="right" />
diff --git a/java/res/xml-fr/kbd_qwerty.xml b/java/res/xml-fr/kbd_qwerty.xml
index 80d4d25..c18339c 100644
--- a/java/res/xml-fr/kbd_qwerty.xml
+++ b/java/res/xml-fr/kbd_qwerty.xml
@@ -28,43 +28,53 @@
     <Row>
         <Key
             latin:keyLabel="a"
+            latin:keyHintIcon="@drawable/keyboard_hint_1"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_a"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="z"
+            latin:keyHintIcon="@drawable/keyboard_hint_2"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_z" />
         <Key
             latin:keyLabel="e"
+            latin:keyHintIcon="@drawable/keyboard_hint_3"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
+            latin:keyHintIcon="@drawable/keyboard_hint_4"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
+            latin:keyHintIcon="@drawable/keyboard_hint_5"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
+            latin:keyHintIcon="@drawable/keyboard_hint_6"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
+            latin:keyHintIcon="@drawable/keyboard_hint_7"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
+            latin:keyHintIcon="@drawable/keyboard_hint_8"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
+            latin:keyHintIcon="@drawable/keyboard_hint_9"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
+            latin:keyHintIcon="@drawable/keyboard_hint_0"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_p"
             latin:keyEdgeFlags="right" />
diff --git a/java/res/xml-fr/kbd_qwerty_black.xml b/java/res/xml-fr/kbd_qwerty_black.xml
index 28bf3f9..c0f263f 100644
--- a/java/res/xml-fr/kbd_qwerty_black.xml
+++ b/java/res/xml-fr/kbd_qwerty_black.xml
@@ -28,43 +28,53 @@
     <Row>
         <Key
             latin:keyLabel="a"
+            latin:keyHintIcon="@drawable/keyboard_hint_1"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_a"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="z"
+            latin:keyHintIcon="@drawable/keyboard_hint_2"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_z" />
         <Key
             latin:keyLabel="e"
+            latin:keyHintIcon="@drawable/keyboard_hint_3"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
+            latin:keyHintIcon="@drawable/keyboard_hint_4"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
+            latin:keyHintIcon="@drawable/keyboard_hint_5"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
+            latin:keyHintIcon="@drawable/keyboard_hint_6"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
+            latin:keyHintIcon="@drawable/keyboard_hint_7"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
+            latin:keyHintIcon="@drawable/keyboard_hint_8"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
+            latin:keyHintIcon="@drawable/keyboard_hint_9"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
+            latin:keyHintIcon="@drawable/keyboard_hint_0"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_p"
             latin:keyEdgeFlags="right" />
diff --git a/java/res/xml-nb/kbd_qwerty.xml b/java/res/xml-nb/kbd_qwerty.xml
index 8921d53..ea7fb30 100644
--- a/java/res/xml-nb/kbd_qwerty.xml
+++ b/java/res/xml-nb/kbd_qwerty.xml
@@ -34,44 +34,54 @@
     <Row>
         <Key
             latin:keyLabel="q"
+            latin:keyHintIcon="@drawable/keyboard_hint_1"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_q"
             latin:keyWidth="8.75%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="w"
+            latin:keyHintIcon="@drawable/keyboard_hint_2"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
+            latin:keyHintIcon="@drawable/keyboard_hint_3"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
+            latin:keyHintIcon="@drawable/keyboard_hint_4"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
+            latin:keyHintIcon="@drawable/keyboard_hint_5"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
+            latin:keyHintIcon="@drawable/keyboard_hint_6"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
+            latin:keyHintIcon="@drawable/keyboard_hint_7"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
+            latin:keyHintIcon="@drawable/keyboard_hint_8"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
+            latin:keyHintIcon="@drawable/keyboard_hint_9"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
+            latin:keyHintIcon="@drawable/keyboard_hint_0"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_p" />
         <Key
diff --git a/java/res/xml-nb/kbd_qwerty_black.xml b/java/res/xml-nb/kbd_qwerty_black.xml
index 1497d67..ea1a3a0 100644
--- a/java/res/xml-nb/kbd_qwerty_black.xml
+++ b/java/res/xml-nb/kbd_qwerty_black.xml
@@ -34,44 +34,54 @@
     <Row>
         <Key
             latin:keyLabel="q"
+            latin:keyHintIcon="@drawable/keyboard_hint_1"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_q"
             latin:keyWidth="8.75%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="w"
+            latin:keyHintIcon="@drawable/keyboard_hint_2"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
+            latin:keyHintIcon="@drawable/keyboard_hint_3"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
+            latin:keyHintIcon="@drawable/keyboard_hint_4"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
+            latin:keyHintIcon="@drawable/keyboard_hint_5"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
+            latin:keyHintIcon="@drawable/keyboard_hint_6"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
+            latin:keyHintIcon="@drawable/keyboard_hint_7"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
+            latin:keyHintIcon="@drawable/keyboard_hint_8"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
+            latin:keyHintIcon="@drawable/keyboard_hint_9"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
+            latin:keyHintIcon="@drawable/keyboard_hint_0"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_p" />
         <Key
diff --git a/java/res/xml-ru/kbd_qwerty.xml b/java/res/xml-ru/kbd_qwerty.xml
index 80ce4d0..e31f517 100644
--- a/java/res/xml-ru/kbd_qwerty.xml
+++ b/java/res/xml-ru/kbd_qwerty.xml
@@ -28,44 +28,54 @@
     <Row>
         <Key
             latin:keyLabel="й"
+            latin:keyHintIcon="@drawable/keyboard_hint_1"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="1"
             latin:keyWidth="8.75%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="ц"
+            latin:keyHintIcon="@drawable/keyboard_hint_2"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="2" />
         <Key
             latin:keyLabel="у"
+            latin:keyHintIcon="@drawable/keyboard_hint_3"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="3" />
         <Key
             latin:keyLabel="к"
+            latin:keyHintIcon="@drawable/keyboard_hint_4"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="4" />
         <Key
             latin:keyLabel="е"
+            latin:keyHintIcon="@drawable/keyboard_hint_5"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_cyrillic_e" />
         <Key
             latin:keyLabel="н"
+            latin:keyHintIcon="@drawable/keyboard_hint_6"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="6" />
         <Key
             latin:keyLabel="г"
+            latin:keyHintIcon="@drawable/keyboard_hint_7"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="7" />
         <Key
             latin:keyLabel="ш"
+            latin:keyHintIcon="@drawable/keyboard_hint_8"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="8" />
         <Key
             latin:keyLabel="щ"
+            latin:keyHintIcon="@drawable/keyboard_hint_9"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="9" />
         <Key
             latin:keyLabel="з"
+            latin:keyHintIcon="@drawable/keyboard_hint_0"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="0" />
         <Key
diff --git a/java/res/xml-ru/kbd_qwerty_black.xml b/java/res/xml-ru/kbd_qwerty_black.xml
index c3f120a..3ddfd29 100644
--- a/java/res/xml-ru/kbd_qwerty_black.xml
+++ b/java/res/xml-ru/kbd_qwerty_black.xml
@@ -28,44 +28,54 @@
     <Row>
         <Key
             latin:keyLabel="й"
+            latin:keyHintIcon="@drawable/keyboard_hint_1"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="1"
             latin:keyWidth="8.75%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="ц"
+            latin:keyHintIcon="@drawable/keyboard_hint_2"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="2" />
         <Key
             latin:keyLabel="у"
+            latin:keyHintIcon="@drawable/keyboard_hint_3"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="3" />
         <Key
             latin:keyLabel="к"
+            latin:keyHintIcon="@drawable/keyboard_hint_4"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="4" />
         <Key
             latin:keyLabel="е"
+            latin:keyHintIcon="@drawable/keyboard_hint_5"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_cyrillic_e" />
         <Key
             latin:keyLabel="н"
+            latin:keyHintIcon="@drawable/keyboard_hint_6"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="6" />
         <Key
             latin:keyLabel="г"
+            latin:keyHintIcon="@drawable/keyboard_hint_7"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="7" />
         <Key
             latin:keyLabel="ш"
+            latin:keyHintIcon="@drawable/keyboard_hint_8"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="8" />
         <Key
             latin:keyLabel="щ"
+            latin:keyHintIcon="@drawable/keyboard_hint_9"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="9" />
         <Key
             latin:keyLabel="з"
+            latin:keyHintIcon="@drawable/keyboard_hint_0"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="0" />
         <Key
diff --git a/java/res/xml-sr/kbd_qwerty.xml b/java/res/xml-sr/kbd_qwerty.xml
index 7cc4770..dd74fc2 100644
--- a/java/res/xml-sr/kbd_qwerty.xml
+++ b/java/res/xml-sr/kbd_qwerty.xml
@@ -29,43 +29,53 @@
     <Row>
         <Key
             latin:keyLabel="љ"
+            latin:keyHintIcon="@drawable/keyboard_hint_1"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="1"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="њ"
+            latin:keyHintIcon="@drawable/keyboard_hint_2"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="2" />
         <Key
             latin:keyLabel="е"
+            latin:keyHintIcon="@drawable/keyboard_hint_3"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="3" />
         <Key
             latin:keyLabel="р"
+            latin:keyHintIcon="@drawable/keyboard_hint_4"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="4" />
         <Key
             latin:keyLabel="т"
+            latin:keyHintIcon="@drawable/keyboard_hint_5"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="5" />
         <Key
             latin:keyLabel="з"
+            latin:keyHintIcon="@drawable/keyboard_hint_6"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="6" />
         <Key
             latin:keyLabel="у"
+            latin:keyHintIcon="@drawable/keyboard_hint_7"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="7" />
         <Key
             latin:keyLabel="и"
+            latin:keyHintIcon="@drawable/keyboard_hint_8"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="8" />
         <Key
             latin:keyLabel="о"
+            latin:keyHintIcon="@drawable/keyboard_hint_9"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="9" />
         <Key
             latin:keyLabel="п"
+            latin:keyHintIcon="@drawable/keyboard_hint_0"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="0" />
         <Key
diff --git a/java/res/xml-sr/kbd_qwerty_black.xml b/java/res/xml-sr/kbd_qwerty_black.xml
index d61ff3e..8c73ee3 100644
--- a/java/res/xml-sr/kbd_qwerty_black.xml
+++ b/java/res/xml-sr/kbd_qwerty_black.xml
@@ -29,43 +29,53 @@
     <Row>
         <Key
             latin:keyLabel="љ"
+            latin:keyHintIcon="@drawable/keyboard_hint_1"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="1"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="њ"
+            latin:keyHintIcon="@drawable/keyboard_hint_2"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="2" />
         <Key
             latin:keyLabel="е"
+            latin:keyHintIcon="@drawable/keyboard_hint_3"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="3" />
         <Key
             latin:keyLabel="р"
+            latin:keyHintIcon="@drawable/keyboard_hint_4"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="4" />
         <Key
             latin:keyLabel="т"
+            latin:keyHintIcon="@drawable/keyboard_hint_5"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="5" />
         <Key
             latin:keyLabel="з"
+            latin:keyHintIcon="@drawable/keyboard_hint_6"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="6" />
         <Key
             latin:keyLabel="у"
+            latin:keyHintIcon="@drawable/keyboard_hint_7"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="7" />
         <Key
             latin:keyLabel="и"
+            latin:keyHintIcon="@drawable/keyboard_hint_8"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="8" />
         <Key
             latin:keyLabel="о"
+            latin:keyHintIcon="@drawable/keyboard_hint_9"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="9" />
         <Key
             latin:keyLabel="п"
+            latin:keyHintIcon="@drawable/keyboard_hint_0"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="0" />
         <Key
diff --git a/java/res/xml-sv/kbd_qwerty.xml b/java/res/xml-sv/kbd_qwerty.xml
index 2c584e2..6425624 100644
--- a/java/res/xml-sv/kbd_qwerty.xml
+++ b/java/res/xml-sv/kbd_qwerty.xml
@@ -36,44 +36,54 @@
     <Row>
         <Key
             latin:keyLabel="q"
+            latin:keyHintIcon="@drawable/keyboard_hint_1"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_q"
             latin:keyWidth="8.75%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="w"
+            latin:keyHintIcon="@drawable/keyboard_hint_2"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
+            latin:keyHintIcon="@drawable/keyboard_hint_3"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
+            latin:keyHintIcon="@drawable/keyboard_hint_4"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
+            latin:keyHintIcon="@drawable/keyboard_hint_5"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
+            latin:keyHintIcon="@drawable/keyboard_hint_6"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
+            latin:keyHintIcon="@drawable/keyboard_hint_7"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
+            latin:keyHintIcon="@drawable/keyboard_hint_8"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
+            latin:keyHintIcon="@drawable/keyboard_hint_9"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
+            latin:keyHintIcon="@drawable/keyboard_hint_0"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_p" />
         <Key
diff --git a/java/res/xml-sv/kbd_qwerty_black.xml b/java/res/xml-sv/kbd_qwerty_black.xml
index 90dca89..6337b91 100644
--- a/java/res/xml-sv/kbd_qwerty_black.xml
+++ b/java/res/xml-sv/kbd_qwerty_black.xml
@@ -36,44 +36,54 @@
     <Row>
         <Key
             latin:keyLabel="q"
+            latin:keyHintIcon="@drawable/keyboard_hint_1"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_q"
             latin:keyWidth="8.75%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="w"
+            latin:keyHintIcon="@drawable/keyboard_hint_2"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
+            latin:keyHintIcon="@drawable/keyboard_hint_3"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
+            latin:keyHintIcon="@drawable/keyboard_hint_4"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
+            latin:keyHintIcon="@drawable/keyboard_hint_5"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
+            latin:keyHintIcon="@drawable/keyboard_hint_6"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
+            latin:keyHintIcon="@drawable/keyboard_hint_7"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
+            latin:keyHintIcon="@drawable/keyboard_hint_8"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
+            latin:keyHintIcon="@drawable/keyboard_hint_9"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
+            latin:keyHintIcon="@drawable/keyboard_hint_0"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_p" />
         <Key
diff --git a/java/res/xml-xlarge/kbd_qwerty.xml b/java/res/xml-xlarge/kbd_qwerty.xml
index a76eff0..f372eda 100644
--- a/java/res/xml-xlarge/kbd_qwerty.xml
+++ b/java/res/xml-xlarge/kbd_qwerty.xml
@@ -30,49 +30,62 @@
         <Key
             latin:codes="@integer/key_tab"
             latin:keyLabel="Tab"
+            latin:isModifier="true"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="q"
+            latin:keyHintIcon="@drawable/keyboard_hint_1"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_q" />
         <Key
             latin:keyLabel="w"
+            latin:keyHintIcon="@drawable/keyboard_hint_2"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
+            latin:keyHintIcon="@drawable/keyboard_hint_3"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
+            latin:keyHintIcon="@drawable/keyboard_hint_4"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
+            latin:keyHintIcon="@drawable/keyboard_hint_5"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
+            latin:keyHintIcon="@drawable/keyboard_hint_6"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
+            latin:keyHintIcon="@drawable/keyboard_hint_7"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
+            latin:keyHintIcon="@drawable/keyboard_hint_8"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
+            latin:keyHintIcon="@drawable/keyboard_hint_9"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
+            latin:keyHintIcon="@drawable/keyboard_hint_0"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_p" />
         <Key
             latin:keyLabel="="
+            latin:temporaryShiftKeyLabel="+"
+            latin:keyHintIcon="@drawable/keyboard_hint_plus"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="+" />
         <Key
@@ -121,10 +134,14 @@
             latin:popupCharacters="@string/alternates_for_l" />
         <Key
             latin:keyLabel=";"
+            latin:temporaryShiftKeyLabel=":"
+            latin:keyHintIcon="@drawable/keyboard_hint_colon"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters=":" />
         <Key
             latin:keyLabel="\'"
+            latin:temporaryShiftKeyLabel="&quot;"
+            latin:keyHintIcon="@drawable/keyboard_hint_quote"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="&quot;" />
         <Key
@@ -168,14 +185,20 @@
             latin:keyLabel="m" />
         <Key
             latin:keyLabel=","
+            latin:temporaryShiftKeyLabel="*"
+            latin:keyHintIcon="@drawable/keyboard_hint_star"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="*" />
         <Key
             latin:keyLabel="."
+            latin:temporaryShiftKeyLabel="!"
+            latin:keyHintIcon="@drawable/keyboard_hint_exclamation"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="!" />
         <Key
             latin:keyLabel="/"
+            latin:temporaryShiftKeyLabel="\?"
+            latin:keyHintIcon="@drawable/keyboard_hint_question"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="\?" />
         <Key
@@ -191,11 +214,15 @@
     <!-- This row is intentionally not marked as a bottom row -->
         <Key
             latin:keyLabel="("
+            latin:temporaryShiftKeyLabel="&lt;"
+            latin:keyHintIcon="@drawable/keyboard_hint_smaller"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="&lt;"
             latin:horizontalGap="16.25%p" />
         <Key
             latin:keyLabel=")"
+            latin:temporaryShiftKeyLabel="&gt;"
+            latin:keyHintIcon="@drawable/keyboard_hint_greater"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="&gt;" />
         <Key
@@ -206,10 +233,14 @@
             latin:isModifier="true" />
         <Key
             latin:keyLabel="_"
+            latin:temporaryShiftKeyLabel="\@"
+            latin:keyHintIcon="@drawable/keyboard_hint_at"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="\@" />
         <Key
             latin:keyLabel="-"
+            latin:temporaryShiftKeyLabel="#"
+            latin:keyHintIcon="@drawable/keyboard_hint_doublecross"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="#" />
     </Row>
diff --git a/java/res/xml-xlarge/kbd_symbols.xml b/java/res/xml-xlarge/kbd_symbols.xml
index 7d23dc5..8391ef7 100644
--- a/java/res/xml-xlarge/kbd_symbols.xml
+++ b/java/res/xml-xlarge/kbd_symbols.xml
@@ -30,6 +30,7 @@
         <Key
             latin:codes="@integer/key_tab"
             latin:keyLabel="Tab"
+            latin:isModifier="true"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="1" />
@@ -102,7 +103,7 @@
     <Row>
         <Key
             latin:codes="@integer/key_shift"
-            latin:keyIcon="@drawable/sym_keyboard_shift"
+            latin:keyLabel="@string/label_more_key"
             latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
             latin:keyWidth="12.5%p"
             latin:isModifier="true"
@@ -130,7 +131,7 @@
             latin:keyLabel="\?" />
         <Key
             latin:codes="@integer/key_shift"
-            latin:keyIcon="@drawable/sym_keyboard_shift"
+            latin:keyLabel="@string/label_more_key"
             latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
             latin:keyWidth="12.5%p"
             latin:isModifier="true"
diff --git a/java/res/xml-xlarge/kbd_symbols_shift.xml b/java/res/xml-xlarge/kbd_symbols_shift.xml
index 6680d96..ee6800e 100644
--- a/java/res/xml-xlarge/kbd_symbols_shift.xml
+++ b/java/res/xml-xlarge/kbd_symbols_shift.xml
@@ -30,6 +30,7 @@
         <Key
             latin:codes="@integer/key_tab"
             latin:keyLabel="Tab"
+            latin:isModifier="true"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="∞" />
@@ -102,7 +103,7 @@
     <Row>
         <Key
             latin:codes="@integer/key_shift"
-            latin:keyIcon="@drawable/sym_keyboard_shift"
+            latin:keyLabel="@string/label_more_key"
             latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
             latin:keyWidth="12.5%p"
             latin:isModifier="true"
@@ -130,7 +131,7 @@
             latin:keyLabel="¿" />
         <Key
             latin:codes="@integer/key_shift"
-            latin:keyIcon="@drawable/sym_keyboard_shift"
+            latin:keyLabel="@string/label_more_key"
             latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
             latin:keyWidth="12.5%p"
             latin:isModifier="true"
diff --git a/java/res/xml/kbd_qwerty.xml b/java/res/xml/kbd_qwerty.xml
index 5e68fd6..ed581a9 100644
--- a/java/res/xml/kbd_qwerty.xml
+++ b/java/res/xml/kbd_qwerty.xml
@@ -28,43 +28,53 @@
     <Row>
         <Key
             latin:keyLabel="q"
+            latin:keyHintIcon="@drawable/keyboard_hint_1"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_q"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="w"
+            latin:keyHintIcon="@drawable/keyboard_hint_2"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
+            latin:keyHintIcon="@drawable/keyboard_hint_3"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
+            latin:keyHintIcon="@drawable/keyboard_hint_4"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
+            latin:keyHintIcon="@drawable/keyboard_hint_5"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
+            latin:keyHintIcon="@drawable/keyboard_hint_6"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
+            latin:keyHintIcon="@drawable/keyboard_hint_7"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
+            latin:keyHintIcon="@drawable/keyboard_hint_8"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
+            latin:keyHintIcon="@drawable/keyboard_hint_9"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
+            latin:keyHintIcon="@drawable/keyboard_hint_0"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_p"
             latin:keyEdgeFlags="right" />
diff --git a/java/res/xml/kbd_qwerty_black.xml b/java/res/xml/kbd_qwerty_black.xml
index fff4093..a357318 100644
--- a/java/res/xml/kbd_qwerty_black.xml
+++ b/java/res/xml/kbd_qwerty_black.xml
@@ -28,43 +28,53 @@
     <Row>
         <Key
             latin:keyLabel="q"
+            latin:keyHintIcon="@drawable/keyboard_hint_1"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_q"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="w"
+            latin:keyHintIcon="@drawable/keyboard_hint_2"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
+            latin:keyHintIcon="@drawable/keyboard_hint_3"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
+            latin:keyHintIcon="@drawable/keyboard_hint_4"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
+            latin:keyHintIcon="@drawable/keyboard_hint_5"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
+            latin:keyHintIcon="@drawable/keyboard_hint_6"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
+            latin:keyHintIcon="@drawable/keyboard_hint_7"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
+            latin:keyHintIcon="@drawable/keyboard_hint_8"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
+            latin:keyHintIcon="@drawable/keyboard_hint_9"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
+            latin:keyHintIcon="@drawable/keyboard_hint_0"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_p"
             latin:keyEdgeFlags="right" />