aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2010-12-08 14:36:41 +0900
committerTadashi G. Takaoka <takaoka@google.com>2010-12-08 17:43:29 +0900
commit9f01ed51d78d9a236d3c321a00ab74165a34630a (patch)
treed362ebc3f06430ed22adad666765daf5267a3ce8 /java
parent59cd73b91675a7a791e186ceb0fe73790ff9595b (diff)
downloadlatinime-9f01ed51d78d9a236d3c321a00ab74165a34630a.tar.gz
latinime-9f01ed51d78d9a236d3c321a00ab74165a34630a.tar.xz
latinime-9f01ed51d78d9a236d3c321a00ab74165a34630a.zip
Support keyboardHeight and maxKeyboardHeight to Keyboard XML
This change introduces, - new attribute keyboardHeight to specify default keyboard height. - new attribute maxKeyboardHeight to specify maximum keyboard height, usually specified by percentage to the screen height. - keyHeight attribute is obsoleted - new attribute rowHeight to specify a row height, can be specifed as percentage of the keyboard height. And verticalGap is included to the row height (row height = key height + vertical gap). Change-Id: I48a2f2661e8a91a998503a847437c1baf1de9b9c
Diffstat (limited to 'java')
-rw-r--r--java/res/values-land/dimens.xml4
-rw-r--r--java/res/values-xlarge/dimens.xml4
-rw-r--r--java/res/values/attrs.xml9
-rw-r--r--java/res/values/dimens.xml4
-rw-r--r--java/res/xml-da-xlarge/kbd_qwerty.xml4
-rw-r--r--java/res/xml-da/kbd_qwerty.xml4
-rw-r--r--java/res/xml-de-xlarge/kbd_qwerty.xml4
-rw-r--r--java/res/xml-de/kbd_qwerty.xml4
-rw-r--r--java/res/xml-fr-rCA-xlarge/kbd_qwerty.xml4
-rw-r--r--java/res/xml-fr-rCA/kbd_qwerty.xml4
-rw-r--r--java/res/xml-fr-rCH-xlarge/kbd_qwerty.xml4
-rw-r--r--java/res/xml-fr-rCH/kbd_qwerty.xml4
-rw-r--r--java/res/xml-fr-xlarge/kbd_qwerty.xml4
-rw-r--r--java/res/xml-fr/kbd_qwerty.xml4
-rw-r--r--java/res/xml-iw/kbd_qwerty.xml4
-rw-r--r--java/res/xml-nb-xlarge/kbd_qwerty.xml4
-rw-r--r--java/res/xml-nb/kbd_qwerty.xml4
-rw-r--r--java/res/xml-ru-xlarge/kbd_qwerty.xml4
-rw-r--r--java/res/xml-ru/kbd_qwerty.xml4
-rw-r--r--java/res/xml-sr-xlarge/kbd_qwerty.xml4
-rw-r--r--java/res/xml-sr/kbd_qwerty.xml4
-rw-r--r--java/res/xml-sv-xlarge/kbd_qwerty.xml4
-rw-r--r--java/res/xml-sv/kbd_qwerty.xml4
-rw-r--r--java/res/xml-xlarge-land/kbd_popup_template.xml2
-rw-r--r--java/res/xml-xlarge-land/popup_domains.xml2
-rw-r--r--java/res/xml-xlarge-land/popup_smileys.xml2
-rw-r--r--java/res/xml-xlarge/kbd_number.xml4
-rw-r--r--java/res/xml-xlarge/kbd_phone.xml4
-rw-r--r--java/res/xml-xlarge/kbd_phone_symbols.xml4
-rw-r--r--java/res/xml-xlarge/kbd_popup_template.xml2
-rw-r--r--java/res/xml-xlarge/kbd_qwerty.xml4
-rw-r--r--java/res/xml-xlarge/kbd_symbols.xml4
-rw-r--r--java/res/xml-xlarge/kbd_symbols_shift.xml4
-rw-r--r--java/res/xml-xlarge/popup_domains.xml2
-rw-r--r--java/res/xml-xlarge/popup_smileys.xml2
-rw-r--r--java/res/xml/kbd_number.xml4
-rw-r--r--java/res/xml/kbd_phone.xml4
-rw-r--r--java/res/xml/kbd_phone_symbols.xml4
-rw-r--r--java/res/xml/kbd_popup_narrow_template.xml2
-rw-r--r--java/res/xml/kbd_popup_template.xml2
-rw-r--r--java/res/xml/kbd_qwerty.xml4
-rw-r--r--java/res/xml/kbd_symbols.xml4
-rw-r--r--java/res/xml/kbd_symbols_shift.xml4
-rw-r--r--java/res/xml/popup_at.xml2
-rw-r--r--java/res/xml/popup_comma.xml2
-rw-r--r--java/res/xml/popup_domains.xml2
-rw-r--r--java/res/xml/popup_mic.xml2
-rw-r--r--java/res/xml/popup_punctuation.xml2
-rw-r--r--java/res/xml/popup_slash.xml2
-rw-r--r--java/res/xml/popup_smileys.xml2
-rw-r--r--java/src/com/android/inputmethod/keyboard/Key.java10
-rw-r--r--java/src/com/android/inputmethod/keyboard/Keyboard.java19
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardParser.java20
-rw-r--r--java/src/com/android/inputmethod/keyboard/Row.java6
54 files changed, 161 insertions, 69 deletions
diff --git a/java/res/values-land/dimens.xml b/java/res/values-land/dimens.xml
index f7fc4b107..7df124bfc 100644
--- a/java/res/values-land/dimens.xml
+++ b/java/res/values-land/dimens.xml
@@ -19,8 +19,10 @@
-->
<resources>
+ <!-- keyboardHeight = key_height*4 + key_bottom_gap*3 -->
+ <dimen name="keyboardHeight">1.060in</dimen>
<!-- key_height + key_bottom_gap = popup_key_height -->
- <dimen name="key_height">0.250in</dimen>
+<!-- <dimen name="key_height">0.250in</dimen>-->
<dimen name="key_bottom_gap">0.020in</dimen>
<dimen name="popup_key_height">0.270in</dimen>
<dimen name="keyboard_top_padding">0.0in</dimen>
diff --git a/java/res/values-xlarge/dimens.xml b/java/res/values-xlarge/dimens.xml
index dc1b5c378..58d7d3237 100644
--- a/java/res/values-xlarge/dimens.xml
+++ b/java/res/values-xlarge/dimens.xml
@@ -19,8 +19,10 @@
-->
<resources>
+ <!-- keyboardHeight = key_height*4 + key_bottom_gap*3 -->
+ <dimen name="keyboardHeight">58.0mm</dimen>
<!-- key_height + key_bottom_gap = popup_key_height -->
- <dimen name="key_height">14.5mm</dimen>
+<!-- <dimen name="key_height">14.5mm</dimen>-->
<dimen name="key_bottom_gap">0.0mm</dimen>
<dimen name="key_horizontal_gap">0.0mm</dimen>
<dimen name="popup_key_height">13.0mm</dimen>
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 4fc5351bf..55c806ca4 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -76,10 +76,15 @@
</declare-styleable>
<declare-styleable name="Keyboard">
+ <!-- Default keyboard height -->
+ <attr name="keyboardHeight" format="dimension" />
+ <!-- Maximum keyboard height, in pixels or percentage of display height -->
+ <attr name="maxKeyboardHeight" format="dimension|fraction" />
<!-- Default width of a key, in pixels or percentage of display width. -->
<attr name="keyWidth" format="dimension|fraction" />
- <!-- Default height of a key, in pixels or percentage of display width. -->
- <attr name="keyHeight" format="dimension|fraction" />
+ <!-- Default height of a row (key height + vertical gap), in pixels or percentage of
+ keyboard height. -->
+ <attr name="rowHeight" format="dimension|fraction" />
<!-- Default horizontal gap between keys. -->
<attr name="horizontalGap" format="dimension|fraction" />
<!-- Default vertical gap between rows of keys. -->
diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml
index 833963cf7..27d324bd8 100644
--- a/java/res/values/dimens.xml
+++ b/java/res/values/dimens.xml
@@ -19,8 +19,10 @@
-->
<resources>
+ <!-- keyboardHeight = key_height*4 + key_bottom_gap*3 -->
+ <dimen name="keyboardHeight">1.265in</dimen>
<!-- key_height + key_bottom_gap = popup_key_height -->
- <dimen name="key_height">0.290in</dimen>
+<!-- <dimen name="key_height">0.290in</dimen>-->
<dimen name="key_bottom_gap">0.035in</dimen>
<dimen name="key_horizontal_gap">0.000in</dimen>
<dimen name="popup_key_height">0.325in</dimen>
diff --git a/java/res/xml-da-xlarge/kbd_qwerty.xml b/java/res/xml-da-xlarge/kbd_qwerty.xml
index 3170b0871..2852c765a 100644
--- a/java/res/xml-da-xlarge/kbd_qwerty.xml
+++ b/java/res/xml-da-xlarge/kbd_qwerty.xml
@@ -26,9 +26,11 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
diff --git a/java/res/xml-da/kbd_qwerty.xml b/java/res/xml-da/kbd_qwerty.xml
index ac30b00bb..43215de2d 100644
--- a/java/res/xml-da/kbd_qwerty.xml
+++ b/java/res/xml-da/kbd_qwerty.xml
@@ -26,10 +26,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="9.09%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
diff --git a/java/res/xml-de-xlarge/kbd_qwerty.xml b/java/res/xml-de-xlarge/kbd_qwerty.xml
index 8e8e692cd..3c92b29a1 100644
--- a/java/res/xml-de-xlarge/kbd_qwerty.xml
+++ b/java/res/xml-de-xlarge/kbd_qwerty.xml
@@ -20,10 +20,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="10%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_qwertz_rows" />
diff --git a/java/res/xml-de/kbd_qwerty.xml b/java/res/xml-de/kbd_qwerty.xml
index 8e8e692cd..3c92b29a1 100644
--- a/java/res/xml-de/kbd_qwerty.xml
+++ b/java/res/xml-de/kbd_qwerty.xml
@@ -20,10 +20,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="10%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_qwertz_rows" />
diff --git a/java/res/xml-fr-rCA-xlarge/kbd_qwerty.xml b/java/res/xml-fr-rCA-xlarge/kbd_qwerty.xml
index 42f151560..b102eb603 100644
--- a/java/res/xml-fr-rCA-xlarge/kbd_qwerty.xml
+++ b/java/res/xml-fr-rCA-xlarge/kbd_qwerty.xml
@@ -20,10 +20,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="10%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_qwerty_rows" />
diff --git a/java/res/xml-fr-rCA/kbd_qwerty.xml b/java/res/xml-fr-rCA/kbd_qwerty.xml
index 42f151560..b102eb603 100644
--- a/java/res/xml-fr-rCA/kbd_qwerty.xml
+++ b/java/res/xml-fr-rCA/kbd_qwerty.xml
@@ -20,10 +20,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="10%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_qwerty_rows" />
diff --git a/java/res/xml-fr-rCH-xlarge/kbd_qwerty.xml b/java/res/xml-fr-rCH-xlarge/kbd_qwerty.xml
index 8e8e692cd..3c92b29a1 100644
--- a/java/res/xml-fr-rCH-xlarge/kbd_qwerty.xml
+++ b/java/res/xml-fr-rCH-xlarge/kbd_qwerty.xml
@@ -20,10 +20,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="10%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_qwertz_rows" />
diff --git a/java/res/xml-fr-rCH/kbd_qwerty.xml b/java/res/xml-fr-rCH/kbd_qwerty.xml
index 8e8e692cd..3c92b29a1 100644
--- a/java/res/xml-fr-rCH/kbd_qwerty.xml
+++ b/java/res/xml-fr-rCH/kbd_qwerty.xml
@@ -20,10 +20,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="10%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_qwertz_rows" />
diff --git a/java/res/xml-fr-xlarge/kbd_qwerty.xml b/java/res/xml-fr-xlarge/kbd_qwerty.xml
index 8d68a554b..a94384324 100644
--- a/java/res/xml-fr-xlarge/kbd_qwerty.xml
+++ b/java/res/xml-fr-xlarge/kbd_qwerty.xml
@@ -20,10 +20,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="10%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_azerty_rows" />
diff --git a/java/res/xml-fr/kbd_qwerty.xml b/java/res/xml-fr/kbd_qwerty.xml
index 8d68a554b..a94384324 100644
--- a/java/res/xml-fr/kbd_qwerty.xml
+++ b/java/res/xml-fr/kbd_qwerty.xml
@@ -20,10 +20,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="10%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_azerty_rows" />
diff --git a/java/res/xml-iw/kbd_qwerty.xml b/java/res/xml-iw/kbd_qwerty.xml
index 514f93572..7d7774efe 100644
--- a/java/res/xml-iw/kbd_qwerty.xml
+++ b/java/res/xml-iw/kbd_qwerty.xml
@@ -20,10 +20,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="10%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml-nb-xlarge/kbd_qwerty.xml b/java/res/xml-nb-xlarge/kbd_qwerty.xml
index b137b5875..e64796628 100644
--- a/java/res/xml-nb-xlarge/kbd_qwerty.xml
+++ b/java/res/xml-nb-xlarge/kbd_qwerty.xml
@@ -26,9 +26,11 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
diff --git a/java/res/xml-nb/kbd_qwerty.xml b/java/res/xml-nb/kbd_qwerty.xml
index fe33e5384..2985354e5 100644
--- a/java/res/xml-nb/kbd_qwerty.xml
+++ b/java/res/xml-nb/kbd_qwerty.xml
@@ -26,10 +26,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="9.09%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
diff --git a/java/res/xml-ru-xlarge/kbd_qwerty.xml b/java/res/xml-ru-xlarge/kbd_qwerty.xml
index fef042100..10f02415b 100644
--- a/java/res/xml-ru-xlarge/kbd_qwerty.xml
+++ b/java/res/xml-ru-xlarge/kbd_qwerty.xml
@@ -20,10 +20,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="9.091%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml-ru/kbd_qwerty.xml b/java/res/xml-ru/kbd_qwerty.xml
index d5744c94e..b96c958c7 100644
--- a/java/res/xml-ru/kbd_qwerty.xml
+++ b/java/res/xml-ru/kbd_qwerty.xml
@@ -20,10 +20,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="9.091%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml-sr-xlarge/kbd_qwerty.xml b/java/res/xml-sr-xlarge/kbd_qwerty.xml
index 297d72619..7290c13a0 100644
--- a/java/res/xml-sr-xlarge/kbd_qwerty.xml
+++ b/java/res/xml-sr-xlarge/kbd_qwerty.xml
@@ -21,10 +21,12 @@
<!-- Serbian keyboard layout, based on the X11 layout for Serbian -->
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="9.09%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml-sr/kbd_qwerty.xml b/java/res/xml-sr/kbd_qwerty.xml
index 279b0409d..aa025b2cb 100644
--- a/java/res/xml-sr/kbd_qwerty.xml
+++ b/java/res/xml-sr/kbd_qwerty.xml
@@ -21,10 +21,12 @@
<!-- Serbian keyboard layout, based on the X11 layout for Serbian -->
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="9.09%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml-sv-xlarge/kbd_qwerty.xml b/java/res/xml-sv-xlarge/kbd_qwerty.xml
index 80d94538f..b6c80ad87 100644
--- a/java/res/xml-sv-xlarge/kbd_qwerty.xml
+++ b/java/res/xml-sv-xlarge/kbd_qwerty.xml
@@ -28,9 +28,11 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
diff --git a/java/res/xml-sv/kbd_qwerty.xml b/java/res/xml-sv/kbd_qwerty.xml
index 464a463a1..b3d1b8784 100644
--- a/java/res/xml-sv/kbd_qwerty.xml
+++ b/java/res/xml-sv/kbd_qwerty.xml
@@ -28,10 +28,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="9.09%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
diff --git a/java/res/xml-xlarge-land/kbd_popup_template.xml b/java/res/xml-xlarge-land/kbd_popup_template.xml
index fd348f225..3caae1a60 100644
--- a/java/res/xml-xlarge-land/kbd_popup_template.xml
+++ b/java/res/xml-xlarge-land/kbd_popup_template.xml
@@ -22,6 +22,6 @@
latin:keyWidth="3.5%p"
latin:horizontalGap="0px"
latin:verticalGap="0px"
- latin:keyHeight="@dimen/popup_key_height"
+ latin:rowHeight="@dimen/popup_key_height"
>
</Keyboard>
diff --git a/java/res/xml-xlarge-land/popup_domains.xml b/java/res/xml-xlarge-land/popup_domains.xml
index deedba451..03a3846f9 100644
--- a/java/res/xml-xlarge-land/popup_domains.xml
+++ b/java/res/xml-xlarge-land/popup_domains.xml
@@ -23,7 +23,7 @@
latin:keyWidth="4.0%p"
latin:horizontalGap="0px"
latin:verticalGap="0px"
- latin:keyHeight="@dimen/popup_key_height"
+ latin:rowHeight="@dimen/popup_key_height"
>
<Row
latin:rowEdgeFlags="top|bottom"
diff --git a/java/res/xml-xlarge-land/popup_smileys.xml b/java/res/xml-xlarge-land/popup_smileys.xml
index e882a5071..cc4acb06e 100644
--- a/java/res/xml-xlarge-land/popup_smileys.xml
+++ b/java/res/xml-xlarge-land/popup_smileys.xml
@@ -23,7 +23,7 @@
latin:keyWidth="4.0%p"
latin:horizontalGap="0px"
latin:verticalGap="0px"
- latin:keyHeight="@dimen/popup_key_height"
+ latin:rowHeight="@dimen/popup_key_height"
>
<Row
latin:rowEdgeFlags="top"
diff --git a/java/res/xml-xlarge/kbd_number.xml b/java/res/xml-xlarge/kbd_number.xml
index 119846632..11cf8fb86 100644
--- a/java/res/xml-xlarge/kbd_number.xml
+++ b/java/res/xml-xlarge/kbd_number.xml
@@ -20,10 +20,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="11.949%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml-xlarge/kbd_phone.xml b/java/res/xml-xlarge/kbd_phone.xml
index 5a6ec9a88..6389a8ccd 100644
--- a/java/res/xml-xlarge/kbd_phone.xml
+++ b/java/res/xml-xlarge/kbd_phone.xml
@@ -20,10 +20,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="11.949%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml-xlarge/kbd_phone_symbols.xml b/java/res/xml-xlarge/kbd_phone_symbols.xml
index 743f5a5ae..59d8181f6 100644
--- a/java/res/xml-xlarge/kbd_phone_symbols.xml
+++ b/java/res/xml-xlarge/kbd_phone_symbols.xml
@@ -20,10 +20,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="11.949%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml-xlarge/kbd_popup_template.xml b/java/res/xml-xlarge/kbd_popup_template.xml
index aa99cee03..7d39d1a3a 100644
--- a/java/res/xml-xlarge/kbd_popup_template.xml
+++ b/java/res/xml-xlarge/kbd_popup_template.xml
@@ -22,6 +22,6 @@
latin:keyWidth="5.0%p"
latin:horizontalGap="0px"
latin:verticalGap="0px"
- latin:keyHeight="@dimen/popup_key_height"
+ latin:rowHeight="@dimen/popup_key_height"
>
</Keyboard>
diff --git a/java/res/xml-xlarge/kbd_qwerty.xml b/java/res/xml-xlarge/kbd_qwerty.xml
index 56cfe000e..75fe183a3 100644
--- a/java/res/xml-xlarge/kbd_qwerty.xml
+++ b/java/res/xml-xlarge/kbd_qwerty.xml
@@ -20,9 +20,11 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_qwerty_rows" />
diff --git a/java/res/xml-xlarge/kbd_symbols.xml b/java/res/xml-xlarge/kbd_symbols.xml
index 6701c9c01..f5d0c4c47 100644
--- a/java/res/xml-xlarge/kbd_symbols.xml
+++ b/java/res/xml-xlarge/kbd_symbols.xml
@@ -20,9 +20,11 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml-xlarge/kbd_symbols_shift.xml b/java/res/xml-xlarge/kbd_symbols_shift.xml
index b635271f2..99f48ebd9 100644
--- a/java/res/xml-xlarge/kbd_symbols_shift.xml
+++ b/java/res/xml-xlarge/kbd_symbols_shift.xml
@@ -20,9 +20,11 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml-xlarge/popup_domains.xml b/java/res/xml-xlarge/popup_domains.xml
index be0c91810..6d65c898b 100644
--- a/java/res/xml-xlarge/popup_domains.xml
+++ b/java/res/xml-xlarge/popup_domains.xml
@@ -23,7 +23,7 @@
latin:keyWidth="5.5%p"
latin:horizontalGap="0px"
latin:verticalGap="0px"
- latin:keyHeight="@dimen/popup_key_height"
+ latin:rowHeight="@dimen/popup_key_height"
>
<Row
latin:rowEdgeFlags="top|bottom"
diff --git a/java/res/xml-xlarge/popup_smileys.xml b/java/res/xml-xlarge/popup_smileys.xml
index bdd6805da..552dc42a7 100644
--- a/java/res/xml-xlarge/popup_smileys.xml
+++ b/java/res/xml-xlarge/popup_smileys.xml
@@ -23,7 +23,7 @@
latin:keyWidth="5.0%p"
latin:horizontalGap="0px"
latin:verticalGap="0px"
- latin:keyHeight="@dimen/popup_key_height"
+ latin:rowHeight="@dimen/popup_key_height"
>
<Row
latin:rowEdgeFlags="top"
diff --git a/java/res/xml/kbd_number.xml b/java/res/xml/kbd_number.xml
index cde7205bc..f09da8683 100644
--- a/java/res/xml/kbd_number.xml
+++ b/java/res/xml/kbd_number.xml
@@ -20,10 +20,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="26.67%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml/kbd_phone.xml b/java/res/xml/kbd_phone.xml
index 7e146ed69..fb0e6d7f2 100644
--- a/java/res/xml/kbd_phone.xml
+++ b/java/res/xml/kbd_phone.xml
@@ -20,10 +20,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="26.67%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml/kbd_phone_symbols.xml b/java/res/xml/kbd_phone_symbols.xml
index 1bb4bac74..a5ff5d2c6 100644
--- a/java/res/xml/kbd_phone_symbols.xml
+++ b/java/res/xml/kbd_phone_symbols.xml
@@ -20,10 +20,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="26.67%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml/kbd_popup_narrow_template.xml b/java/res/xml/kbd_popup_narrow_template.xml
index 9b78711a0..36caf1c15 100644
--- a/java/res/xml/kbd_popup_narrow_template.xml
+++ b/java/res/xml/kbd_popup_narrow_template.xml
@@ -22,6 +22,6 @@
latin:keyWidth="9.45%p"
latin:horizontalGap="0px"
latin:verticalGap="0px"
- latin:keyHeight="@dimen/popup_key_height"
+ latin:rowHeight="@dimen/popup_key_height"
>
</Keyboard>
diff --git a/java/res/xml/kbd_popup_template.xml b/java/res/xml/kbd_popup_template.xml
index 004d490d6..9ee27493d 100644
--- a/java/res/xml/kbd_popup_template.xml
+++ b/java/res/xml/kbd_popup_template.xml
@@ -22,6 +22,6 @@
latin:keyWidth="10%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="0px"
- latin:keyHeight="@dimen/popup_key_height"
+ latin:rowHeight="@dimen/popup_key_height"
>
</Keyboard>
diff --git a/java/res/xml/kbd_qwerty.xml b/java/res/xml/kbd_qwerty.xml
index 42f151560..b102eb603 100644
--- a/java/res/xml/kbd_qwerty.xml
+++ b/java/res/xml/kbd_qwerty.xml
@@ -20,10 +20,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="10%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_qwerty_rows" />
diff --git a/java/res/xml/kbd_symbols.xml b/java/res/xml/kbd_symbols.xml
index 7264179b9..a7da01151 100644
--- a/java/res/xml/kbd_symbols.xml
+++ b/java/res/xml/kbd_symbols.xml
@@ -20,10 +20,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="10%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml/kbd_symbols_shift.xml b/java/res/xml/kbd_symbols_shift.xml
index 83963bfc5..ee8d88218 100644
--- a/java/res/xml/kbd_symbols_shift.xml
+++ b/java/res/xml/kbd_symbols_shift.xml
@@ -20,10 +20,12 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyboardHeight="@dimen/keyboardHeight"
+ latin:maxKeyboardHeight="50%p"
+ latin:rowHeight="25%p"
latin:keyWidth="10%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
- latin:keyHeight="@dimen/key_height"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml/popup_at.xml b/java/res/xml/popup_at.xml
index 4b19d4fd4..92ad81616 100644
--- a/java/res/xml/popup_at.xml
+++ b/java/res/xml/popup_at.xml
@@ -23,7 +23,7 @@
latin:keyWidth="10%p"
latin:horizontalGap="0px"
latin:verticalGap="0px"
- latin:keyHeight="@dimen/popup_key_height"
+ latin:rowHeight="@dimen/popup_key_height"
>
<Row
latin:rowEdgeFlags="top|bottom"
diff --git a/java/res/xml/popup_comma.xml b/java/res/xml/popup_comma.xml
index cef836acd..9ef49dfda 100644
--- a/java/res/xml/popup_comma.xml
+++ b/java/res/xml/popup_comma.xml
@@ -23,7 +23,7 @@
latin:keyWidth="10%p"
latin:horizontalGap="0px"
latin:verticalGap="0px"
- latin:keyHeight="@dimen/popup_key_height"
+ latin:rowHeight="@dimen/popup_key_height"
>
<Row
latin:rowEdgeFlags="top|bottom"
diff --git a/java/res/xml/popup_domains.xml b/java/res/xml/popup_domains.xml
index 5f92e2f74..9fbbdec11 100644
--- a/java/res/xml/popup_domains.xml
+++ b/java/res/xml/popup_domains.xml
@@ -23,7 +23,7 @@
latin:keyWidth="15%p"
latin:horizontalGap="0px"
latin:verticalGap="0px"
- latin:keyHeight="@dimen/popup_key_height"
+ latin:rowHeight="@dimen/popup_key_height"
>
<Row
latin:rowEdgeFlags="top|bottom"
diff --git a/java/res/xml/popup_mic.xml b/java/res/xml/popup_mic.xml
index 99c97ce39..1851eba98 100644
--- a/java/res/xml/popup_mic.xml
+++ b/java/res/xml/popup_mic.xml
@@ -23,7 +23,7 @@
latin:keyWidth="10%p"
latin:horizontalGap="0px"
latin:verticalGap="0px"
- latin:keyHeight="@dimen/popup_key_height"
+ latin:rowHeight="@dimen/popup_key_height"
>
<Row
latin:rowEdgeFlags="top|bottom"
diff --git a/java/res/xml/popup_punctuation.xml b/java/res/xml/popup_punctuation.xml
index 76572b06a..6c778c724 100644
--- a/java/res/xml/popup_punctuation.xml
+++ b/java/res/xml/popup_punctuation.xml
@@ -23,7 +23,7 @@
latin:keyWidth="10%p"
latin:horizontalGap="0px"
latin:verticalGap="0px"
- latin:keyHeight="@dimen/popup_key_height"
+ latin:rowHeight="@dimen/popup_key_height"
>
<Row
latin:rowEdgeFlags="top"
diff --git a/java/res/xml/popup_slash.xml b/java/res/xml/popup_slash.xml
index 1ace909ef..611500c9e 100644
--- a/java/res/xml/popup_slash.xml
+++ b/java/res/xml/popup_slash.xml
@@ -23,7 +23,7 @@
latin:keyWidth="10%p"
latin:horizontalGap="0px"
latin:verticalGap="0px"
- latin:keyHeight="@dimen/popup_key_height"
+ latin:rowHeight="@dimen/popup_key_height"
>
<Row
latin:rowEdgeFlags="top|bottom"
diff --git a/java/res/xml/popup_smileys.xml b/java/res/xml/popup_smileys.xml
index 2f082318a..b87667222 100644
--- a/java/res/xml/popup_smileys.xml
+++ b/java/res/xml/popup_smileys.xml
@@ -23,7 +23,7 @@
latin:keyWidth="15%p"
latin:horizontalGap="0px"
latin:verticalGap="0px"
- latin:keyHeight="@dimen/popup_key_height"
+ latin:rowHeight="@dimen/popup_key_height"
>
<Row
latin:rowEdgeFlags="top"
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index cd426690b..4cce2a0db 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -139,7 +139,7 @@ public class Key {
/** Create an empty key with no attributes. */
public Key(Row row, char letter, int x, int y) {
mKeyboard = row.getKeyboard();
- mHeight = row.mDefaultHeight;
+ mHeight = row.mDefaultHeight - row.mVerticalGap;
mGap = row.mDefaultHorizontalGap;
mWidth = row.mDefaultWidth - mGap;
mEdgeFlags = row.mRowEdgeFlags;
@@ -176,14 +176,14 @@ public class Key {
TypedArray a = res.obtainAttributes(Xml.asAttributeSet(parser),
R.styleable.Keyboard);
mHeight = KeyboardParser.getDimensionOrFraction(a,
- R.styleable.Keyboard_keyHeight,
- mKeyboard.getKeyboardHeight(), row.mDefaultHeight);
+ R.styleable.Keyboard_rowHeight,
+ mKeyboard.getKeyboardHeight(), row.mDefaultHeight) - row.mVerticalGap;
mGap = KeyboardParser.getDimensionOrFraction(a,
R.styleable.Keyboard_horizontalGap,
- mKeyboard.getKeyboardWidth(), row.mDefaultHorizontalGap);
+ mKeyboard.getDisplayWidth(), row.mDefaultHorizontalGap);
mWidth = KeyboardParser.getDimensionOrFraction(a,
R.styleable.Keyboard_keyWidth,
- mKeyboard.getKeyboardWidth(), row.mDefaultWidth) - mGap;
+ mKeyboard.getDisplayWidth(), row.mDefaultWidth) - mGap;
a.recycle();
a = res.obtainAttributes(Xml.asAttributeSet(parser), R.styleable.Keyboard_Key);
diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java
index 6a1d62efe..7641b4d7a 100644
--- a/java/src/com/android/inputmethod/keyboard/Keyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java
@@ -122,6 +122,9 @@ public class Keyboard {
/** Height of the screen */
private final int mDisplayHeight;
+ /** Height of keyboard */
+ private int mKeyboardHeight;
+
public final KeyboardId mId;
// Variables for pre-computing nearest keys.
@@ -248,11 +251,11 @@ public class Keyboard {
mDefaultVerticalGap = gap;
}
- public int getKeyHeight() {
+ public int getRowHeight() {
return mDefaultHeight;
}
- public void setKeyHeight(int height) {
+ public void setRowHeight(int height) {
mDefaultHeight = height;
}
@@ -278,14 +281,22 @@ public class Keyboard {
return mTotalWidth;
}
- public int getKeyboardHeight() {
+ public int getDisplayHeight() {
return mDisplayHeight;
}
- public int getKeyboardWidth() {
+ public int getDisplayWidth() {
return mDisplayWidth;
}
+ public int getKeyboardHeight() {
+ return mKeyboardHeight;
+ }
+
+ public void setKeyboardHeight(int height) {
+ mKeyboardHeight = height;
+ }
+
public List<Key> getShiftKeys() {
return mShiftKeys;
}
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardParser.java b/java/src/com/android/inputmethod/keyboard/KeyboardParser.java
index dd80f0ed0..213eac567 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardParser.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardParser.java
@@ -161,12 +161,20 @@ public class KeyboardParser {
final Keyboard keyboard = mKeyboard;
final TypedArray a = mResources.obtainAttributes(Xml.asAttributeSet(parser),
R.styleable.Keyboard);
- final int width = keyboard.getKeyboardWidth();
- final int height = keyboard.getKeyboardHeight();
+ final int displayHeight = keyboard.getDisplayHeight();
+ final int keyboardHeight = (int)a.getDimension(
+ R.styleable.Keyboard_keyboardHeight, displayHeight / 2);
+ final int maxKeyboardHeight = getDimensionOrFraction(a,
+ R.styleable.Keyboard_maxKeyboardHeight, displayHeight, displayHeight / 2);
+ // Keyboard height will not exceed maxKeyboardHeight.
+ final int height = Math.min(keyboardHeight, maxKeyboardHeight);
+ final int width = keyboard.getDisplayWidth();
+
+ keyboard.setKeyboardHeight(height);
keyboard.setKeyWidth(getDimensionOrFraction(a,
R.styleable.Keyboard_keyWidth, width, width / 10));
- keyboard.setKeyHeight(getDimensionOrFraction(a,
- R.styleable.Keyboard_keyHeight, height, 50));
+ keyboard.setRowHeight(getDimensionOrFraction(a,
+ R.styleable.Keyboard_rowHeight, height, 50));
keyboard.setHorizontalGap(getDimensionOrFraction(a,
R.styleable.Keyboard_horizontalGap, width, 0));
keyboard.setVerticalGap(getDimensionOrFraction(a,
@@ -280,7 +288,7 @@ public class KeyboardParser {
final TypedArray a = mResources.obtainAttributes(Xml.asAttributeSet(parser),
R.styleable.Keyboard);
final int gap = getDimensionOrFraction(a, R.styleable.Keyboard_horizontalGap,
- mKeyboard.getKeyboardWidth(), 0);
+ mKeyboard.getDisplayWidth(), 0);
a.recycle();
checkEndTag(TAG_SPACER, parser);
setSpacer(gap);
@@ -494,7 +502,7 @@ public class KeyboardParser {
private void endRow() {
if (mCurrentRow == null)
throw new InflateException("orphant end row tag");
- mCurrentY += mCurrentRow.mVerticalGap + mCurrentRow.mDefaultHeight;
+ mCurrentY += mCurrentRow.mDefaultHeight;
mCurrentRow = null;
}
diff --git a/java/src/com/android/inputmethod/keyboard/Row.java b/java/src/com/android/inputmethod/keyboard/Row.java
index 37fa4e39e..7c158bca0 100644
--- a/java/src/com/android/inputmethod/keyboard/Row.java
+++ b/java/src/com/android/inputmethod/keyboard/Row.java
@@ -47,7 +47,7 @@ public class Row {
public Row(Keyboard keyboard) {
this.mKeyboard = keyboard;
- mDefaultHeight = keyboard.getKeyHeight();
+ mDefaultHeight = keyboard.getRowHeight();
mDefaultWidth = keyboard.getKeyWidth();
mDefaultHorizontalGap = keyboard.getHorizontalGap();
mVerticalGap = keyboard.getVerticalGap();
@@ -56,14 +56,14 @@ public class Row {
public Row(Resources res, Keyboard keyboard, XmlResourceParser parser) {
this.mKeyboard = keyboard;
- final int keyboardWidth = keyboard.getKeyboardWidth();
+ final int keyboardWidth = keyboard.getDisplayWidth();
final int keyboardHeight = keyboard.getKeyboardHeight();
TypedArray a = res.obtainAttributes(Xml.asAttributeSet(parser),
R.styleable.Keyboard);
mDefaultWidth = KeyboardParser.getDimensionOrFraction(a,
R.styleable.Keyboard_keyWidth, keyboardWidth, keyboard.getKeyWidth());
mDefaultHeight = KeyboardParser.getDimensionOrFraction(a,
- R.styleable.Keyboard_keyHeight, keyboardHeight, keyboard.getKeyHeight());
+ R.styleable.Keyboard_rowHeight, keyboardHeight, keyboard.getRowHeight());
mDefaultHorizontalGap = KeyboardParser.getDimensionOrFraction(a,
R.styleable.Keyboard_horizontalGap, keyboardWidth, keyboard.getHorizontalGap());
mVerticalGap = KeyboardParser.getDimensionOrFraction(a,