diff options
author | 2010-12-08 14:36:41 +0900 | |
---|---|---|
committer | 2010-12-08 17:43:29 +0900 | |
commit | 9f01ed51d78d9a236d3c321a00ab74165a34630a (patch) | |
tree | d362ebc3f06430ed22adad666765daf5267a3ce8 /java | |
parent | 59cd73b91675a7a791e186ceb0fe73790ff9595b (diff) | |
download | latinime-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')
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, |