From 44e20f4fb42380061b1c4aa8905c2b301d7130cd Mon Sep 17 00:00:00 2001
From: Ken Wakasa <kwakasa@google.com>
Date: Thu, 7 Aug 2014 11:37:11 +0000
Subject: [PATCH] Revert "Remove unused Key and Keyboard attributes"

This reverts commit cdcaa37a372799eecf796f7002bf49bf3a5f42c1.

Due to unit test breakage.

Change-Id: I1c22edf983f6e03a34b86d7c1fae3d3188447a75
---
 java/res/values-sw600dp/config.xml                            | 1 +
 java/res/values-sw768dp/config.xml                            | 1 +
 java/res/values/attrs.xml                                     | 3 +++
 java/res/values/config.xml                                    | 1 +
 java/res/values/themes-common.xml                             | 1 +
 java/src/com/android/inputmethod/keyboard/Key.java            | 3 +++
 .../android/inputmethod/keyboard/internal/KeyDrawParams.java  | 3 +++
 .../inputmethod/keyboard/internal/KeyVisualAttributes.java    | 4 ++++
 8 files changed, 17 insertions(+)

diff --git a/java/res/values-sw600dp/config.xml b/java/res/values-sw600dp/config.xml
index 7af79f085..9d16e2cb9 100644
--- a/java/res/values-sw600dp/config.xml
+++ b/java/res/values-sw600dp/config.xml
@@ -47,6 +47,7 @@
     <fraction name="config_key_letter_ratio">42%</fraction>
     <fraction name="config_key_large_letter_ratio">45%</fraction>
     <fraction name="config_key_label_ratio">25%</fraction>
+    <fraction name="config_key_large_label_ratio">32%</fraction>
     <fraction name="config_key_hint_letter_ratio">23%</fraction>
     <fraction name="config_key_hint_label_ratio">28%</fraction>
     <fraction name="config_key_shifted_letter_hint_ratio">22%</fraction>
diff --git a/java/res/values-sw768dp/config.xml b/java/res/values-sw768dp/config.xml
index 12dd23279..635061d24 100644
--- a/java/res/values-sw768dp/config.xml
+++ b/java/res/values-sw768dp/config.xml
@@ -45,6 +45,7 @@
     <fraction name="config_key_letter_ratio">40%</fraction>
     <fraction name="config_key_large_letter_ratio">42%</fraction>
     <fraction name="config_key_label_ratio">28%</fraction>
+    <fraction name="config_key_large_label_ratio">28%</fraction>
     <fraction name="config_key_hint_letter_ratio">23%</fraction>
     <fraction name="config_key_hint_label_ratio">28%</fraction>
     <fraction name="config_key_shifted_letter_hint_ratio">26%</fraction>
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 52683da2c..37ba3963b 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -300,6 +300,7 @@
             <flag name="followKeyLargeLetterRatio" value="0x40" />
             <flag name="followKeyLetterRatio" value="0x80" />
             <flag name="followKeyLabelRatio" value="0xC0" />
+            <flag name="followKeyLargeLabelRatio" value="0x100" />
             <flag name="followKeyHintLabelRatio" value="0x140" />
             <flag name="hasPopupHint" value="0x200" />
             <flag name="hasShiftedLetterHint" value="0x400" />
@@ -358,6 +359,8 @@
         <attr name="keyLabelSize" format="dimension|fraction" />
         <!-- Large size of the text for one letter keys, in the proportion of key height. -->
         <attr name="keyLargeLetterRatio" format="fraction" />
+        <!-- Large size of the text for keys with multiple letters, in the proportion of key height. -->
+        <attr name="keyLargeLabelRatio" format="fraction" />
         <!-- Size of the text for hint letter (= one character hint label), in the proportion of
              key height. -->
         <attr name="keyHintLetterRatio" format="fraction" />
diff --git a/java/res/values/config.xml b/java/res/values/config.xml
index ce93c7e57..d748c9179 100644
--- a/java/res/values/config.xml
+++ b/java/res/values/config.xml
@@ -49,6 +49,7 @@
     <fraction name="config_key_letter_ratio">55%</fraction>
     <fraction name="config_key_large_letter_ratio">65%</fraction>
     <fraction name="config_key_label_ratio">34%</fraction>
+    <fraction name="config_key_large_label_ratio">40%</fraction>
     <fraction name="config_key_hint_letter_ratio">25%</fraction>
     <fraction name="config_key_hint_label_ratio">44%</fraction>
     <fraction name="config_key_shifted_letter_hint_ratio">35%</fraction>
diff --git a/java/res/values/themes-common.xml b/java/res/values/themes-common.xml
index 44b1c7b96..cf7888ad6 100644
--- a/java/res/values/themes-common.xml
+++ b/java/res/values/themes-common.xml
@@ -37,6 +37,7 @@
         <item name="keyLetterSize">@fraction/config_key_letter_ratio</item>
         <item name="keyLargeLetterRatio">@fraction/config_key_large_letter_ratio</item>
         <item name="keyLabelSize">@fraction/config_key_label_ratio</item>
+        <item name="keyLargeLabelRatio">@fraction/config_key_large_label_ratio</item>
         <item name="keyHintLetterRatio">@fraction/config_key_hint_letter_ratio</item>
         <item name="keyHintLabelRatio">@fraction/config_key_hint_label_ratio</item>
         <item name="keyShiftedLetterHintRatio">@fraction/config_key_shifted_letter_hint_ratio</item>
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index b7f6d268b..aaa55d79c 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -70,6 +70,7 @@ public class Key implements Comparable<Key> {
     private static final int LABEL_FLAGS_FOLLOW_KEY_LARGE_LETTER_RATIO = 0x40;
     private static final int LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO = 0x80;
     private static final int LABEL_FLAGS_FOLLOW_KEY_LABEL_RATIO = 0xC0;
+    private static final int LABEL_FLAGS_FOLLOW_KEY_LARGE_LABEL_RATIO = 0x100;
     private static final int LABEL_FLAGS_FOLLOW_KEY_HINT_LABEL_RATIO = 0x140;
     // End of key text ratio mask enum values
     private static final int LABEL_FLAGS_HAS_POPUP_HINT = 0x200;
@@ -579,6 +580,8 @@ public class Key implements Comparable<Key> {
             return params.mLargeLetterSize;
         case LABEL_FLAGS_FOLLOW_KEY_LABEL_RATIO:
             return params.mLabelSize;
+        case LABEL_FLAGS_FOLLOW_KEY_LARGE_LABEL_RATIO:
+            return params.mLargeLabelSize;
         case LABEL_FLAGS_FOLLOW_KEY_HINT_LABEL_RATIO:
             return params.mHintLabelSize;
         default: // No follow key ratio flag specified.
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyDrawParams.java b/java/src/com/android/inputmethod/keyboard/internal/KeyDrawParams.java
index 72477ce62..07ac06bab 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyDrawParams.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyDrawParams.java
@@ -26,6 +26,7 @@ public final class KeyDrawParams {
     public int mLetterSize;
     public int mLabelSize;
     public int mLargeLetterSize;
+    public int mLargeLabelSize;
     public int mHintLetterSize;
     public int mShiftedLetterHintSize;
     public int mHintLabelSize;
@@ -51,6 +52,7 @@ public final class KeyDrawParams {
         mLetterSize = copyFrom.mLetterSize;
         mLabelSize = copyFrom.mLabelSize;
         mLargeLetterSize = copyFrom.mLargeLetterSize;
+        mLargeLabelSize = copyFrom.mLargeLabelSize;
         mHintLetterSize = copyFrom.mHintLetterSize;
         mShiftedLetterHintSize = copyFrom.mShiftedLetterHintSize;
         mHintLabelSize = copyFrom.mHintLabelSize;
@@ -82,6 +84,7 @@ public final class KeyDrawParams {
                 attr.mLetterSize, attr.mLetterRatio, mLetterSize);
         mLabelSize = selectTextSizeFromDimensionOrRatio(keyHeight,
                 attr.mLabelSize, attr.mLabelRatio, mLabelSize);
+        mLargeLabelSize = selectTextSize(keyHeight, attr.mLargeLabelRatio, mLargeLabelSize);
         mLargeLetterSize = selectTextSize(keyHeight, attr.mLargeLetterRatio, mLargeLetterSize);
         mHintLetterSize = selectTextSize(keyHeight, attr.mHintLetterRatio, mHintLetterSize);
         mShiftedLetterHintSize = selectTextSize(keyHeight,
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyVisualAttributes.java b/java/src/com/android/inputmethod/keyboard/internal/KeyVisualAttributes.java
index b94f4834b..133462ac7 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyVisualAttributes.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyVisualAttributes.java
@@ -31,6 +31,7 @@ public final class KeyVisualAttributes {
     public final float mLabelRatio;
     public final int mLabelSize;
     public final float mLargeLetterRatio;
+    public final float mLargeLabelRatio;
     public final float mHintLetterRatio;
     public final float mShiftedLetterHintRatio;
     public final float mHintLabelRatio;
@@ -53,6 +54,7 @@ public final class KeyVisualAttributes {
         R.styleable.Keyboard_Key_keyLetterSize,
         R.styleable.Keyboard_Key_keyLabelSize,
         R.styleable.Keyboard_Key_keyLargeLetterRatio,
+        R.styleable.Keyboard_Key_keyLargeLabelRatio,
         R.styleable.Keyboard_Key_keyHintLetterRatio,
         R.styleable.Keyboard_Key_keyShiftedLetterHintRatio,
         R.styleable.Keyboard_Key_keyHintLabelRatio,
@@ -107,6 +109,8 @@ public final class KeyVisualAttributes {
                 R.styleable.Keyboard_Key_keyLabelSize);
         mLargeLetterRatio = ResourceUtils.getFraction(keyAttr,
                 R.styleable.Keyboard_Key_keyLargeLetterRatio);
+        mLargeLabelRatio = ResourceUtils.getFraction(keyAttr,
+                R.styleable.Keyboard_Key_keyLargeLabelRatio);
         mHintLetterRatio = ResourceUtils.getFraction(keyAttr,
                 R.styleable.Keyboard_Key_keyHintLetterRatio);
         mShiftedLetterHintRatio = ResourceUtils.getFraction(keyAttr,