Merge "Add horizontal edges paddings to phone/number layout"
This commit is contained in:
commit
049e49fb85
19 changed files with 505 additions and 316 deletions
|
@ -25,7 +25,6 @@
|
||||||
<!-- key_height + key_bottom_gap = popup_key_height -->
|
<!-- key_height + key_bottom_gap = popup_key_height -->
|
||||||
<!-- <dimen name="key_height">0.260in</dimen>-->
|
<!-- <dimen name="key_height">0.260in</dimen>-->
|
||||||
<dimen name="popup_key_height">0.280in</dimen>
|
<dimen name="popup_key_height">0.280in</dimen>
|
||||||
<dimen name="keyboard_horizontal_edges_padding">0.0in</dimen>
|
|
||||||
|
|
||||||
<fraction name="keyboard_top_padding">1.818%p</fraction>
|
<fraction name="keyboard_top_padding">1.818%p</fraction>
|
||||||
<fraction name="keyboard_bottom_padding">0.0%p</fraction>
|
<fraction name="keyboard_bottom_padding">0.0%p</fraction>
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
<dimen name="keyboardHeight">45.0mm</dimen>
|
<dimen name="keyboardHeight">45.0mm</dimen>
|
||||||
<fraction name="minKeyboardHeight">45%p</fraction>
|
<fraction name="minKeyboardHeight">45%p</fraction>
|
||||||
|
|
||||||
<dimen name="keyboard_horizontal_edges_padding">0dp</dimen>
|
|
||||||
<fraction name="keyboard_top_padding">2.444%p</fraction>
|
<fraction name="keyboard_top_padding">2.444%p</fraction>
|
||||||
<fraction name="keyboard_bottom_padding">0.0%p</fraction>
|
<fraction name="keyboard_bottom_padding">0.0%p</fraction>
|
||||||
<fraction name="key_bottom_gap">4.911%p</fraction>
|
<fraction name="key_bottom_gap">4.911%p</fraction>
|
||||||
|
|
|
@ -26,7 +26,6 @@
|
||||||
|
|
||||||
<dimen name="popup_key_height">10.0mm</dimen>
|
<dimen name="popup_key_height">10.0mm</dimen>
|
||||||
|
|
||||||
<dimen name="keyboard_horizontal_edges_padding">0.0mm</dimen>
|
|
||||||
<fraction name="keyboard_top_padding">2.291%p</fraction>
|
<fraction name="keyboard_top_padding">2.291%p</fraction>
|
||||||
<fraction name="keyboard_bottom_padding">0.0%p</fraction>
|
<fraction name="keyboard_bottom_padding">0.0%p</fraction>
|
||||||
<fraction name="key_bottom_gap">3.750%p</fraction>
|
<fraction name="key_bottom_gap">3.750%p</fraction>
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
<dimen name="keyboardHeight">58.0mm</dimen>
|
<dimen name="keyboardHeight">58.0mm</dimen>
|
||||||
<fraction name="minKeyboardHeight">45%p</fraction>
|
<fraction name="minKeyboardHeight">45%p</fraction>
|
||||||
|
|
||||||
<dimen name="keyboard_horizontal_edges_padding">0.0mm</dimen>
|
|
||||||
<fraction name="keyboard_top_padding">1.896%p</fraction>
|
<fraction name="keyboard_top_padding">1.896%p</fraction>
|
||||||
<fraction name="keyboard_bottom_padding">0.0%p</fraction>
|
<fraction name="keyboard_bottom_padding">0.0%p</fraction>
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
<fraction name="maxKeyboardHeight">50%p</fraction>
|
<fraction name="maxKeyboardHeight">50%p</fraction>
|
||||||
<fraction name="minKeyboardHeight">-35.0%p</fraction>
|
<fraction name="minKeyboardHeight">-35.0%p</fraction>
|
||||||
|
|
||||||
<dimen name="keyboard_horizontal_edges_padding">0.0mm</dimen>
|
|
||||||
<fraction name="keyboard_top_padding">2.291%p</fraction>
|
<fraction name="keyboard_top_padding">2.291%p</fraction>
|
||||||
<fraction name="keyboard_bottom_padding">0.0%p</fraction>
|
<fraction name="keyboard_bottom_padding">0.0%p</fraction>
|
||||||
|
|
||||||
|
|
|
@ -144,19 +144,10 @@
|
||||||
<!-- Minimum keyboard height represented in pixels, percentage of display height if fraction
|
<!-- Minimum keyboard height represented in pixels, percentage of display height if fraction
|
||||||
is positive, or percentage of display width if fraction is negative. -->
|
is positive, or percentage of display width if fraction is negative. -->
|
||||||
<attr name="minKeyboardHeight" format="dimension|fraction" />
|
<attr name="minKeyboardHeight" format="dimension|fraction" />
|
||||||
<!-- Keyboard top and bottom paddings. -->
|
<!-- Keyboard top, bottom, both horizontal edges paddings. -->
|
||||||
<attr name="keyboardTopPadding" format="dimension|fraction" />
|
<attr name="keyboardTopPadding" format="dimension|fraction" />
|
||||||
<attr name="keyboardBottomPadding" format="dimension|fraction" />
|
<attr name="keyboardBottomPadding" format="dimension|fraction" />
|
||||||
<!-- Default width of a key, in pixels or percentage of display width.
|
<attr name="keyboardHorizontalEdgesPadding" format="dimension|fraction" />
|
||||||
If the value is zero, the actual key width will be determined to fill out the area up
|
|
||||||
to the right edge of the keyboard.
|
|
||||||
If the value is negative, the actual key width will be determined to fill out the
|
|
||||||
area between the nearest key on the left hand side and the right edge of the keyboard.
|
|
||||||
-->
|
|
||||||
<attr name="keyWidth" format="dimension|fraction|enum">
|
|
||||||
<enum name="fillRight" value="-1" />
|
|
||||||
<enum name="fillBoth" value="-2" />
|
|
||||||
</attr>
|
|
||||||
<!-- Default height of a row (key height + vertical gap), in pixels or percentage of
|
<!-- Default height of a row (key height + vertical gap), in pixels or percentage of
|
||||||
keyboard height. -->
|
keyboard height. -->
|
||||||
<attr name="rowHeight" format="dimension|fraction" />
|
<attr name="rowHeight" format="dimension|fraction" />
|
||||||
|
@ -258,6 +249,17 @@
|
||||||
<!-- Visual insets -->
|
<!-- Visual insets -->
|
||||||
<attr name="visualInsetsLeft" format="dimension|fraction" />
|
<attr name="visualInsetsLeft" format="dimension|fraction" />
|
||||||
<attr name="visualInsetsRight" format="dimension|fraction" />
|
<attr name="visualInsetsRight" format="dimension|fraction" />
|
||||||
|
<!-- Width of the key, in pixels or percentage of display width.
|
||||||
|
If the value is fillRight, the actual key width will be determined to fill out the area
|
||||||
|
up to the right edge of the keyboard.
|
||||||
|
If the value is fillBoth, the actual key width will be determined to fill out the
|
||||||
|
area between the nearest key on the left hand side and the right edge of the keyboard.
|
||||||
|
-->
|
||||||
|
<!-- This should be aligned with KeyboardBuilder.Row.KEYWIDTH_* -->
|
||||||
|
<attr name="keyWidth" format="dimension|fraction|enum">
|
||||||
|
<enum name="fillRight" value="-1" />
|
||||||
|
<enum name="fillBoth" value="-2" />
|
||||||
|
</attr>
|
||||||
<!-- The X-coordinate of upper right corner of this key including horizontal gap.
|
<!-- The X-coordinate of upper right corner of this key including horizontal gap.
|
||||||
If the value is negative, the origin is the right edge of the keyboard. -->
|
If the value is negative, the origin is the right edge of the keyboard. -->
|
||||||
<attr name="keyXPos" format="dimension|fraction" />
|
<attr name="keyXPos" format="dimension|fraction" />
|
||||||
|
|
|
@ -29,9 +29,9 @@
|
||||||
<dimen name="mini_keyboard_horizontal_edges_padding">16dip</dimen>
|
<dimen name="mini_keyboard_horizontal_edges_padding">16dip</dimen>
|
||||||
<dimen name="mini_keyboard_key_horizontal_padding">8dip</dimen>
|
<dimen name="mini_keyboard_key_horizontal_padding">8dip</dimen>
|
||||||
|
|
||||||
<dimen name="keyboard_horizontal_edges_padding">0dp</dimen>
|
|
||||||
<fraction name="keyboard_top_padding">1.556%p</fraction>
|
<fraction name="keyboard_top_padding">1.556%p</fraction>
|
||||||
<fraction name="keyboard_bottom_padding">4.669%p</fraction>
|
<fraction name="keyboard_bottom_padding">4.669%p</fraction>
|
||||||
|
<fraction name="keyboard_horizontal_edges_padding">0%p</fraction>
|
||||||
<fraction name="key_bottom_gap">6.250%p</fraction>
|
<fraction name="key_bottom_gap">6.250%p</fraction>
|
||||||
<fraction name="key_horizontal_gap">1.352%p</fraction>
|
<fraction name="key_horizontal_gap">1.352%p</fraction>
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
<item name="moreKeysTemplate">@xml/kbd_mini_keyboard_template</item>
|
<item name="moreKeysTemplate">@xml/kbd_mini_keyboard_template</item>
|
||||||
<item name="keyboardTopPadding">@fraction/keyboard_top_padding</item>
|
<item name="keyboardTopPadding">@fraction/keyboard_top_padding</item>
|
||||||
<item name="keyboardBottomPadding">@fraction/keyboard_bottom_padding</item>
|
<item name="keyboardBottomPadding">@fraction/keyboard_bottom_padding</item>
|
||||||
|
<item name="keyboardHorizontalEdgesPadding">@fraction/keyboard_horizontal_edges_padding</item>
|
||||||
<item name="horizontalGap">@fraction/key_horizontal_gap</item>
|
<item name="horizontalGap">@fraction/key_horizontal_gap</item>
|
||||||
<item name="verticalGap">@fraction/key_bottom_gap</item>
|
<item name="verticalGap">@fraction/key_bottom_gap</item>
|
||||||
<item name="maxMoreKeysColumn">@integer/config_max_more_keys_column</item>
|
<item name="maxMoreKeysColumn">@integer/config_max_more_keys_column</item>
|
||||||
|
|
28
java/res/xml-land/kbd_number.xml
Normal file
28
java/res/xml-land/kbd_number.xml
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
/*
|
||||||
|
**
|
||||||
|
** Copyright 2011, The Android Open Source Project
|
||||||
|
**
|
||||||
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
** you may not use this file except in compliance with the License.
|
||||||
|
** You may obtain a copy of the License at
|
||||||
|
**
|
||||||
|
** http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
**
|
||||||
|
** Unless required by applicable law or agreed to in writing, software
|
||||||
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
** See the License for the specific language governing permissions and
|
||||||
|
** limitations under the License.
|
||||||
|
*/
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Keyboard
|
||||||
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
|
||||||
|
latin:keyboardHorizontalEdgesPadding="10%p"
|
||||||
|
latin:keyWidth="26.67%p"
|
||||||
|
>
|
||||||
|
<include
|
||||||
|
latin:keyboardLayout="@xml/kbd_rows_number" />
|
||||||
|
</Keyboard>
|
28
java/res/xml-land/kbd_phone.xml
Normal file
28
java/res/xml-land/kbd_phone.xml
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
/*
|
||||||
|
**
|
||||||
|
** Copyright 2011, The Android Open Source Project
|
||||||
|
**
|
||||||
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
** you may not use this file except in compliance with the License.
|
||||||
|
** You may obtain a copy of the License at
|
||||||
|
**
|
||||||
|
** http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
**
|
||||||
|
** Unless required by applicable law or agreed to in writing, software
|
||||||
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
** See the License for the specific language governing permissions and
|
||||||
|
** limitations under the License.
|
||||||
|
*/
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Keyboard
|
||||||
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
|
||||||
|
latin:keyboardHorizontalEdgesPadding="10%p"
|
||||||
|
latin:keyWidth="26.67%p"
|
||||||
|
>
|
||||||
|
<include
|
||||||
|
latin:keyboardLayout="@xml/kbd_rows_phone" />
|
||||||
|
</Keyboard>
|
28
java/res/xml-land/kbd_phone_shift.xml
Normal file
28
java/res/xml-land/kbd_phone_shift.xml
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
/*
|
||||||
|
**
|
||||||
|
** Copyright 2008, The Android Open Source Project
|
||||||
|
**
|
||||||
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
** you may not use this file except in compliance with the License.
|
||||||
|
** You may obtain a copy of the License at
|
||||||
|
**
|
||||||
|
** http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
**
|
||||||
|
** Unless required by applicable law or agreed to in writing, software
|
||||||
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
** See the License for the specific language governing permissions and
|
||||||
|
** limitations under the License.
|
||||||
|
*/
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Keyboard
|
||||||
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
|
||||||
|
latin:keyboardHorizontalEdgesPadding="10%p"
|
||||||
|
latin:keyWidth="26.67%p"
|
||||||
|
>
|
||||||
|
<include
|
||||||
|
latin:keyboardLayout="@xml/kbd_rows_phone_shift" />
|
||||||
|
</Keyboard>
|
|
@ -23,109 +23,5 @@
|
||||||
latin:keyWidth="26.67%p"
|
latin:keyWidth="26.67%p"
|
||||||
>
|
>
|
||||||
<include
|
<include
|
||||||
latin:keyboardLayout="@xml/kbd_key_styles" />
|
latin:keyboardLayout="@xml/kbd_rows_number" />
|
||||||
<include
|
|
||||||
latin:keyboardLayout="@xml/kbd_numkey_styles" />
|
|
||||||
<switch>
|
|
||||||
<case
|
|
||||||
latin:passwordInput="true"
|
|
||||||
>
|
|
||||||
<Row>
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="num1KeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="num2KeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="num3KeyStyle" />
|
|
||||||
</Row>
|
|
||||||
<Row>
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="num4KeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="num5KeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="num6KeyStyle" />
|
|
||||||
</Row>
|
|
||||||
<Row>
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="num7KeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="num8KeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="num9KeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="deleteKeyStyle"
|
|
||||||
latin:keyWidth="fillRight" />
|
|
||||||
</Row>
|
|
||||||
<Row>
|
|
||||||
<Spacer />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="num0KeyStyle" />
|
|
||||||
<Spacer />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="returnKeyStyle"
|
|
||||||
latin:keyWidth="fillRight" />
|
|
||||||
</Row>
|
|
||||||
</case>
|
|
||||||
<!-- latin:passwordInput="false" -->
|
|
||||||
<default>
|
|
||||||
<Row>
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="1"
|
|
||||||
latin:keyStyle="numKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="2"
|
|
||||||
latin:keyStyle="numKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="3"
|
|
||||||
latin:keyStyle="numKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="-"
|
|
||||||
latin:keyStyle="numFunctionalKeyStyle"
|
|
||||||
latin:keyWidth="fillRight" />
|
|
||||||
</Row>
|
|
||||||
<Row>
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="4"
|
|
||||||
latin:keyStyle="numKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="5"
|
|
||||||
latin:keyStyle="numKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="6"
|
|
||||||
latin:keyStyle="numKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyLabel=","
|
|
||||||
latin:keyStyle="numFunctionalKeyStyle"
|
|
||||||
latin:keyWidth="fillRight" />
|
|
||||||
</Row>
|
|
||||||
<Row>
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="7"
|
|
||||||
latin:keyStyle="numKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="8"
|
|
||||||
latin:keyStyle="numKeyStyle"/>
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="9"
|
|
||||||
latin:keyStyle="numKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="deleteKeyStyle"
|
|
||||||
latin:keyWidth="fillRight" />
|
|
||||||
</Row>
|
|
||||||
<Row>
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="numSpaceKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="0"
|
|
||||||
latin:keyStyle="numKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="."
|
|
||||||
latin:keyStyle="numKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="returnKeyStyle"
|
|
||||||
latin:keyWidth="fillRight" />
|
|
||||||
</Row>
|
|
||||||
</default>
|
|
||||||
</switch>
|
|
||||||
</Keyboard>
|
</Keyboard>
|
||||||
|
|
|
@ -23,53 +23,5 @@
|
||||||
latin:keyWidth="26.67%p"
|
latin:keyWidth="26.67%p"
|
||||||
>
|
>
|
||||||
<include
|
<include
|
||||||
latin:keyboardLayout="@xml/kbd_key_styles" />
|
latin:keyboardLayout="@xml/kbd_rows_phone" />
|
||||||
<include
|
|
||||||
latin:keyboardLayout="@xml/kbd_numkey_styles" />
|
|
||||||
<Row>
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="num1KeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="num2KeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="num3KeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="-"
|
|
||||||
latin:keyStyle="numFunctionalKeyStyle"
|
|
||||||
latin:keyWidth="fillRight" />
|
|
||||||
</Row>
|
|
||||||
<Row>
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="num4KeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="num5KeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="num6KeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="."
|
|
||||||
latin:keyStyle="numFunctionalKeyStyle"
|
|
||||||
latin:keyWidth="fillRight" />
|
|
||||||
</Row>
|
|
||||||
<Row>
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="num7KeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="num8KeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="num9KeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="deleteKeyStyle"
|
|
||||||
latin:keyWidth="fillRight" />
|
|
||||||
</Row>
|
|
||||||
<Row>
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="numSwitchToAltKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="num0KeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="numSpaceKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="returnKeyStyle"
|
|
||||||
latin:keyWidth="fillRight" />
|
|
||||||
</Row>
|
|
||||||
</Keyboard>
|
</Keyboard>
|
||||||
|
|
|
@ -23,66 +23,5 @@
|
||||||
latin:keyWidth="26.67%p"
|
latin:keyWidth="26.67%p"
|
||||||
>
|
>
|
||||||
<include
|
<include
|
||||||
latin:keyboardLayout="@xml/kbd_key_styles" />
|
latin:keyboardLayout="@xml/kbd_rows_phone_shift" />
|
||||||
<include
|
|
||||||
latin:keyboardLayout="@xml/kbd_numkey_styles" />
|
|
||||||
<Row>
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="("
|
|
||||||
latin:keyStyle="numKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="/"
|
|
||||||
latin:keyStyle="numKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyLabel=")"
|
|
||||||
latin:keyStyle="numKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="-"
|
|
||||||
latin:keyStyle="numFunctionalKeyStyle"
|
|
||||||
latin:keyWidth="fillRight" />
|
|
||||||
</Row>
|
|
||||||
<Row>
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="N" />
|
|
||||||
<!-- Pause is a comma. Check PhoneNumberUtils.java to see if this
|
|
||||||
has changed. -->
|
|
||||||
<Key
|
|
||||||
latin:code="44"
|
|
||||||
latin:keyLabel="@string/label_pause_key"
|
|
||||||
latin:keyLabelOption="followKeyHintLabelRatio|autoXScale" />
|
|
||||||
<Key
|
|
||||||
latin:keyLabel=","
|
|
||||||
latin:keyStyle="numKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="."
|
|
||||||
latin:keyStyle="numFunctionalKeyStyle"
|
|
||||||
latin:keyWidth="fillRight" />
|
|
||||||
</Row>
|
|
||||||
<Row>
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="numStarKeyStyle" />
|
|
||||||
<!-- Wait is a semicolon. -->
|
|
||||||
<Key
|
|
||||||
latin:code="59"
|
|
||||||
latin:keyLabel="@string/label_wait_key"
|
|
||||||
latin:keyLabelOption="followKeyHintLabelRatio|autoXScale" />
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="#"
|
|
||||||
latin:keyStyle="numKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="deleteKeyStyle"
|
|
||||||
latin:keyWidth="fillRight" />
|
|
||||||
</Row>
|
|
||||||
<Row>
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="numSwitchToNumericKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyLabel="+"
|
|
||||||
latin:keyStyle="numKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="numSpaceKeyStyle" />
|
|
||||||
<Key
|
|
||||||
latin:keyStyle="returnKeyStyle"
|
|
||||||
latin:keyWidth="fillRight" />
|
|
||||||
</Row>
|
|
||||||
</Keyboard>
|
</Keyboard>
|
||||||
|
|
130
java/res/xml/kbd_rows_number.xml
Normal file
130
java/res/xml/kbd_rows_number.xml
Normal file
|
@ -0,0 +1,130 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
/*
|
||||||
|
**
|
||||||
|
** Copyright 2011, The Android Open Source Project
|
||||||
|
**
|
||||||
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
** you may not use this file except in compliance with the License.
|
||||||
|
** You may obtain a copy of the License at
|
||||||
|
**
|
||||||
|
** http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
**
|
||||||
|
** Unless required by applicable law or agreed to in writing, software
|
||||||
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
** See the License for the specific language governing permissions and
|
||||||
|
** limitations under the License.
|
||||||
|
*/
|
||||||
|
-->
|
||||||
|
|
||||||
|
<merge
|
||||||
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
|
||||||
|
>
|
||||||
|
<include
|
||||||
|
latin:keyboardLayout="@xml/kbd_key_styles" />
|
||||||
|
<include
|
||||||
|
latin:keyboardLayout="@xml/kbd_numkey_styles" />
|
||||||
|
<switch>
|
||||||
|
<case
|
||||||
|
latin:passwordInput="true"
|
||||||
|
>
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="num1KeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="num2KeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="num3KeyStyle" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="num4KeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="num5KeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="num6KeyStyle" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="num7KeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="num8KeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="num9KeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="deleteKeyStyle"
|
||||||
|
latin:keyWidth="fillRight" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Spacer />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="num0KeyStyle" />
|
||||||
|
<Spacer />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="returnKeyStyle"
|
||||||
|
latin:keyWidth="fillRight" />
|
||||||
|
</Row>
|
||||||
|
</case>
|
||||||
|
<!-- latin:passwordInput="false" -->
|
||||||
|
<default>
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="1"
|
||||||
|
latin:keyStyle="numKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="2"
|
||||||
|
latin:keyStyle="numKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="3"
|
||||||
|
latin:keyStyle="numKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="-"
|
||||||
|
latin:keyStyle="numFunctionalKeyStyle"
|
||||||
|
latin:keyWidth="fillRight" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="4"
|
||||||
|
latin:keyStyle="numKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="5"
|
||||||
|
latin:keyStyle="numKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="6"
|
||||||
|
latin:keyStyle="numKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyLabel=","
|
||||||
|
latin:keyStyle="numFunctionalKeyStyle"
|
||||||
|
latin:keyWidth="fillRight" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="7"
|
||||||
|
latin:keyStyle="numKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="8"
|
||||||
|
latin:keyStyle="numKeyStyle"/>
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="9"
|
||||||
|
latin:keyStyle="numKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="deleteKeyStyle"
|
||||||
|
latin:keyWidth="fillRight" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="numSpaceKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="0"
|
||||||
|
latin:keyStyle="numKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="."
|
||||||
|
latin:keyStyle="numKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="returnKeyStyle"
|
||||||
|
latin:keyWidth="fillRight" />
|
||||||
|
</Row>
|
||||||
|
</default>
|
||||||
|
</switch>
|
||||||
|
</merge>
|
74
java/res/xml/kbd_rows_phone.xml
Normal file
74
java/res/xml/kbd_rows_phone.xml
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
/*
|
||||||
|
**
|
||||||
|
** Copyright 2011, The Android Open Source Project
|
||||||
|
**
|
||||||
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
** you may not use this file except in compliance with the License.
|
||||||
|
** You may obtain a copy of the License at
|
||||||
|
**
|
||||||
|
** http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
**
|
||||||
|
** Unless required by applicable law or agreed to in writing, software
|
||||||
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
** See the License for the specific language governing permissions and
|
||||||
|
** limitations under the License.
|
||||||
|
*/
|
||||||
|
-->
|
||||||
|
|
||||||
|
<merge
|
||||||
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
|
||||||
|
>
|
||||||
|
<include
|
||||||
|
latin:keyboardLayout="@xml/kbd_key_styles" />
|
||||||
|
<include
|
||||||
|
latin:keyboardLayout="@xml/kbd_numkey_styles" />
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="num1KeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="num2KeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="num3KeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="-"
|
||||||
|
latin:keyStyle="numFunctionalKeyStyle"
|
||||||
|
latin:keyWidth="fillRight" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="num4KeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="num5KeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="num6KeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="."
|
||||||
|
latin:keyStyle="numFunctionalKeyStyle"
|
||||||
|
latin:keyWidth="fillRight" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="num7KeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="num8KeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="num9KeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="deleteKeyStyle"
|
||||||
|
latin:keyWidth="fillRight" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="numSwitchToAltKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="num0KeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="numSpaceKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="returnKeyStyle"
|
||||||
|
latin:keyWidth="fillRight" />
|
||||||
|
</Row>
|
||||||
|
</merge>
|
87
java/res/xml/kbd_rows_phone_shift.xml
Normal file
87
java/res/xml/kbd_rows_phone_shift.xml
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
/*
|
||||||
|
**
|
||||||
|
** Copyright 2011, The Android Open Source Project
|
||||||
|
**
|
||||||
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
** you may not use this file except in compliance with the License.
|
||||||
|
** You may obtain a copy of the License at
|
||||||
|
**
|
||||||
|
** http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
**
|
||||||
|
** Unless required by applicable law or agreed to in writing, software
|
||||||
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
** See the License for the specific language governing permissions and
|
||||||
|
** limitations under the License.
|
||||||
|
*/
|
||||||
|
-->
|
||||||
|
|
||||||
|
<merge
|
||||||
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
|
||||||
|
>
|
||||||
|
<include
|
||||||
|
latin:keyboardLayout="@xml/kbd_key_styles" />
|
||||||
|
<include
|
||||||
|
latin:keyboardLayout="@xml/kbd_numkey_styles" />
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="("
|
||||||
|
latin:keyStyle="numKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="/"
|
||||||
|
latin:keyStyle="numKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyLabel=")"
|
||||||
|
latin:keyStyle="numKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="-"
|
||||||
|
latin:keyStyle="numFunctionalKeyStyle"
|
||||||
|
latin:keyWidth="fillRight" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="N" />
|
||||||
|
<!-- Pause is a comma. Check PhoneNumberUtils.java to see if this
|
||||||
|
has changed. -->
|
||||||
|
<Key
|
||||||
|
latin:code="44"
|
||||||
|
latin:keyLabel="@string/label_pause_key"
|
||||||
|
latin:keyLabelOption="followKeyHintLabelRatio|autoXScale" />
|
||||||
|
<Key
|
||||||
|
latin:keyLabel=","
|
||||||
|
latin:keyStyle="numKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="."
|
||||||
|
latin:keyStyle="numFunctionalKeyStyle"
|
||||||
|
latin:keyWidth="fillRight" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="numStarKeyStyle" />
|
||||||
|
<!-- Wait is a semicolon. -->
|
||||||
|
<Key
|
||||||
|
latin:code="59"
|
||||||
|
latin:keyLabel="@string/label_wait_key"
|
||||||
|
latin:keyLabelOption="followKeyHintLabelRatio|autoXScale" />
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="#"
|
||||||
|
latin:keyStyle="numKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="deleteKeyStyle"
|
||||||
|
latin:keyWidth="fillRight" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="numSwitchToNumericKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyLabel="+"
|
||||||
|
latin:keyStyle="numKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="numSpaceKeyStyle" />
|
||||||
|
<Key
|
||||||
|
latin:keyStyle="returnKeyStyle"
|
||||||
|
latin:keyWidth="fillRight" />
|
||||||
|
</Row>
|
||||||
|
</merge>
|
|
@ -120,11 +120,6 @@ public class Key {
|
||||||
/** Whether this key needs to show the "..." popup hint for special purposes */
|
/** Whether this key needs to show the "..." popup hint for special purposes */
|
||||||
private boolean mNeedsSpecialPopupHint;
|
private boolean mNeedsSpecialPopupHint;
|
||||||
|
|
||||||
// keyWidth enum constants
|
|
||||||
private static final int KEYWIDTH_NOT_ENUM = 0;
|
|
||||||
private static final int KEYWIDTH_FILL_RIGHT = -1;
|
|
||||||
private static final int KEYWIDTH_FILL_BOTH = -2;
|
|
||||||
|
|
||||||
// RTL parenthesis character swapping map.
|
// RTL parenthesis character swapping map.
|
||||||
private static final Map<Integer, Integer> sRtlParenthesisMap = new HashMap<Integer, Integer>();
|
private static final Map<Integer, Integer> sRtlParenthesisMap = new HashMap<Integer, Integer>();
|
||||||
|
|
||||||
|
@ -216,21 +211,9 @@ public class Key {
|
||||||
*/
|
*/
|
||||||
public Key(Resources res, KeyboardParams params, KeyboardBuilder.Row row,
|
public Key(Resources res, KeyboardParams params, KeyboardBuilder.Row row,
|
||||||
XmlResourceParser parser, KeyStyles keyStyles) {
|
XmlResourceParser parser, KeyStyles keyStyles) {
|
||||||
final TypedArray keyboardAttr = res.obtainAttributes(Xml.asAttributeSet(parser),
|
final float horizontalGap = isSpacer() ? 0 : params.mHorizontalGap;
|
||||||
R.styleable.Keyboard);
|
|
||||||
mHeight = (int)KeyboardBuilder.getDimensionOrFraction(keyboardAttr,
|
|
||||||
R.styleable.Keyboard_rowHeight, params.mBaseHeight, row.mRowHeight)
|
|
||||||
- params.mVerticalGap;
|
|
||||||
final float horizontalGap = isSpacer() ? 0
|
|
||||||
: KeyboardBuilder.getDimensionOrFraction(keyboardAttr,
|
|
||||||
R.styleable.Keyboard_horizontalGap, params.mBaseWidth,
|
|
||||||
params.mHorizontalGap);
|
|
||||||
mVerticalGap = params.mVerticalGap;
|
mVerticalGap = params.mVerticalGap;
|
||||||
final int widthType = KeyboardBuilder.getEnumValue(keyboardAttr,
|
mHeight = row.mRowHeight - mVerticalGap;
|
||||||
R.styleable.Keyboard_keyWidth, KEYWIDTH_NOT_ENUM);
|
|
||||||
float keyWidth = KeyboardBuilder.getDimensionOrFraction(keyboardAttr,
|
|
||||||
R.styleable.Keyboard_keyWidth, params.mBaseWidth, row.mDefaultKeyWidth);
|
|
||||||
keyboardAttr.recycle();
|
|
||||||
|
|
||||||
final TypedArray keyAttr = res.obtainAttributes(Xml.asAttributeSet(parser),
|
final TypedArray keyAttr = res.obtainAttributes(Xml.asAttributeSet(parser),
|
||||||
R.styleable.Keyboard_Key);
|
R.styleable.Keyboard_Key);
|
||||||
|
@ -245,38 +228,16 @@ public class Key {
|
||||||
style = keyStyles.getEmptyKeyStyle();
|
style = keyStyles.getEmptyKeyStyle();
|
||||||
}
|
}
|
||||||
|
|
||||||
final int keyboardWidth = params.mOccupiedWidth;
|
final float keyXPos = row.getKeyX(keyAttr);
|
||||||
final float x = row.mCurrentX;
|
final float keyWidth = row.getKeyWidth(keyAttr, keyXPos);
|
||||||
float keyXPos = KeyboardBuilder.getDimensionOrFraction(keyAttr,
|
|
||||||
R.styleable.Keyboard_Key_keyXPos, keyboardWidth, x);
|
|
||||||
if (keyXPos < 0) {
|
|
||||||
// If keyXPos is negative, the actual x-coordinate will be keyboardWidth + keyXPos.
|
|
||||||
keyXPos += keyboardWidth;
|
|
||||||
if (keyXPos < x) {
|
|
||||||
// keyXPos shouldn't be less than x because drawable area for this key starts
|
|
||||||
// at x. Or, this key will overlaps the adjacent key on its left hand side.
|
|
||||||
keyXPos = x;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (widthType == KEYWIDTH_FILL_RIGHT) {
|
|
||||||
// If keyWidth is zero, the actual key width will be determined to fill out the
|
|
||||||
// area up to the right edge of the keyboard.
|
|
||||||
keyWidth = keyboardWidth - keyXPos;
|
|
||||||
} else if (widthType == KEYWIDTH_FILL_BOTH) {
|
|
||||||
// If keyWidth is negative, the actual key width will be determined to fill out the
|
|
||||||
// area between the nearest key on the left hand side and the right edge of the
|
|
||||||
// keyboard.
|
|
||||||
keyXPos = x;
|
|
||||||
keyWidth = keyboardWidth - keyXPos;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Horizontal gap is divided equally to both sides of the key.
|
// Horizontal gap is divided equally to both sides of the key.
|
||||||
mX = (int) (keyXPos + horizontalGap / 2);
|
mX = (int) (keyXPos + horizontalGap / 2);
|
||||||
mY = row.mCurrentY;
|
mY = row.getKeyY();
|
||||||
mWidth = (int) (keyWidth - horizontalGap);
|
mWidth = (int) (keyWidth - horizontalGap);
|
||||||
mHorizontalGap = (int) horizontalGap;
|
mHorizontalGap = (int) horizontalGap;
|
||||||
// Update row to have current x coordinate.
|
// Update row to have current x coordinate.
|
||||||
row.mCurrentX = keyXPos + keyWidth;
|
row.setXPos(keyXPos + keyWidth);
|
||||||
|
|
||||||
final CharSequence[] moreKeys = style.getTextArray(keyAttr,
|
final CharSequence[] moreKeys = style.getTextArray(keyAttr,
|
||||||
R.styleable.Keyboard_Key_moreKeys);
|
R.styleable.Keyboard_Key_moreKeys);
|
||||||
|
@ -288,20 +249,20 @@ public class Key {
|
||||||
} else {
|
} else {
|
||||||
mMoreKeys = moreKeys;
|
mMoreKeys = moreKeys;
|
||||||
}
|
}
|
||||||
mMaxMoreKeysColumn = style.getInt(keyboardAttr, R.styleable.Keyboard_Key_maxMoreKeysColumn,
|
mMaxMoreKeysColumn = style.getInt(keyAttr,
|
||||||
params.mMaxMiniKeyboardColumn);
|
R.styleable.Keyboard_Key_maxMoreKeysColumn, params.mMaxMiniKeyboardColumn);
|
||||||
|
|
||||||
mBackgroundType = style.getInt(
|
mBackgroundType = style.getInt(keyAttr,
|
||||||
keyAttr, R.styleable.Keyboard_Key_backgroundType, BACKGROUND_TYPE_NORMAL);
|
R.styleable.Keyboard_Key_backgroundType, BACKGROUND_TYPE_NORMAL);
|
||||||
mRepeatable = style.getBoolean(keyAttr, R.styleable.Keyboard_Key_isRepeatable, false);
|
mRepeatable = style.getBoolean(keyAttr, R.styleable.Keyboard_Key_isRepeatable, false);
|
||||||
mEnabled = style.getBoolean(keyAttr, R.styleable.Keyboard_Key_enabled, true);
|
mEnabled = style.getBoolean(keyAttr, R.styleable.Keyboard_Key_enabled, true);
|
||||||
mEdgeFlags = 0;
|
mEdgeFlags = 0;
|
||||||
|
|
||||||
final KeyboardIconsSet iconsSet = params.mIconsSet;
|
final KeyboardIconsSet iconsSet = params.mIconsSet;
|
||||||
mVisualInsetsLeft = (int) KeyboardBuilder.getDimensionOrFraction(keyAttr,
|
mVisualInsetsLeft = (int) KeyboardBuilder.getDimensionOrFraction(keyAttr,
|
||||||
R.styleable.Keyboard_Key_visualInsetsLeft, keyboardWidth, 0);
|
R.styleable.Keyboard_Key_visualInsetsLeft, params.mBaseWidth, 0);
|
||||||
mVisualInsetsRight = (int) KeyboardBuilder.getDimensionOrFraction(keyAttr,
|
mVisualInsetsRight = (int) KeyboardBuilder.getDimensionOrFraction(keyAttr,
|
||||||
R.styleable.Keyboard_Key_visualInsetsRight, keyboardWidth, 0);
|
R.styleable.Keyboard_Key_visualInsetsRight, params.mBaseWidth, 0);
|
||||||
mPreviewIcon = iconsSet.getIcon(style.getInt(keyAttr,
|
mPreviewIcon = iconsSet.getIcon(style.getInt(keyAttr,
|
||||||
R.styleable.Keyboard_Key_keyIconPreview, KeyboardIconsSet.ICON_UNDEFINED));
|
R.styleable.Keyboard_Key_keyIconPreview, KeyboardIconsSet.ICON_UNDEFINED));
|
||||||
mIcon = iconsSet.getIcon(style.getInt(keyAttr, R.styleable.Keyboard_Key_keyIcon,
|
mIcon = iconsSet.getIcon(style.getInt(keyAttr, R.styleable.Keyboard_Key_keyIcon,
|
||||||
|
|
|
@ -144,27 +144,96 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
|
||||||
* defines.
|
* defines.
|
||||||
*/
|
*/
|
||||||
public static class Row {
|
public static class Row {
|
||||||
|
// keyWidth enum constants
|
||||||
|
private static final int KEYWIDTH_NOT_ENUM = 0;
|
||||||
|
private static final int KEYWIDTH_FILL_RIGHT = -1;
|
||||||
|
private static final int KEYWIDTH_FILL_BOTH = -2;
|
||||||
|
|
||||||
|
private final KeyboardParams mParams;
|
||||||
/** Default width of a key in this row. */
|
/** Default width of a key in this row. */
|
||||||
public final float mDefaultKeyWidth;
|
public final float mDefaultKeyWidth;
|
||||||
/** Default height of a key in this row. */
|
/** Default height of a key in this row. */
|
||||||
public final int mRowHeight;
|
public final int mRowHeight;
|
||||||
|
|
||||||
public final int mCurrentY;
|
private final int mCurrentY;
|
||||||
// Will be updated by {@link Key}'s constructor.
|
// Will be updated by {@link Key}'s constructor.
|
||||||
public float mCurrentX;
|
private float mCurrentX;
|
||||||
|
|
||||||
public Row(Resources res, KeyboardParams params, XmlResourceParser parser, int y) {
|
public Row(Resources res, KeyboardParams params, XmlResourceParser parser, int y) {
|
||||||
TypedArray a = res.obtainAttributes(Xml.asAttributeSet(parser),
|
mParams = params;
|
||||||
|
TypedArray keyboardAttr = res.obtainAttributes(Xml.asAttributeSet(parser),
|
||||||
R.styleable.Keyboard);
|
R.styleable.Keyboard);
|
||||||
mDefaultKeyWidth = KeyboardBuilder.getDimensionOrFraction(a,
|
mRowHeight = (int)KeyboardBuilder.getDimensionOrFraction(keyboardAttr,
|
||||||
R.styleable.Keyboard_keyWidth, params.mBaseWidth, params.mDefaultKeyWidth);
|
|
||||||
mRowHeight = (int)KeyboardBuilder.getDimensionOrFraction(a,
|
|
||||||
R.styleable.Keyboard_rowHeight, params.mBaseHeight, params.mDefaultRowHeight);
|
R.styleable.Keyboard_rowHeight, params.mBaseHeight, params.mDefaultRowHeight);
|
||||||
a.recycle();
|
keyboardAttr.recycle();
|
||||||
|
TypedArray keyAttr = res.obtainAttributes(Xml.asAttributeSet(parser),
|
||||||
|
R.styleable.Keyboard_Key);
|
||||||
|
mDefaultKeyWidth = KeyboardBuilder.getDimensionOrFraction(keyboardAttr,
|
||||||
|
R.styleable.Keyboard_Key_keyWidth, params.mBaseWidth, params.mDefaultKeyWidth);
|
||||||
|
keyAttr.recycle();
|
||||||
|
|
||||||
mCurrentY = y;
|
mCurrentY = y;
|
||||||
mCurrentX = 0.0f;
|
mCurrentX = 0.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setXPos(float keyXPos) {
|
||||||
|
mCurrentX = keyXPos;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void advanceXPos(float width) {
|
||||||
|
mCurrentX += width;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getKeyY() {
|
||||||
|
return mCurrentY;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getKeyX(TypedArray keyAttr) {
|
||||||
|
final int widthType = KeyboardBuilder.getEnumValue(keyAttr,
|
||||||
|
R.styleable.Keyboard_Key_keyWidth, KEYWIDTH_NOT_ENUM);
|
||||||
|
if (widthType == KEYWIDTH_FILL_BOTH) {
|
||||||
|
// If keyWidth is fillBoth, the key width should start right after the nearest key
|
||||||
|
// on the left hand side.
|
||||||
|
return mCurrentX;
|
||||||
|
}
|
||||||
|
|
||||||
|
final int keyboardRightEdge = mParams.mOccupiedWidth - mParams.mHorizontalEdgesPadding;
|
||||||
|
if (keyAttr.hasValue(R.styleable.Keyboard_Key_keyXPos)) {
|
||||||
|
final float keyXPos = KeyboardBuilder.getDimensionOrFraction(keyAttr,
|
||||||
|
R.styleable.Keyboard_Key_keyXPos, mParams.mBaseWidth, 0);
|
||||||
|
if (keyXPos < 0) {
|
||||||
|
// If keyXPos is negative, the actual x-coordinate will be
|
||||||
|
// keyboardWidth + keyXPos.
|
||||||
|
// keyXPos shouldn't be less than mCurrentX because drawable area for this key
|
||||||
|
// starts at mCurrentX. Or, this key will overlaps the adjacent key on its left
|
||||||
|
// hand side.
|
||||||
|
return Math.max(keyXPos + keyboardRightEdge, mCurrentX);
|
||||||
|
} else {
|
||||||
|
return keyXPos + mParams.mHorizontalEdgesPadding;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return mCurrentX;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getKeyWidth(TypedArray keyAttr, float keyXPos) {
|
||||||
|
final int widthType = KeyboardBuilder.getEnumValue(keyAttr,
|
||||||
|
R.styleable.Keyboard_Key_keyWidth, KEYWIDTH_NOT_ENUM);
|
||||||
|
switch (widthType) {
|
||||||
|
case KEYWIDTH_FILL_RIGHT:
|
||||||
|
case KEYWIDTH_FILL_BOTH:
|
||||||
|
final int keyboardRightEdge =
|
||||||
|
mParams.mOccupiedWidth - mParams.mHorizontalEdgesPadding;
|
||||||
|
// If keyWidth is fillRight, the actual key width will be determined to fill out the
|
||||||
|
// area up to the right edge of the keyboard.
|
||||||
|
// If keyWidth is fillBoth, the actual key width will be determined to fill out the
|
||||||
|
// area between the nearest key on the left hand side and the right edge of the
|
||||||
|
// keyboard.
|
||||||
|
return keyboardRightEdge - keyXPos;
|
||||||
|
default: // KEYWIDTH_NOT_ENUM
|
||||||
|
return KeyboardBuilder.getDimensionOrFraction(keyAttr,
|
||||||
|
R.styleable.Keyboard_Key_keyWidth, mParams.mBaseWidth, mDefaultKeyWidth);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public KeyboardBuilder(Context context, KP params) {
|
public KeyboardBuilder(Context context, KP params) {
|
||||||
|
@ -174,8 +243,6 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
|
||||||
mDisplayMetrics = res.getDisplayMetrics();
|
mDisplayMetrics = res.getDisplayMetrics();
|
||||||
|
|
||||||
mParams = params;
|
mParams = params;
|
||||||
mParams.mHorizontalEdgesPadding = (int)res.getDimension(
|
|
||||||
R.dimen.keyboard_horizontal_edges_padding);
|
|
||||||
|
|
||||||
mParams.GRID_WIDTH = res.getInteger(R.integer.config_keyboard_grid_width);
|
mParams.GRID_WIDTH = res.getInteger(R.integer.config_keyboard_grid_width);
|
||||||
mParams.GRID_HEIGHT = res.getInteger(R.integer.config_keyboard_grid_height);
|
mParams.GRID_HEIGHT = res.getInteger(R.integer.config_keyboard_grid_height);
|
||||||
|
@ -270,11 +337,13 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
|
||||||
R.styleable.Keyboard_keyboardTopPadding, params.mOccupiedHeight, 0);
|
R.styleable.Keyboard_keyboardTopPadding, params.mOccupiedHeight, 0);
|
||||||
params.mBottomPadding = (int)getDimensionOrFraction(keyboardAttr,
|
params.mBottomPadding = (int)getDimensionOrFraction(keyboardAttr,
|
||||||
R.styleable.Keyboard_keyboardBottomPadding, params.mOccupiedHeight, 0);
|
R.styleable.Keyboard_keyboardBottomPadding, params.mOccupiedHeight, 0);
|
||||||
|
params.mHorizontalEdgesPadding = (int)getDimensionOrFraction(keyboardAttr,
|
||||||
|
R.styleable.Keyboard_keyboardHorizontalEdgesPadding, mParams.mOccupiedWidth, 0);
|
||||||
|
|
||||||
params.mBaseWidth = params.mOccupiedWidth - params.mHorizontalEdgesPadding * 2
|
params.mBaseWidth = params.mOccupiedWidth - params.mHorizontalEdgesPadding * 2
|
||||||
- params.mHorizontalCenterPadding;
|
- params.mHorizontalCenterPadding;
|
||||||
params.mDefaultKeyWidth = (int)getDimensionOrFraction(keyboardAttr,
|
params.mDefaultKeyWidth = (int)getDimensionOrFraction(keyAttr,
|
||||||
R.styleable.Keyboard_keyWidth, params.mBaseWidth,
|
R.styleable.Keyboard_Key_keyWidth, params.mBaseWidth,
|
||||||
params.mBaseWidth / DEFAULT_KEYBOARD_COLUMNS);
|
params.mBaseWidth / DEFAULT_KEYBOARD_COLUMNS);
|
||||||
params.mHorizontalGap = (int)getDimensionOrFraction(keyboardAttr,
|
params.mHorizontalGap = (int)getDimensionOrFraction(keyboardAttr,
|
||||||
R.styleable.Keyboard_horizontalGap, params.mBaseWidth, 0);
|
R.styleable.Keyboard_horizontalGap, params.mBaseWidth, 0);
|
||||||
|
@ -670,7 +739,6 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startRow(Row row) {
|
private void startRow(Row row) {
|
||||||
row.mCurrentX = 0;
|
|
||||||
addEdgeSpace(mParams.mHorizontalEdgesPadding, row);
|
addEdgeSpace(mParams.mHorizontalEdgesPadding, row);
|
||||||
mCurrentRow = row;
|
mCurrentRow = row;
|
||||||
mLeftEdge = true;
|
mLeftEdge = true;
|
||||||
|
@ -685,7 +753,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
|
||||||
mRightEdgeKey = null;
|
mRightEdgeKey = null;
|
||||||
}
|
}
|
||||||
addEdgeSpace(mParams.mHorizontalEdgesPadding, row);
|
addEdgeSpace(mParams.mHorizontalEdgesPadding, row);
|
||||||
mCurrentY += mCurrentRow.mRowHeight;
|
mCurrentY += row.mRowHeight;
|
||||||
mCurrentRow = null;
|
mCurrentRow = null;
|
||||||
mTopEdge = false;
|
mTopEdge = false;
|
||||||
}
|
}
|
||||||
|
@ -706,7 +774,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addEdgeSpace(float width, Row row) {
|
private void addEdgeSpace(float width, Row row) {
|
||||||
row.mCurrentX += width;
|
row.advanceXPos(width);
|
||||||
mLeftEdge = false;
|
mLeftEdge = false;
|
||||||
mRightEdgeKey = null;
|
mRightEdgeKey = null;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue