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 @@
42%
45%
25%
+ 32%
23%
28%
22%
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 @@
40%
42%
28%
+ 28%
23%
28%
26%
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 @@
+
@@ -358,6 +359,8 @@
+
+
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 @@
55%
65%
34%
+ 40%
25%
44%
35%
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 @@
- @fraction/config_key_letter_ratio
- @fraction/config_key_large_letter_ratio
- @fraction/config_key_label_ratio
+ - @fraction/config_key_large_label_ratio
- @fraction/config_key_hint_letter_ratio
- @fraction/config_key_hint_label_ratio
- @fraction/config_key_shifted_letter_hint_ratio
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 {
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 {
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,