Merge "Add xlarge keyboard layouts (tentative)"
commit
dc7097b4e7
|
@ -22,5 +22,6 @@
|
||||||
<dimen name="key_height">72dip</dimen>
|
<dimen name="key_height">72dip</dimen>
|
||||||
<dimen name="candidate_strip_height">46dip</dimen>
|
<dimen name="candidate_strip_height">46dip</dimen>
|
||||||
<dimen name="spacebar_vertical_correction">0dip</dimen>
|
<dimen name="spacebar_vertical_correction">0dip</dimen>
|
||||||
<dimen name="key_text_size">35sp</dimen>
|
<dimen name="key_text_size">28sp</dimen>
|
||||||
|
<dimen name="keyboard_vertical_correction">0dip</dimen>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -31,4 +31,5 @@
|
||||||
<!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. -->
|
<!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. -->
|
||||||
<!-- key_height * 1.7 -->
|
<!-- key_height * 1.7 -->
|
||||||
<dimen name="mini_keyboard_slide_allowance">91.8dip</dimen>
|
<dimen name="mini_keyboard_slide_allowance">91.8dip</dimen>
|
||||||
|
<dimen name="keyboard_vertical_correction">-10dip</dimen>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<item name="labelTextSize">14sp</item>
|
<item name="labelTextSize">14sp</item>
|
||||||
<item name="popupLayout">@layout/keyboard_popup</item>
|
<item name="popupLayout">@layout/keyboard_popup</item>
|
||||||
<item name="keyHysteresisDistance">0.05in</item>
|
<item name="keyHysteresisDistance">0.05in</item>
|
||||||
<item name="verticalCorrection">-10dip</item>
|
<item name="verticalCorrection">@dimen/keyboard_vertical_correction</item>
|
||||||
<item name="shadowColor">#BB000000</item>
|
<item name="shadowColor">#BB000000</item>
|
||||||
<item name="shadowRadius">2.75</item>
|
<item name="shadowRadius">2.75</item>
|
||||||
<item name="backgroundDimAmount">0.5</item>
|
<item name="backgroundDimAmount">0.5</item>
|
||||||
|
|
|
@ -0,0 +1,218 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
/*
|
||||||
|
**
|
||||||
|
** Copyright 2010, 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:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:keyWidth="7.5%p"
|
||||||
|
android:horizontalGap="0px"
|
||||||
|
android:verticalGap="0px"
|
||||||
|
android:keyHeight="@dimen/key_height"
|
||||||
|
>
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_tab"
|
||||||
|
android:keyLabel="Tab"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:keyEdgeFlags="left" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="q"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="@string/alternates_for_q"
|
||||||
|
android:keyEdgeFlags="left" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="w"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="@string/alternates_for_w" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="e"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="@string/alternates_for_e" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="r"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="@string/alternates_for_r" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="t"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="@string/alternates_for_t" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="y"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="@string/alternates_for_y" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="u"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="@string/alternates_for_u" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="i"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="@string/alternates_for_i" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="o"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="@string/alternates_for_o" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="p"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="@string/alternates_for_p" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="="
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="+" />
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_delete"
|
||||||
|
android:keyIcon="@drawable/sym_keyboard_delete"
|
||||||
|
android:iconPreview="@drawable/sym_keyboard_feedback_delete"
|
||||||
|
android:keyWidth="10.5%p"
|
||||||
|
android:isModifier="true"
|
||||||
|
android:isRepeatable="true"
|
||||||
|
android:keyEdgeFlags="right" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_symbol"
|
||||||
|
android:keyLabel="@string/label_symbol_key"
|
||||||
|
android:keyWidth="8.75%p"
|
||||||
|
android:isModifier="true"
|
||||||
|
android:keyEdgeFlags="left" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="a"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="@string/alternates_for_a" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="s"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="@string/alternates_for_s" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="d"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="@string/alternates_for_d" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="f" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="g"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="@string/alternates_for_g" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="h" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="j" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="k" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="l"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="@string/alternates_for_l" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel=";"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters=":" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="\'"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters=""" />
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_return"
|
||||||
|
android:keyIcon="@drawable/sym_keyboard_return"
|
||||||
|
android:iconPreview="@drawable/sym_keyboard_feedback_return"
|
||||||
|
android:keyWidth="8.75%p"
|
||||||
|
android:isModifier="true"
|
||||||
|
android:keyEdgeFlags="right" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_shift"
|
||||||
|
android:keyIcon="@drawable/sym_keyboard_shift"
|
||||||
|
android:iconPreview="@drawable/sym_keyboard_feedback_shift"
|
||||||
|
android:keyWidth="12.5%p"
|
||||||
|
android:isModifier="true"
|
||||||
|
android:isSticky="true"
|
||||||
|
android:keyEdgeFlags="left" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="z"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="@string/alternates_for_z" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="x" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="c"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="@string/alternates_for_c" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="v"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="@string/alternates_for_v" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="b" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="n"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="@string/alternates_for_n" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="m" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel=","
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="*" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="."
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="!" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="/"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="\?" />
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_shift"
|
||||||
|
android:keyIcon="@drawable/sym_keyboard_shift"
|
||||||
|
android:iconPreview="@drawable/sym_keyboard_feedback_shift"
|
||||||
|
android:keyWidth="12.5%p"
|
||||||
|
android:isModifier="true"
|
||||||
|
android:isSticky="true"
|
||||||
|
android:keyEdgeFlags="left" />
|
||||||
|
</Row>
|
||||||
|
<Row
|
||||||
|
android:rowEdgeFlags="bottom"
|
||||||
|
>
|
||||||
|
<Key
|
||||||
|
android:keyLabel="<"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="("
|
||||||
|
android:horizontalGap="16.25%p" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel=">"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters=")" />
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_space"
|
||||||
|
android:keyIcon="@drawable/sym_keyboard_space"
|
||||||
|
android:iconPreview="@drawable/sym_keyboard_feedback_space"
|
||||||
|
android:keyWidth="37.5%p"
|
||||||
|
android:isModifier="true" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="_"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="\@" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="-"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:popupCharacters="#" />
|
||||||
|
</Row>
|
||||||
|
</Keyboard>
|
|
@ -0,0 +1,160 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
/*
|
||||||
|
**
|
||||||
|
** Copyright 2010, 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:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:keyWidth="7.5%p"
|
||||||
|
android:horizontalGap="0px"
|
||||||
|
android:verticalGap="0px"
|
||||||
|
android:keyHeight="@dimen/key_height"
|
||||||
|
>
|
||||||
|
<Row
|
||||||
|
android:rowEdgeFlags="top"
|
||||||
|
>
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_tab"
|
||||||
|
android:keyLabel="Tab"
|
||||||
|
android:keyEdgeFlags="left" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="1" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="2" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="3" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="4" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="5" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="6" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="7" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="8" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="9" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="0" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="~" />
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_delete"
|
||||||
|
android:keyIcon="@drawable/sym_keyboard_delete"
|
||||||
|
android:iconPreview="@drawable/sym_keyboard_feedback_delete"
|
||||||
|
android:keyWidth="10.5%p"
|
||||||
|
android:isModifier="true"
|
||||||
|
android:isRepeatable="true"
|
||||||
|
android:keyEdgeFlags="right" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_symbol"
|
||||||
|
android:keyLabel="@string/label_symbol_key"
|
||||||
|
android:keyWidth="8.75%p"
|
||||||
|
android:isModifier="true"
|
||||||
|
android:keyEdgeFlags="left" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="\@" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="#" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="$" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="%" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="^" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="&" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="*" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="-" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="+" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="(" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel=")" />
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_return"
|
||||||
|
android:keyIcon="@drawable/sym_keyboard_return"
|
||||||
|
android:iconPreview="@drawable/sym_keyboard_feedback_return"
|
||||||
|
android:keyWidth="8.75%p"
|
||||||
|
android:isModifier="true"
|
||||||
|
android:keyEdgeFlags="right" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_shift"
|
||||||
|
android:keyIcon="@drawable/sym_keyboard_shift"
|
||||||
|
android:iconPreview="@drawable/sym_keyboard_feedback_shift"
|
||||||
|
android:keyWidth="12.5%p"
|
||||||
|
android:isModifier="true"
|
||||||
|
android:isSticky="true"
|
||||||
|
android:keyEdgeFlags="left" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="!" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel=""" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="\'" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel=":" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel=";" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="/" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="\\" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="," />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="." />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="\?" />
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_shift"
|
||||||
|
android:keyIcon="@drawable/sym_keyboard_shift"
|
||||||
|
android:iconPreview="@drawable/sym_keyboard_feedback_shift"
|
||||||
|
android:keyWidth="12.5%p"
|
||||||
|
android:isModifier="true"
|
||||||
|
android:isSticky="true"
|
||||||
|
android:keyEdgeFlags="left" />
|
||||||
|
</Row>
|
||||||
|
<Row
|
||||||
|
android:rowEdgeFlags="bottom"
|
||||||
|
>
|
||||||
|
<Key
|
||||||
|
android:keyLabel="<"
|
||||||
|
android:horizontalGap="16.25%p" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel=">" />
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_space"
|
||||||
|
android:keyIcon="@drawable/sym_keyboard_space"
|
||||||
|
android:iconPreview="@drawable/sym_keyboard_feedback_space"
|
||||||
|
android:keyWidth="37.5%p"
|
||||||
|
android:isModifier="true" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="[" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="]" />
|
||||||
|
</Row>
|
||||||
|
</Keyboard>
|
|
@ -0,0 +1,161 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
/*
|
||||||
|
**
|
||||||
|
** Copyright 2010, 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:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:keyWidth="7.5%p"
|
||||||
|
android:horizontalGap="0px"
|
||||||
|
android:verticalGap="0px"
|
||||||
|
android:keyHeight="@dimen/key_height"
|
||||||
|
>
|
||||||
|
<Row
|
||||||
|
android:rowEdgeFlags="top"
|
||||||
|
>
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_tab"
|
||||||
|
android:keyLabel="Tab"
|
||||||
|
android:popupKeyboard="@xml/kbd_popup_template"
|
||||||
|
android:keyEdgeFlags="left" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="∞" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="±" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="|" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="•" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="√" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="π" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="÷" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="×" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="±" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="∆" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="≈" />
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_delete"
|
||||||
|
android:keyIcon="@drawable/sym_keyboard_delete"
|
||||||
|
android:iconPreview="@drawable/sym_keyboard_feedback_delete"
|
||||||
|
android:keyWidth="10.5%p"
|
||||||
|
android:isModifier="true"
|
||||||
|
android:isRepeatable="true"
|
||||||
|
android:keyEdgeFlags="right" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_symbol"
|
||||||
|
android:keyLabel="@string/label_symbol_key"
|
||||||
|
android:keyWidth="8.75%p"
|
||||||
|
android:isModifier="true"
|
||||||
|
android:keyEdgeFlags="left" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="£" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="¢" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="¥" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="€" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="¼" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="½" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="¾" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="_" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="=" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="{" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="}" />
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_return"
|
||||||
|
android:keyIcon="@drawable/sym_keyboard_return"
|
||||||
|
android:iconPreview="@drawable/sym_keyboard_feedback_return"
|
||||||
|
android:keyWidth="8.75%p"
|
||||||
|
android:isModifier="true"
|
||||||
|
android:keyEdgeFlags="right" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_shift"
|
||||||
|
android:keyIcon="@drawable/sym_keyboard_shift"
|
||||||
|
android:iconPreview="@drawable/sym_keyboard_feedback_shift"
|
||||||
|
android:keyWidth="12.5%p"
|
||||||
|
android:isModifier="true"
|
||||||
|
android:isSticky="true"
|
||||||
|
android:keyEdgeFlags="left" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="¡" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="°" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="©" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="®" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="¶" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="§" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="¤" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="¬" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="…" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="¿" />
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_shift"
|
||||||
|
android:keyIcon="@drawable/sym_keyboard_shift"
|
||||||
|
android:iconPreview="@drawable/sym_keyboard_feedback_shift"
|
||||||
|
android:keyWidth="12.5%p"
|
||||||
|
android:isModifier="true"
|
||||||
|
android:isSticky="true"
|
||||||
|
android:keyEdgeFlags="left" />
|
||||||
|
</Row>
|
||||||
|
<Row
|
||||||
|
android:rowEdgeFlags="bottom"
|
||||||
|
>
|
||||||
|
<Key
|
||||||
|
android:keyLabel="≤"
|
||||||
|
android:horizontalGap="16.25%p" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="≥" />
|
||||||
|
<Key
|
||||||
|
android:codes="@integer/key_space"
|
||||||
|
android:keyIcon="@drawable/sym_keyboard_space"
|
||||||
|
android:iconPreview="@drawable/sym_keyboard_feedback_space"
|
||||||
|
android:keyWidth="37.5%p"
|
||||||
|
android:isModifier="true" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="²" />
|
||||||
|
<Key
|
||||||
|
android:keyLabel="³" />
|
||||||
|
</Row>
|
||||||
|
</Keyboard>
|
|
@ -36,6 +36,8 @@ import android.util.Log;
|
||||||
import android.view.ViewConfiguration;
|
import android.view.ViewConfiguration;
|
||||||
import android.view.inputmethod.EditorInfo;
|
import android.view.inputmethod.EditorInfo;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
|
@ -48,7 +50,7 @@ public class LatinKeyboard extends Keyboard {
|
||||||
|
|
||||||
private Drawable mShiftLockIcon;
|
private Drawable mShiftLockIcon;
|
||||||
private Drawable mShiftLockPreviewIcon;
|
private Drawable mShiftLockPreviewIcon;
|
||||||
private Drawable mOldShiftIcon;
|
private final HashMap<Key, Drawable> mOldShiftIcons = new HashMap<Key, Drawable>();
|
||||||
private Drawable mSpaceIcon;
|
private Drawable mSpaceIcon;
|
||||||
private Drawable mSpaceAutoCompletionIndicator;
|
private Drawable mSpaceAutoCompletionIndicator;
|
||||||
private Drawable mSpacePreviewIcon;
|
private Drawable mSpacePreviewIcon;
|
||||||
|
@ -58,7 +60,7 @@ public class LatinKeyboard extends Keyboard {
|
||||||
private Drawable m123MicPreviewIcon;
|
private Drawable m123MicPreviewIcon;
|
||||||
private final Drawable mButtonArrowLeftIcon;
|
private final Drawable mButtonArrowLeftIcon;
|
||||||
private final Drawable mButtonArrowRightIcon;
|
private final Drawable mButtonArrowRightIcon;
|
||||||
private Key mShiftKey;
|
private ArrayList<Key> mShiftKeys;
|
||||||
private Key mEnterKey;
|
private Key mEnterKey;
|
||||||
private Key mF1Key;
|
private Key mF1Key;
|
||||||
private Key mSpaceKey;
|
private Key mSpaceKey;
|
||||||
|
@ -170,6 +172,13 @@ public class LatinKeyboard extends Keyboard {
|
||||||
case LatinIME.KEYCODE_SPACE:
|
case LatinIME.KEYCODE_SPACE:
|
||||||
mSpaceKey = key;
|
mSpaceKey = key;
|
||||||
break;
|
break;
|
||||||
|
case KEYCODE_SHIFT:
|
||||||
|
// NOTE: This protected method is being called from the base class constructor before
|
||||||
|
// mShiftKeys gets initialized.
|
||||||
|
if (mShiftKeys == null)
|
||||||
|
mShiftKeys = new ArrayList<Key>();
|
||||||
|
mShiftKeys.add(key);
|
||||||
|
break;
|
||||||
case KEYCODE_MODE_CHANGE:
|
case KEYCODE_MODE_CHANGE:
|
||||||
m123Key = key;
|
m123Key = key;
|
||||||
m123Label = key.label;
|
m123Label = key.label;
|
||||||
|
@ -195,7 +204,7 @@ public class LatinKeyboard extends Keyboard {
|
||||||
return key;
|
return key;
|
||||||
}
|
}
|
||||||
|
|
||||||
void setImeOptions(Resources res, int mode, int options) {
|
public void setImeOptions(Resources res, int mode, int options) {
|
||||||
if (mEnterKey != null) {
|
if (mEnterKey != null) {
|
||||||
// Reset some of the rarely used attributes.
|
// Reset some of the rarely used attributes.
|
||||||
mEnterKey.popupCharacters = null;
|
mEnterKey.popupCharacters = null;
|
||||||
|
@ -254,60 +263,55 @@ public class LatinKeyboard extends Keyboard {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void enableShiftLock() {
|
public void enableShiftLock() {
|
||||||
int index = getShiftKeyIndex();
|
for (final Key key : mShiftKeys) {
|
||||||
if (index >= 0) {
|
if (key instanceof LatinKey) {
|
||||||
mShiftKey = getKeys().get(index);
|
((LatinKey)key).enableShiftLock();
|
||||||
if (mShiftKey instanceof LatinKey) {
|
|
||||||
((LatinKey)mShiftKey).enableShiftLock();
|
|
||||||
}
|
}
|
||||||
mOldShiftIcon = mShiftKey.icon;
|
mOldShiftIcons.put(key, key.icon);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void setShiftLocked(boolean shiftLocked) {
|
public void setShiftLocked(boolean shiftLocked) {
|
||||||
if (mShiftKey != null) {
|
for (final Key key : mShiftKeys) {
|
||||||
if (shiftLocked) {
|
key.on = shiftLocked;
|
||||||
mShiftKey.on = true;
|
key.icon = mShiftLockIcon;
|
||||||
mShiftKey.icon = mShiftLockIcon;
|
|
||||||
mShiftState = SHIFT_LOCKED;
|
|
||||||
} else {
|
|
||||||
mShiftKey.on = false;
|
|
||||||
mShiftKey.icon = mShiftLockIcon;
|
|
||||||
mShiftState = SHIFT_ON;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
mShiftState = shiftLocked ? SHIFT_LOCKED : SHIFT_ON;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean isShiftLocked() {
|
public boolean isShiftLocked() {
|
||||||
return mShiftState == SHIFT_LOCKED;
|
return mShiftState == SHIFT_LOCKED;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean setShifted(boolean shiftState) {
|
public boolean setShifted(boolean shiftState) {
|
||||||
boolean shiftChanged = false;
|
boolean shiftChanged = false;
|
||||||
if (mShiftKey != null) {
|
if (mShiftKeys.size() > 0) {
|
||||||
|
for (final Key key : mShiftKeys) {
|
||||||
|
if (shiftState == false) {
|
||||||
|
key.on = false;
|
||||||
|
key.icon = mOldShiftIcons.get(key);
|
||||||
|
} else if (mShiftState == SHIFT_OFF) {
|
||||||
|
key.icon = mShiftLockIcon;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (shiftState == false) {
|
if (shiftState == false) {
|
||||||
shiftChanged = mShiftState != SHIFT_OFF;
|
shiftChanged = mShiftState != SHIFT_OFF;
|
||||||
mShiftState = SHIFT_OFF;
|
mShiftState = SHIFT_OFF;
|
||||||
mShiftKey.on = false;
|
} else if (mShiftState == SHIFT_OFF) {
|
||||||
mShiftKey.icon = mOldShiftIcon;
|
shiftChanged = mShiftState == SHIFT_OFF;
|
||||||
} else {
|
mShiftState = SHIFT_ON;
|
||||||
if (mShiftState == SHIFT_OFF) {
|
|
||||||
shiftChanged = mShiftState == SHIFT_OFF;
|
|
||||||
mShiftState = SHIFT_ON;
|
|
||||||
mShiftKey.icon = mShiftLockIcon;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
return shiftChanged;
|
||||||
} else {
|
} else {
|
||||||
return super.setShifted(shiftState);
|
return super.setShifted(shiftState);
|
||||||
}
|
}
|
||||||
return shiftChanged;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isShifted() {
|
public boolean isShifted() {
|
||||||
if (mShiftKey != null) {
|
if (mShiftKeys.size() > 0) {
|
||||||
return mShiftState != SHIFT_OFF;
|
return mShiftState != SHIFT_OFF;
|
||||||
} else {
|
} else {
|
||||||
return super.isShifted();
|
return super.isShifted();
|
||||||
|
|
Loading…
Reference in New Issue