Auto text sizing using fraction of key height

Bug: 4411676
Change-Id: I8f289dcebe577d277fe2ad6a8331d59f735cbada
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 7f2a400..f03da4f 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -25,11 +25,13 @@
              checkable+checked+pressed. -->
         <attr name="keyBackground" format="reference" />
 
-        <!-- Size of the text for one letter character keys. -->
-        <attr name="keyLetterSize" format="dimension" />
+        <!-- Size of the text for one letter character keys, in the proportion of key height.
+             -->
+        <attr name="keyLetterRatio" format="float" />
 
-        <!-- Size of the text for custom keys with some text and no icon. -->
-        <attr name="labelTextSize" format="dimension" />
+        <!-- Size of the text for custom keys with some text and no icon, in the proportion of key
+             height. -->
+        <attr name="labelTextRatio" format="float" />
 
         <!-- Color to use for the label in a key. -->
         <attr name="keyTextColor" format="color" />
diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml
index 82abf3b..8f71954 100644
--- a/java/res/values/dimens.xml
+++ b/java/res/values/dimens.xml
@@ -43,14 +43,13 @@
          to user's finger. -->
     <dimen name="keyboard_vertical_correction">-0.05in</dimen>
 
-    <!-- TODO: use fraction for key letter size and etc. -->
-    <dimen name="key_letter_size">21dip</dimen>
-    <dimen name="key_label_text_size">13dip</dimen>
+    <fraction name="key_letter_ratio">45%</fraction>
+    <fraction name="key_label_text_ratio">29%</fraction>
     <!-- left or right padding of label alignment -->
     <dimen name="key_label_horizontal_alignment_padding">21dip</dimen>
     <dimen name="key_preview_height">80sp</dimen>
     <dimen name="key_preview_offset">0.000in</dimen>
-    <dimen name="key_preview_text_size_large">36sp</dimen>
+    <fraction name="key_preview_text_ratio">82%</fraction>
     <dimen name="key_preview_height_holo">130sp</dimen>
     <dimen name="key_preview_offset_holo">0.193in</dimen>
 
diff --git a/java/res/values/styles.xml b/java/res/values/styles.xml
index 8a4b16d..3a389e5 100644
--- a/java/res/values/styles.xml
+++ b/java/res/values/styles.xml
@@ -19,14 +19,14 @@
         <item name="android:background">@drawable/keyboard_background</item>
 
         <item name="keyBackground">@drawable/btn_keyboard_key</item>
-        <item name="keyLetterSize">@dimen/key_letter_size</item>
+        <item name="keyLetterRatio">@fraction/key_letter_ratio</item>
         <item name="keyLetterStyle">normal</item>
         <item name="keyTextColor">#FFFFFFFF</item>
         <item name="keyTextColorDisabled">#FFFFFFFF</item>
         <item name="keyPreviewLayout">@layout/key_preview</item>
         <item name="keyPreviewOffset">@dimen/key_preview_offset</item>
         <item name="keyPreviewHeight">@dimen/key_preview_height</item>
-        <item name="labelTextSize">@dimen/key_label_text_size</item>
+        <item name="labelTextRatio">@fraction/key_label_text_ratio</item>
         <item name="popupLayout">@layout/keyboard_popup</item>
         <item name="keyHysteresisDistance">@dimen/key_hysteresis_distance</item>
         <item name="verticalCorrection">@dimen/keyboard_vertical_correction</item>