Move icon declaration to Keyboard theme

Bug: 4436327
Change-Id: I074014d28dcb323b60dbc8fd9e169c75c393e0b3
main
Tadashi G. Takaoka 2011-06-21 23:38:42 +09:00
parent 72934bd596
commit c2a21786e5
41 changed files with 981 additions and 1129 deletions

View File

@ -141,6 +141,35 @@
<attr name="popupKeyboardTemplate" format="reference" />
<!-- Locale of the keyboard layout -->
<attr name="keyboardLocale" format="string" />
<!-- Icon set for key top and key preview. -->
<attr name="iconShiftKey" format="reference" />
<attr name="iconToSymbolKey" format="reference" />
<attr name="iconToSymbolKeyWithShortcut" format="reference" />
<attr name="iconDeleteKey" format="reference" />
<attr name="iconSettingsKey" format="reference" />
<attr name="iconShortcutKey" format="reference" />
<attr name="iconSpaceKey" format="reference" />
<attr name="iconReturnKey" format="reference" />
<attr name="iconSearchKey" format="reference" />
<attr name="iconTabKey" format="reference" />
<attr name="iconNum1Key" format="reference" />
<attr name="iconNum2Key" format="reference" />
<attr name="iconNum3Key" format="reference" />
<attr name="iconNum4Key" format="reference" />
<attr name="iconNum5Key" format="reference" />
<attr name="iconNum6Key" format="reference" />
<attr name="iconNum7Key" format="reference" />
<attr name="iconNum8Key" format="reference" />
<attr name="iconNum9Key" format="reference" />
<attr name="iconNum0Key" format="reference" />
<attr name="iconNumStarKey" format="reference" />
<attr name="iconNumPoundKey" format="reference" />
<attr name="iconNumAltKey" format="reference" />
<attr name="iconShiftedShiftKey" format="reference" />
<attr name="iconPreviewSpaceKey" format="reference" />
<attr name="iconPreviewTabKey" format="reference" />
<attr name="iconPreviewSettingsKey" format="reference" />
<attr name="iconPreviewShortcutKey" format="reference" />
</declare-styleable>
<declare-styleable name="Keyboard_Key">
@ -163,8 +192,6 @@
<attr name="isSticky" format="boolean" />
<!-- Whether long-pressing on this key will make it repeat. -->
<attr name="isRepeatable" format="boolean" />
<!-- The icon to show in the popup preview. -->
<attr name="iconPreview" format="reference" />
<!-- The string of characters to output when this key is pressed. -->
<attr name="keyOutputText" format="string" />
<!-- The label to display on the key. -->
@ -182,11 +209,47 @@
<flag name="hasUppercaseLetter" value="0x40" />
</attr>
<!-- The icon to display on the key instead of the label. -->
<attr name="keyIcon" format="reference" />
<attr name="keyIcon" format="enum">
<!-- This should be aligned with KeyboardIcons.ICON_* -->
<enum name="iconShiftKey" value="1" />
<enum name="iconToSymbolKey" value="2" />
<enum name="iconToSymbolKeyWithShortcut" value="3" />
<enum name="iconDeleteKey" value="4" />
<enum name="iconSettingsKey" value="5" />
<enum name="iconShortcutKey" value="6" />
<enum name="iconSpaceKey" value="7" />
<enum name="iconReturnKey" value="8" />
<enum name="iconSearchKey" value="9" />
<enum name="iconTabKey" value="10" />
<enum name="iconNum1Key" value="11" />
<enum name="iconNum2Key" value="12" />
<enum name="iconNum3Key" value="13" />
<enum name="iconNum4Key" value="14" />
<enum name="iconNum5Key" value="15" />
<enum name="iconNum6Key" value="16" />
<enum name="iconNum7Key" value="17" />
<enum name="iconNum8Key" value="18" />
<enum name="iconNum9Key" value="19" />
<enum name="iconNum0Key" value="20" />
<enum name="iconNumStarKey" value="21" />
<enum name="iconNumPoundKey" value="22" />
<enum name="iconNumAltKey" value="23" />
</attr>
<!-- Shift key icon for shifted state -->
<attr name="keyIconShifted" format="enum">
<!-- This should be aligned with KeyboardIcons.ICON_SHIFTED_* -->
<enum name="iconShiftedShiftKey" value="24" />
</attr>
<!-- The icon to show in the popup preview. -->
<attr name="keyIconPreview" format="enum">
<!-- This should be aligned with KeyboardIcons.ICON_PREVIEW_* -->
<enum name="iconPreviewSpaceKey" value="25" />
<enum name="iconPreviewTabKey" value="26" />
<enum name="iconPreviewSettingsKey" value="27" />
<enum name="iconPreviewShortcutKey" value="28" />
</attr>
<!-- The key style to specify a set of key attributes defined by <key_style/> -->
<attr name="keyStyle" format="string" />
<!-- Shift key icon for shifted state -->
<attr name="shiftedIcon" format="reference" />
<!-- The key is enabled and responds on press. -->
<attr name="enabled" format="boolean" />
<!-- Visual insets -->

View File

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 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.
-->
<resources>
<style name="KeyboardIcons.Black" parent="android:Theme.Light">
<item name="iconShiftKey">@drawable/sym_bkeyboard_shift</item>
<item name="iconToSymbolKeyWithShortcut">@drawable/sym_bkeyboard_123_mic</item>
<item name="iconDeleteKey">@drawable/sym_bkeyboard_delete</item>
<item name="iconSettingsKey">@drawable/sym_bkeyboard_settings</item>
<item name="iconShortcutKey">@drawable/sym_bkeyboard_mic</item>
<item name="iconSpaceKey">@drawable/sym_bkeyboard_space</item>
<item name="iconReturnKey">@drawable/sym_bkeyboard_return</item>
<item name="iconSearchKey">@drawable/sym_bkeyboard_search</item>
<item name="iconTabKey">@drawable/sym_bkeyboard_tab</item>
<item name="iconNum1Key">@drawable/sym_bkeyboard_num1</item>
<item name="iconNum2Key">@drawable/sym_bkeyboard_num2</item>
<item name="iconNum3Key">@drawable/sym_bkeyboard_num3</item>
<item name="iconNum4Key">@drawable/sym_bkeyboard_num4</item>
<item name="iconNum5Key">@drawable/sym_bkeyboard_num5</item>
<item name="iconNum6Key">@drawable/sym_bkeyboard_num6</item>
<item name="iconNum7Key">@drawable/sym_bkeyboard_num7</item>
<item name="iconNum8Key">@drawable/sym_bkeyboard_num8</item>
<item name="iconNum9Key">@drawable/sym_bkeyboard_num9</item>
<item name="iconNum0Key">@drawable/sym_bkeyboard_num0</item>
<item name="iconNumStarKey">@drawable/sym_bkeyboard_numstar</item>
<item name="iconNumPoundKey">@drawable/sym_bkeyboard_numpound</item>
<item name="iconNumAltKey">@drawable/sym_bkeyboard_numalt</item>
<item name="iconShiftedShiftKey">@drawable/sym_bkeyboard_shift_locked</item>
<item name="iconPreviewSpaceKey">@drawable/sym_keyboard_feedback_space</item>
<item name="iconPreviewTabKey">@drawable/sym_keyboard_feedback_tab</item>
<item name="iconPreviewSettingsKey">@drawable/sym_keyboard_feedback_settings</item>
<item name="iconPreviewShortcutKey">@drawable/sym_keyboard_feedback_mic</item>
</style>
</resources>

View File

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 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.
-->
<resources>
<style name="KeyboardIcons.Holo" parent="android:Theme.Holo">
<item name="iconShiftKey">@drawable/sym_keyboard_shift_holo</item>
<!-- <item name="iconToSymbolKeyWithShortcut">@drawable/sym_keyboard_123_mic_holo</item> -->
<item name="iconDeleteKey">@drawable/sym_keyboard_delete_holo</item>
<item name="iconSettingsKey">@drawable/sym_keyboard_settings_holo</item>
<item name="iconShortcutKey">@drawable/sym_keyboard_voice_holo</item>
<item name="iconSpaceKey">@drawable/sym_keyboard_space_holo</item>
<item name="iconReturnKey">@drawable/sym_keyboard_return_holo</item>
<!-- <item name="iconSearchKey">@drawable/sym_keyboard_search_holo</item> -->
<item name="iconTabKey">@drawable/sym_keyboard_tab_holo</item>
<item name="iconNum1Key">@drawable/sym_keyboard_num1_holo</item>
<item name="iconNum2Key">@drawable/sym_keyboard_num2_holo</item>
<item name="iconNum3Key">@drawable/sym_keyboard_num3_holo</item>
<item name="iconNum4Key">@drawable/sym_keyboard_num4_holo</item>
<item name="iconNum5Key">@drawable/sym_keyboard_num5_holo</item>
<item name="iconNum6Key">@drawable/sym_keyboard_num6_holo</item>
<item name="iconNum7Key">@drawable/sym_keyboard_num7_holo</item>
<item name="iconNum8Key">@drawable/sym_keyboard_num8_holo</item>
<item name="iconNum9Key">@drawable/sym_keyboard_num9_holo</item>
<item name="iconNum0Key">@drawable/sym_keyboard_num0_holo</item>
<item name="iconNumStarKey">@drawable/sym_keyboard_numbstar_holo</item>
<item name="iconNumPoundKey">@drawable/sym_keyboard_numbpound_holo</item>
<!-- <item name="iconNumAltKey">@drawable/sym_keyboard_numalt_holo</item> -->
<item name="iconShiftedShiftKey">@drawable/sym_keyboard_shift_locked_holo</item>
<item name="iconPreviewSpaceKey">@drawable/sym_keyboard_space_holo</item>
<item name="iconPreviewTabKey">@drawable/sym_keyboard_tab_holo</item>
<item name="iconPreviewSettingsKey">@drawable/sym_keyboard_settings_holo</item>
<!-- <item name="iconPreviewShortcutKey">@drawable/sym_keyboard_feedback_voice_holo</item> -->
</style>
</resources>

View File

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 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.
-->
<resources>
<style name="KeyboardIcons" parent="android:Theme">
<item name="iconShiftKey">@drawable/sym_keyboard_shift</item>
<item name="iconToSymbolKeyWithShortcut">@drawable/sym_keyboard_123_mic</item>
<item name="iconDeleteKey">@drawable/sym_keyboard_delete</item>
<item name="iconSettingsKey">@drawable/sym_keyboard_settings</item>
<item name="iconShortcutKey">@drawable/sym_keyboard_mic</item>
<item name="iconSpaceKey">@drawable/sym_keyboard_space</item>
<item name="iconReturnKey">@drawable/sym_keyboard_return</item>
<item name="iconSearchKey">@drawable/sym_keyboard_search</item>
<item name="iconTabKey">@drawable/sym_keyboard_tab</item>
<item name="iconNum1Key">@drawable/sym_keyboard_num1</item>
<item name="iconNum2Key">@drawable/sym_keyboard_num2</item>
<item name="iconNum3Key">@drawable/sym_keyboard_num3</item>
<item name="iconNum4Key">@drawable/sym_keyboard_num4</item>
<item name="iconNum5Key">@drawable/sym_keyboard_num5</item>
<item name="iconNum6Key">@drawable/sym_keyboard_num6</item>
<item name="iconNum7Key">@drawable/sym_keyboard_num7</item>
<item name="iconNum8Key">@drawable/sym_keyboard_num8</item>
<item name="iconNum9Key">@drawable/sym_keyboard_num9</item>
<item name="iconNum0Key">@drawable/sym_keyboard_num0</item>
<item name="iconNumStarKey">@drawable/sym_keyboard_numstar</item>
<item name="iconNumPoundKey">@drawable/sym_keyboard_numpound</item>
<item name="iconNumAltKey">@drawable/sym_keyboard_numalt</item>
<item name="iconShiftedShiftKey">@drawable/sym_keyboard_shift_locked</item>
<item name="iconPreviewSpaceKey">@drawable/sym_keyboard_feedback_space</item>
<item name="iconPreviewTabKey">@drawable/sym_keyboard_feedback_tab</item>
<item name="iconPreviewSettingsKey">@drawable/sym_keyboard_feedback_settings</item>
<item name="iconPreviewShortcutKey">@drawable/sym_keyboard_feedback_mic</item>
</style>
</resources>

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 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.
-->
<resources>
<style name="KeyboardTheme.HighContrast" parent="KeyboardIcons">
<item name="keyboardStyle">@style/Keyboard</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView.HighContrast</item>
<item name="keyPreviewStyle">@style/KeyPreviewStyle</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
<item name="candidateViewStyle">@style/CandidateViewStyle</item>
</style>
</resources>

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 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.
-->
<resources>
<style name="KeyboardTheme" parent="KeyboardIcons">
<item name="keyboardStyle">@style/Keyboard</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView</item>
<item name="keyPreviewStyle">@style/KeyPreviewStyle</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
<item name="candidateViewStyle">@style/CandidateViewStyle</item>
</style>
</resources>

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 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.
-->
<resources>
<style name="KeyboardTheme.Gingerbread" parent="KeyboardIcons">
<item name="keyboardStyle">@style/Keyboard</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView.Gingerbread</item>
<item name="keyPreviewStyle">@style/KeyPreviewStyle</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Gingerbread</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
<item name="candidateViewStyle">@style/CandidateViewStyle</item>
</style>
</resources>

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 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.
-->
<resources>
<style name="KeyboardTheme.Honeycomb" parent="KeyboardIcons.Holo">
<item name="keyboardStyle">@style/Keyboard.Honeycomb</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard.Honeycomb</item>
<item name="keyboardViewStyle">@style/KeyboardView.Honeycomb</item>
<item name="keyPreviewStyle">@style/KeyPreviewStyle.Honeycomb</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Honeycomb</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle.Honeycomb</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle.Honeycomb</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle.Honeycomb</item>
<item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle.Honeycomb</item>
<item name="candidateViewStyle">@style/CandidateViewStyle.Honeycomb</item>
</style>
</resources>

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 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.
-->
<resources>
<style name="KeyboardTheme.Stone.Bold" parent="KeyboardIcons.Black">
<item name="keyboardStyle">@style/Keyboard</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard.Stone</item>
<item name="keyboardViewStyle">@style/KeyboardView.Stone.Bold</item>
<item name="keyPreviewStyle">@style/KeyPreviewStyle</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Stone</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
<item name="candidateViewStyle">@style/CandidateViewStyle</item>
</style>
</resources>

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 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.
-->
<resources>
<style name="KeyboardTheme.Stone" parent="KeyboardIcons.Black">
<item name="keyboardStyle">@style/Keyboard</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard.Stone</item>
<item name="keyboardViewStyle">@style/KeyboardView.Stone</item>
<item name="keyPreviewStyle">@style/KeyPreviewStyle</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Stone</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
<item name="candidateViewStyle">@style/CandidateViewStyle</item>
</style>
</resources>

View File

@ -1,85 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 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.
-->
<resources>
<style name="KeyboardTheme" parent="android:Theme">
<item name="keyboardStyle">@style/Keyboard</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView</item>
<item name="keyPreviewStyle">@style/KeyPreviewStyle</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
<item name="candidateViewStyle">@style/CandidateViewStyle</item>
</style>
<style name="KeyboardTheme.HighContrast" parent="android:Theme">
<item name="keyboardStyle">@style/Keyboard</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView.HighContrast</item>
<item name="keyPreviewStyle">@style/KeyPreviewStyle</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="candidateViewStyle">@style/CandidateViewStyle</item>
</style>
<style name="KeyboardTheme.Stone" parent="android:Theme.Light">
<item name="keyboardStyle">@style/Keyboard</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard.Stone</item>
<item name="keyboardViewStyle">@style/KeyboardView.Stone</item>
<item name="keyPreviewStyle">@style/KeyPreviewStyle</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Stone</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="candidateViewStyle">@style/CandidateViewStyle</item>
</style>
<style name="KeyboardTheme.Stone.Bold" parent="android:Theme.Light">
<item name="keyboardStyle">@style/Keyboard</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard.Stone</item>
<item name="keyboardViewStyle">@style/KeyboardView.Stone.Bold</item>
<item name="keyPreviewStyle">@style/KeyPreviewStyle</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Stone</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="candidateViewStyle">@style/CandidateViewStyle</item>
</style>
<style name="KeyboardTheme.Gingerbread" parent="android:Theme.Black">
<item name="keyboardStyle">@style/Keyboard</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView.Gingerbread</item>
<item name="keyPreviewStyle">@style/KeyPreviewStyle</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Gingerbread</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="candidateViewStyle">@style/CandidateViewStyle</item>
</style>
<style name="KeyboardTheme.Honeycomb" parent="android:Theme.Holo">
<item name="keyboardStyle">@style/Keyboard.Honeycomb</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard.Honeycomb</item>
<item name="keyboardViewStyle">@style/KeyboardView.Honeycomb</item>
<item name="keyPreviewStyle">@style/KeyPreviewStyle.Honeycomb</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Honeycomb</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle.Honeycomb</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle.Honeycomb</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle.Honeycomb</item>
<item name="candidateViewStyle">@style/CandidateViewStyle.Honeycomb</item>
</style>
</resources>

View File

@ -38,137 +38,66 @@
</case>
</switch>
<!-- Functional key styles -->
<key-style
latin:styleName="shiftKeyStyle"
latin:code="@integer/key_shift"
latin:keyIcon="iconShiftKey"
latin:keyIconShifted="iconShiftedShiftKey"
latin:parentStyle="functionalKeyStyle"
latin:isSticky="true" />
<key-style
latin:styleName="deleteKeyStyle"
latin:code="@integer/key_delete"
latin:keyIcon="iconDeleteKey"
latin:parentStyle="functionalKeyStyle"
latin:isRepeatable="true" />
<key-style
latin:styleName="returnKeyStyle"
latin:code="@integer/key_return"
latin:keyIcon="iconReturnKey"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="spaceKeyStyle"
latin:code="@integer/key_space"
latin:keyIconPreview="iconPreviewSpaceKey" />
<key-style
latin:styleName="nonSpecialBackgroundSpaceKeyStyle"
latin:code="@integer/key_space"
latin:keyIconPreview="iconPreviewSpaceKey" />
<key-style
latin:styleName="smileyKeyStyle"
latin:keyLabel=":-)"
latin:keyOutputText=":-) "
latin:keyLabelOption="popupHint"
latin:popupCharacters="@string/alternates_for_smiley"
latin:maxPopupKeyboardColumn="5" />
<switch>
<case
latin:colorScheme="white"
latin:voiceKeyEnabled="true"
>
<key-style
latin:styleName="shiftKeyStyle"
latin:code="@integer/key_shift"
latin:keyIcon="@drawable/sym_keyboard_shift_holo"
latin:shiftedIcon="@drawable/sym_keyboard_shift_locked_holo"
latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
latin:parentStyle="functionalKeyStyle"
latin:isSticky="true" />
<key-style
latin:styleName="deleteKeyStyle"
latin:code="@integer/key_delete"
latin:keyIcon="@drawable/sym_keyboard_delete_holo"
latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
latin:parentStyle="functionalKeyStyle"
latin:isRepeatable="true" />
<key-style
latin:styleName="returnKeyStyle"
latin:code="@integer/key_return"
latin:keyIcon="@drawable/sym_keyboard_return_holo"
latin:iconPreview="@drawable/sym_keyboard_feedback_return"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="spaceKeyStyle"
latin:code="@integer/key_space"
latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
<key-style
latin:styleName="nonSpecialBackgroundSpaceKeyStyle"
latin:code="@integer/key_space"
latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
<key-style
latin:styleName="smileyKeyStyle"
latin:keyLabel=":-)"
latin:keyOutputText=":-) "
latin:styleName="shortcutOrSettingsKeyStyle"
latin:code="@integer/key_shortcut"
latin:keyIcon="iconShortcutKey"
latin:keyIconPreview="iconPreviewShortcutKey"
latin:keyLabelOption="popupHint"
latin:popupCharacters="@string/alternates_for_smiley"
latin:maxPopupKeyboardColumn="5" />
<switch>
<case
latin:voiceKeyEnabled="true"
>
<key-style
latin:styleName="micOrSettingsKeyStyle"
latin:code="@integer/key_shortcut"
latin:keyIcon="@drawable/sym_keyboard_voice_holo"
latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
latin:keyLabelOption="popupHint"
latin:popupCharacters="\@drawable/sym_keyboard_settings|\@integer/key_settings"
latin:parentStyle="functionalKeyStyle" />
</case>
<default>
<key-style
latin:styleName="micOrSettingsKeyStyle"
latin:code="@integer/key_settings"
latin:keyIcon="@drawable/sym_keyboard_settings_holo"
latin:iconPreview="@drawable/sym_keyboard_feedback_settings"
latin:parentStyle="functionalKeyStyle" />
</default>
</switch>
</case>
<case
latin:colorScheme="black"
>
<key-style
latin:styleName="shiftKeyStyle"
latin:code="@integer/key_shift"
latin:keyIcon="@drawable/sym_bkeyboard_shift"
latin:shiftedIcon="@drawable/sym_bkeyboard_shift_locked"
latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
latin:parentStyle="functionalKeyStyle"
latin:isSticky="true" />
<key-style
latin:styleName="deleteKeyStyle"
latin:code="@integer/key_delete"
latin:keyIcon="@drawable/sym_bkeyboard_delete"
latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
latin:parentStyle="functionalKeyStyle"
latin:isRepeatable="true" />
<key-style
latin:styleName="returnKeyStyle"
latin:code="@integer/key_return"
latin:keyIcon="@drawable/sym_bkeyboard_return"
latin:iconPreview="@drawable/sym_keyboard_feedback_return"
latin:popupCharacters="\@icon/5|\@integer/key_settings"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="spaceKeyStyle"
latin:code="@integer/key_space"
latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
<key-style
latin:styleName="nonSpecialBackgroundSpaceKeyStyle"
latin:code="@integer/key_space"
latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
<key-style
latin:styleName="smileyKeyStyle"
latin:keyLabel=":-)"
latin:keyOutputText=":-) "
latin:keyLabelOption="popupHint"
latin:popupCharacters="@string/alternates_for_smiley"
latin:maxPopupKeyboardColumn="5" />
<switch>
<case
latin:voiceKeyEnabled="true"
>
<key-style
latin:styleName="micOrSettingsKeyStyle"
latin:code="@integer/key_shortcut"
latin:keyIcon="@drawable/sym_bkeyboard_mic"
latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
latin:keyLabelOption="popupHint"
latin:popupCharacters="\@drawable/sym_keyboard_settings|\@integer/key_settings"
latin:parentStyle="functionalKeyStyle" />
</case>
<default>
<key-style
latin:styleName="micOrSettingsKeyStyle"
latin:code="@integer/key_settings"
latin:keyIcon="@drawable/sym_bkeyboard_settings"
latin:iconPreview="@drawable/sym_keyboard_feedback_settings"
latin:parentStyle="functionalKeyStyle" />
</default>
</switch>
</case>
<default>
<key-style
latin:styleName="shortcutOrSettingsKeyStyle"
latin:code="@integer/key_settings"
latin:keyIcon="iconSettingsKey"
latin:keyIconPreview="iconPreviewSettingsKey"
latin:parentStyle="functionalKeyStyle" />
</default>
</switch>
<key-style
latin:styleName="tabKeyStyle"
latin:code="@integer/key_tab"
latin:keyIcon="@drawable/sym_keyboard_tab_holo"
latin:iconPreview="@drawable/sym_keyboard_tab_holo"
latin:keyIcon="iconTabKey"
latin:keyIconPreview="iconPreviewTabKey"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="toSymbolKeyStyle"

View File

@ -80,7 +80,7 @@
latin:keyStyle="num0KeyStyle" />
<Spacer />
<Key
latin:keyStyle="micOrSettingsKeyStyle"
latin:keyStyle="shortcutOrSettingsKeyStyle"
latin:keyXPos="-11.00%p"
latin:keyWidth="fillRight"
latin:keyEdgeFlags="right" />
@ -176,7 +176,7 @@
<Key
latin:keyLabel="#" />
<Key
latin:keyStyle="micOrSettingsKeyStyle"
latin:keyStyle="shortcutOrSettingsKeyStyle"
latin:keyXPos="-11.00%p"
latin:keyWidth="fillBoth"
latin:keyEdgeFlags="right" />

View File

@ -1,150 +0,0 @@
<?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"
>
<switch>
<case
latin:colorScheme="white"
>
<key-style
latin:styleName="num0KeyStyle"
latin:code="48"
latin:keyIcon="@drawable/sym_keyboard_num0_holo" />
<key-style
latin:styleName="num1KeyStyle"
latin:code="49"
latin:keyIcon="@drawable/sym_keyboard_num1_holo" />
<key-style
latin:styleName="num2KeyStyle"
latin:code="50"
latin:keyIcon="@drawable/sym_keyboard_num2_holo" />
<key-style
latin:styleName="num3KeyStyle"
latin:code="51"
latin:keyIcon="@drawable/sym_keyboard_num3_holo" />
<key-style
latin:styleName="num4KeyStyle"
latin:code="52"
latin:keyIcon="@drawable/sym_keyboard_num4_holo" />
<key-style
latin:styleName="num5KeyStyle"
latin:code="53"
latin:keyIcon="@drawable/sym_keyboard_num5_holo" />
<key-style
latin:styleName="num6KeyStyle"
latin:code="54"
latin:keyIcon="@drawable/sym_keyboard_num6_holo" />
<key-style
latin:styleName="num7KeyStyle"
latin:code="55"
latin:keyIcon="@drawable/sym_keyboard_num7_holo" />
<key-style
latin:styleName="num8KeyStyle"
latin:code="56"
latin:keyIcon="@drawable/sym_keyboard_num8_holo" />
<key-style
latin:styleName="num9KeyStyle"
latin:code="57"
latin:keyIcon="@drawable/sym_keyboard_num9_holo" />
<key-style
latin:styleName="numStarKeyStyle"
latin:code="42"
latin:keyIcon="@drawable/sym_keyboard_numbstar_holo" />
<key-style
latin:styleName="numPoundKeyStyle"
latin:code="35"
latin:keyIcon="@drawable/sym_keyboard_numbpound_holo" />
<key-style
latin:styleName="numAltKeyStyle"
latin:code="@integer/key_switch_alpha_symbol"
latin:keyIcon="@drawable/sym_keyboard_numalt"
latin:iconPreview="@drawable/sym_keyboard_feedback_numalt" />
<key-style
latin:styleName="numSpaceKeyStyle"
latin:code="@integer/key_space"
latin:keyIcon="@drawable/sym_keyboard_space"
latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
</case>
<case
latin:colorScheme="black"
>
<key-style
latin:styleName="num0KeyStyle"
latin:code="48"
latin:keyIcon="@drawable/sym_bkeyboard_num0" />
<key-style
latin:styleName="num1KeyStyle"
latin:code="49"
latin:keyIcon="@drawable/sym_bkeyboard_num1" />
<key-style
latin:styleName="num2KeyStyle"
latin:code="50"
latin:keyIcon="@drawable/sym_bkeyboard_num2" />
<key-style
latin:styleName="num3KeyStyle"
latin:code="51"
latin:keyIcon="@drawable/sym_bkeyboard_num3" />
<key-style
latin:styleName="num4KeyStyle"
latin:code="52"
latin:keyIcon="@drawable/sym_bkeyboard_num4" />
<key-style
latin:styleName="num5KeyStyle"
latin:code="53"
latin:keyIcon="@drawable/sym_bkeyboard_num5" />
<key-style
latin:styleName="num6KeyStyle"
latin:code="54"
latin:keyIcon="@drawable/sym_bkeyboard_num6" />
<key-style
latin:styleName="num7KeyStyle"
latin:code="55"
latin:keyIcon="@drawable/sym_bkeyboard_num7" />
<key-style
latin:styleName="num8KeyStyle"
latin:code="56"
latin:keyIcon="@drawable/sym_bkeyboard_num8" />
<key-style
latin:styleName="num9KeyStyle"
latin:code="57"
latin:keyIcon="@drawable/sym_bkeyboard_num9" />
<key-style
latin:styleName="numStarKeyStyle"
latin:code="42"
latin:keyIcon="@drawable/sym_bkeyboard_numstar" />
<key-style
latin:styleName="numPoundKeyStyle"
latin:code="35"
latin:keyIcon="@drawable/sym_bkeyboard_numpound" />
<key-style
latin:styleName="numAltKeyStyle"
latin:code="@integer/key_switch_alpha_symbol"
latin:keyIcon="@drawable/sym_bkeyboard_numalt"
latin:iconPreview="@drawable/sym_keyboard_feedback_numalt" />
<key-style
latin:styleName="numSpaceKeyStyle"
latin:code="@integer/key_space"
latin:keyIcon="@drawable/sym_bkeyboard_space"
latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
</case>
</switch>
</merge>

View File

@ -109,7 +109,7 @@
<Key
latin:keyStyle="numPoundKeyStyle" />
<Key
latin:keyStyle="micOrSettingsKeyStyle"
latin:keyStyle="shortcutOrSettingsKeyStyle"
latin:keyXPos="-11.00%p"
latin:keyWidth="fillBoth"
latin:keyEdgeFlags="right" />

View File

@ -118,7 +118,7 @@
<Key
latin:keyStyle="numPoundKeyStyle" />
<Key
latin:keyStyle="micOrSettingsKeyStyle"
latin:keyStyle="shortcutOrSettingsKeyStyle"
latin:keyXPos="-11.00%p"
latin:keyWidth="fillBoth"
latin:keyEdgeFlags="right" />

View File

@ -155,7 +155,7 @@
</default>
</switch>
<Key
latin:keyStyle="micOrSettingsKeyStyle"
latin:keyStyle="shortcutOrSettingsKeyStyle"
latin:keyXPos="-10.0%p"
latin:keyWidth="fillBoth"
latin:keyEdgeFlags="right" />

View File

@ -210,7 +210,7 @@
</default>
</switch>
<Key
latin:keyStyle="micOrSettingsKeyStyle"
latin:keyStyle="shortcutOrSettingsKeyStyle"
latin:keyXPos="-10.0%p"
latin:keyWidth="fillBoth"
latin:keyEdgeFlags="right" />

View File

@ -148,7 +148,7 @@
latin:keyXPos="30.750%p"
latin:keyWidth="39.750%p" />
<Key
latin:keyStyle="micOrSettingsKeyStyle"
latin:keyStyle="shortcutOrSettingsKeyStyle"
latin:keyXPos="-10.0%p"
latin:keyWidth="fillRight"
latin:keyEdgeFlags="right" />

View File

@ -29,110 +29,59 @@
<key-style
latin:styleName="functionalKeyStyle"
latin:isFunctional="true" />
<key-style
latin:styleName="shiftKeyStyle"
latin:code="@integer/key_shift"
latin:keyIcon="@drawable/sym_keyboard_shift_holo"
latin:shiftedIcon="@drawable/sym_keyboard_shift_locked_holo"
latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
latin:parentStyle="functionalKeyStyle"
latin:isSticky="true" />
<key-style
latin:styleName="deleteKeyStyle"
latin:code="@integer/key_delete"
latin:keyIcon="@drawable/sym_keyboard_delete_holo"
latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
latin:parentStyle="functionalKeyStyle"
latin:isRepeatable="true" />
<key-style
latin:styleName="returnKeyStyle"
latin:code="@integer/key_return"
latin:keyIcon="@drawable/sym_keyboard_return_holo"
latin:iconPreview="@drawable/sym_keyboard_feedback_return"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="spaceKeyStyle"
latin:code="@integer/key_space"
latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
<key-style
latin:styleName="nonSpecialBackgroundSpaceKeyStyle"
latin:code="@integer/key_space"
latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
<key-style
latin:styleName="smileyKeyStyle"
latin:keyLabel=":-)"
latin:keyOutputText=":-) "
latin:keyLabelOption="popupHint"
latin:popupCharacters="@string/alternates_for_smiley"
latin:maxPopupKeyboardColumn="5" />
<key-style
latin:styleName="settingsKeyStyle"
latin:code="@integer/key_settings"
latin:keyIcon="@drawable/sym_keyboard_settings_holo"
latin:iconPreview="@drawable/sym_keyboard_feedback_settings"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="micKeyStyle"
latin:code="@integer/key_shortcut"
latin:keyIcon="@drawable/sym_keyboard_voice_holo"
latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
latin:parentStyle="functionalKeyStyle" />
</case>
<case
latin:colorScheme="black"
>
<key-style
latin:styleName="functionalKeyStyle" />
<key-style
latin:styleName="shiftKeyStyle"
latin:code="@integer/key_shift"
latin:keyIcon="@drawable/sym_bkeyboard_shift"
latin:shiftedIcon="@drawable/sym_bkeyboard_shift_locked"
latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
latin:parentStyle="functionalKeyStyle"
latin:isSticky="true" />
<key-style
latin:styleName="deleteKeyStyle"
latin:code="@integer/key_delete"
latin:keyIcon="@drawable/sym_bkeyboard_delete"
latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
latin:parentStyle="functionalKeyStyle"
latin:isRepeatable="true" />
<key-style
latin:styleName="returnKeyStyle"
latin:code="@integer/key_return"
latin:keyIcon="@drawable/sym_bkeyboard_return"
latin:iconPreview="@drawable/sym_keyboard_feedback_return"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="spaceKeyStyle"
latin:code="@integer/key_space"
latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
<key-style
latin:styleName="nonSpecialBackgroundSpaceKeyStyle"
latin:code="@integer/key_space"
latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
<key-style
latin:styleName="smileyKeyStyle"
latin:keyLabel=":-)"
latin:keyOutputText=":-) "
latin:keyLabelOption="popupHint"
latin:popupCharacters="@string/alternates_for_smiley"
latin:maxPopupKeyboardColumn="5" />
<key-style
latin:styleName="settingsKeyStyle"
latin:code="@integer/key_settings"
latin:keyIcon="@drawable/sym_bkeyboard_settings"
latin:iconPreview="@drawable/sym_keyboard_feedback_settings"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="micKeyStyle"
latin:code="@integer/key_shortcut"
latin:keyIcon="@drawable/sym_bkeyboard_mic"
latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
latin:parentStyle="functionalKeyStyle" />
</case>
</switch>
<key-style
latin:styleName="shiftKeyStyle"
latin:code="@integer/key_shift"
latin:keyIcon="iconShiftKey"
latin:keyIconShifted="iconShiftedShiftKey"
latin:parentStyle="functionalKeyStyle"
latin:isSticky="true" />
<key-style
latin:styleName="deleteKeyStyle"
latin:code="@integer/key_delete"
latin:keyIcon="iconDeleteKey"
latin:parentStyle="functionalKeyStyle"
latin:isRepeatable="true" />
<key-style
latin:styleName="returnKeyStyle"
latin:code="@integer/key_return"
latin:keyIcon="iconReturnKey"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="spaceKeyStyle"
latin:code="@integer/key_space"
latin:keyIconPreview="iconPreviewSpaceKey" />
<key-style
latin:styleName="nonSpecialBackgroundSpaceKeyStyle"
latin:code="@integer/key_space"
latin:keyIconPreview="iconPreviewSpaceKey" />
<key-style
latin:styleName="smileyKeyStyle"
latin:keyLabel=":-)"
latin:keyOutputText=":-) "
latin:keyLabelOption="popupHint"
latin:popupCharacters="@string/alternates_for_smiley"
latin:maxPopupKeyboardColumn="5" />
<key-style
latin:styleName="settingsKeyStyle"
latin:code="@integer/key_settings"
latin:keyIcon="iconSettingsKey"
latin:keyIconPreview="iconPreviewSettingsKey"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="shortcutKeyStyle"
latin:code="@integer/key_shortcut"
latin:keyIcon="iconShortcutKey"
latin:keyIconPreview="iconPreviewShortcutKey"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="tabKeyStyle"
latin:code="@integer/key_tab"

View File

@ -193,7 +193,7 @@
latin:voiceKeyEnabled="true"
>
<Key
latin:keyStyle="micKeyStyle"
latin:keyStyle="shortcutKeyStyle"
latin:keyXPos="-8.047%p"
latin:keyWidth="fillRight" />
</case>

View File

@ -1,148 +0,0 @@
<?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.
*/
-->
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
<switch>
<case
latin:colorScheme="white"
>
<key-style
latin:styleName="num0KeyStyle"
latin:code="48"
latin:keyIcon="@drawable/sym_keyboard_num0_holo" />
<key-style
latin:styleName="num1KeyStyle"
latin:code="49"
latin:keyIcon="@drawable/sym_keyboard_num1_holo" />
<key-style
latin:styleName="num2KeyStyle"
latin:code="50"
latin:keyIcon="@drawable/sym_keyboard_num2_holo" />
<key-style
latin:styleName="num3KeyStyle"
latin:code="51"
latin:keyIcon="@drawable/sym_keyboard_num3_holo" />
<key-style
latin:styleName="num4KeyStyle"
latin:code="52"
latin:keyIcon="@drawable/sym_keyboard_num4_holo" />
<key-style
latin:styleName="num5KeyStyle"
latin:code="53"
latin:keyIcon="@drawable/sym_keyboard_num5_holo" />
<key-style
latin:styleName="num6KeyStyle"
latin:code="54"
latin:keyIcon="@drawable/sym_keyboard_num6_holo" />
<key-style
latin:styleName="num7KeyStyle"
latin:code="55"
latin:keyIcon="@drawable/sym_keyboard_num7_holo" />
<key-style
latin:styleName="num8KeyStyle"
latin:code="56"
latin:keyIcon="@drawable/sym_keyboard_num8_holo" />
<key-style
latin:styleName="num9KeyStyle"
latin:code="57"
latin:keyIcon="@drawable/sym_keyboard_num9_holo" />
<key-style
latin:styleName="numStarKeyStyle"
latin:code="42"
latin:keyIcon="@drawable/sym_keyboard_numbstar_holo" />
<key-style
latin:styleName="numPoundKeyStyle"
latin:code="35"
latin:keyIcon="@drawable/sym_keyboard_numbpound_holo" />
<key-style
latin:styleName="numAltKeyStyle"
latin:code="@integer/key_switch_alpha_symbol"
latin:keyIcon="@drawable/sym_keyboard_numalt"
latin:iconPreview="@drawable/sym_keyboard_feedback_numalt" />
<key-style
latin:styleName="numSpaceKeyStyle"
latin:code="@integer/key_space"
latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
</case>
<case
latin:colorScheme="black"
>
<key-style
latin:styleName="num0KeyStyle"
latin:code="48"
latin:keyIcon="@drawable/sym_bkeyboard_num0" />
<key-style
latin:styleName="num1KeyStyle"
latin:code="49"
latin:keyIcon="@drawable/sym_bkeyboard_num1" />
<key-style
latin:styleName="num2KeyStyle"
latin:code="50"
latin:keyIcon="@drawable/sym_bkeyboard_num2" />
<key-style
latin:styleName="num3KeyStyle"
latin:code="51"
latin:keyIcon="@drawable/sym_bkeyboard_num3" />
<key-style
latin:styleName="num4KeyStyle"
latin:code="52"
latin:keyIcon="@drawable/sym_bkeyboard_num4" />
<key-style
latin:styleName="num5KeyStyle"
latin:code="53"
latin:keyIcon="@drawable/sym_bkeyboard_num5" />
<key-style
latin:styleName="num6KeyStyle"
latin:code="54"
latin:keyIcon="@drawable/sym_bkeyboard_num6" />
<key-style
latin:styleName="num7KeyStyle"
latin:code="55"
latin:keyIcon="@drawable/sym_bkeyboard_num7" />
<key-style
latin:styleName="num8KeyStyle"
latin:code="56"
latin:keyIcon="@drawable/sym_bkeyboard_num8" />
<key-style
latin:styleName="num9KeyStyle"
latin:code="57"
latin:keyIcon="@drawable/sym_bkeyboard_num9" />
<key-style
latin:styleName="numStarKeyStyle"
latin:code="42"
latin:keyIcon="@drawable/sym_bkeyboard_numstar" />
<key-style
latin:styleName="numPoundKeyStyle"
latin:code="35"
latin:keyIcon="@drawable/sym_bkeyboard_numpound" />
<key-style
latin:styleName="numAltKeyStyle"
latin:code="@integer/key_switch_alpha_symbol"
latin:keyIcon="@drawable/sym_bkeyboard_numalt"
latin:iconPreview="@drawable/sym_keyboard_feedback_numalt" />
<key-style
latin:styleName="numSpaceKeyStyle"
latin:code="@integer/key_space"
latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
</case>
</switch>
</merge>

View File

@ -123,7 +123,7 @@
latin:voiceKeyEnabled="true"
>
<Key
latin:keyStyle="micKeyStyle"
latin:keyStyle="shortcutKeyStyle"
latin:keyXPos="-8.047%p"
latin:keyWidth="fillRight" />
</case>

View File

@ -134,7 +134,7 @@
latin:voiceKeyEnabled="true"
>
<Key
latin:keyStyle="micKeyStyle"
latin:keyStyle="shortcutKeyStyle"
latin:keyXPos="-8.047%p"
latin:keyWidth="fillRight" />
</case>

View File

@ -132,7 +132,7 @@
latin:voiceKeyEnabled="true"
>
<Key
latin:keyStyle="micKeyStyle"
latin:keyStyle="shortcutKeyStyle"
latin:keyXPos="-8.047%p"
latin:keyWidth="fillRight" />
</case>

View File

@ -186,7 +186,7 @@
latin:voiceKeyEnabled="true"
>
<Key
latin:keyStyle="micKeyStyle"
latin:keyStyle="shortcutKeyStyle"
latin:keyXPos="-8.047%p"
latin:keyWidth="fillRight" />
</case>

View File

@ -166,7 +166,7 @@
latin:voiceKeyEnabled="true"
>
<Key
latin:keyStyle="micKeyStyle"
latin:keyStyle="shortcutKeyStyle"
latin:keyXPos="-8.047%p"
latin:keyWidth="fillRight" />
</case>

View File

@ -23,7 +23,7 @@
>
<!-- Base key style for the functional key -->
<switch>
<case
<case
latin:colorScheme="white"
>
<key-style
@ -51,159 +51,76 @@
<key-style
latin:styleName="settingsPopupStyle"
latin:keyLabelOption="popupHint"
latin:popupCharacters="\@drawable/sym_keyboard_settings_holo|\@integer/key_settings"
latin:popupCharacters="\@icon/5|\@integer/key_settings"
latin:parentStyle="functionalKeyStyle" />
</default>
</switch>
<!-- Functional key styles -->
<key-style
latin:styleName="shiftKeyStyle"
latin:code="@integer/key_shift"
latin:keyIcon="iconShiftKey"
latin:keyIconShifted="iconShiftedShiftKey"
latin:parentStyle="functionalKeyStyle"
latin:isSticky="true" />
<key-style
latin:styleName="deleteKeyStyle"
latin:code="@integer/key_delete"
latin:keyIcon="iconDeleteKey"
latin:parentStyle="functionalKeyStyle"
latin:isRepeatable="true" />
<switch>
<!-- When this qwerty keyboard has no voice key but voice key is enabled, then symbol
keyboard will have mic key. That means we should use "?123mic" key here. -->
<case
latin:colorScheme="white"
latin:voiceKeyEnabled="true"
latin:hasVoiceKey="false"
>
<key-style
latin:styleName="shiftKeyStyle"
latin:code="@integer/key_shift"
latin:keyIcon="@drawable/sym_keyboard_shift"
latin:shiftedIcon="@drawable/sym_keyboard_shift_locked"
latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
latin:parentStyle="functionalKeyStyle"
latin:isSticky="true" />
<key-style
latin:styleName="deleteKeyStyle"
latin:code="@integer/key_delete"
latin:keyIcon="@drawable/sym_keyboard_delete"
latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
latin:parentStyle="functionalKeyStyle"
latin:isRepeatable="true" />
<switch>
<!-- When this qwerty keyboard has no voice key but voice key is enabled, then
symbol keyboard will have mic key. That means we should use "?123mic" key
here. -->
<case
latin:voiceKeyEnabled="true"
latin:hasVoiceKey="false"
>
<key-style
latin:styleName="toSymbolKeyStyle"
latin:code="@integer/key_switch_alpha_symbol"
latin:keyIcon="@drawable/sym_keyboard_123_mic"
latin:iconPreview="@drawable/sym_keyboard_feedback_123_mic"
latin:parentStyle="functionalKeyStyle" />
</case>
<default>
<key-style
latin:styleName="toSymbolKeyStyle"
latin:code="@integer/key_switch_alpha_symbol"
latin:keyLabel="@string/label_to_symbol_key"
latin:parentStyle="functionalKeyStyle" />
</default>
</switch>
<key-style
latin:styleName="settingsKeyStyle"
latin:code="@integer/key_settings"
latin:keyIcon="@drawable/sym_keyboard_settings"
latin:iconPreview="@drawable/sym_keyboard_settings"
latin:styleName="toSymbolKeyStyle"
latin:code="@integer/key_switch_alpha_symbol"
latin:keyIcon="iconToSymbolKeyWithShortcut"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="spaceKeyStyle"
latin:code="@integer/key_space"
latin:keyIcon="@drawable/sym_keyboard_space"
latin:iconPreview="@drawable/sym_keyboard_space"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="tabKeyStyle"
latin:code="@integer/key_tab"
latin:keyIcon="@drawable/sym_keyboard_tab"
latin:iconPreview="@drawable/sym_keyboard_tab"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="micKeyStyle"
latin:code="@integer/key_shortcut"
latin:keyIcon="@drawable/sym_keyboard_mic"
latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
latin:parentStyle="settingsPopupStyle" />
<!-- Note: This key style is not for functional tab key. This is used for the tab key
which is laid out as normal letter key. -->
<key-style
latin:styleName="nonSpecialBackgroundTabKeyStyle"
latin:code="@integer/key_tab"
latin:keyIcon="@drawable/sym_keyboard_tab"
latin:iconPreview="@drawable/sym_keyboard_tab" />
</case>
<case
latin:colorScheme="black"
>
<default>
<key-style
latin:styleName="shiftKeyStyle"
latin:code="@integer/key_shift"
latin:keyIcon="@drawable/sym_bkeyboard_shift"
latin:shiftedIcon="@drawable/sym_bkeyboard_shift_locked"
latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
latin:parentStyle="functionalKeyStyle"
latin:isSticky="true" />
<key-style
latin:styleName="deleteKeyStyle"
latin:code="@integer/key_delete"
latin:keyIcon="@drawable/sym_bkeyboard_delete"
latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
latin:parentStyle="functionalKeyStyle"
latin:isRepeatable="true" />
<switch>
<!-- When this qwerty keyboard has no voice key but voice key is enabled, then
symbol keyboard will have mic key. That means we should use "?123mic" key
here. -->
<case
latin:voiceKeyEnabled="true"
latin:hasVoiceKey="false"
>
<key-style
latin:styleName="toSymbolKeyStyle"
latin:code="@integer/key_switch_alpha_symbol"
latin:keyIcon="@drawable/sym_bkeyboard_123_mic"
latin:iconPreview="@drawable/sym_keyboard_feedback_123_mic"
latin:parentStyle="functionalKeyStyle" />
</case>
<default>
<key-style
latin:styleName="toSymbolKeyStyle"
latin:code="@integer/key_switch_alpha_symbol"
latin:keyLabel="@string/label_to_symbol_key"
latin:parentStyle="functionalKeyStyle" />
</default>
</switch>
<key-style
latin:styleName="settingsKeyStyle"
latin:code="@integer/key_settings"
latin:keyIcon="@drawable/sym_bkeyboard_settings"
latin:iconPreview="@drawable/sym_keyboard_feedback_settings"
latin:styleName="toSymbolKeyStyle"
latin:code="@integer/key_switch_alpha_symbol"
latin:keyLabel="@string/label_to_symbol_key"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="spaceKeyStyle"
latin:code="@integer/key_space"
latin:keyIcon="@drawable/sym_bkeyboard_space"
latin:iconPreview="@drawable/sym_keyboard_feedback_space"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="tabKeyStyle"
latin:code="@integer/key_tab"
latin:keyIcon="@drawable/sym_bkeyboard_tab"
latin:iconPreview="@drawable/sym_keyboard_feedback_tab"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="micKeyStyle"
latin:code="@integer/key_shortcut"
latin:keyIcon="@drawable/sym_bkeyboard_mic"
latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
latin:parentStyle="settingsPopupStyle" />
<!-- Note: This key style is not for functional tab key. This is used for the tab key
which is laid out as normal letter key. -->
<key-style
latin:styleName="nonSpecialBackgroundTabKeyStyle"
latin:code="@integer/key_tab"
latin:keyIcon="@drawable/sym_bkeyboard_tab"
latin:iconPreview="@drawable/sym_keyboard_feedback_tab" />
</case>
</default>
</switch>
<key-style
latin:styleName="settingsKeyStyle"
latin:code="@integer/key_settings"
latin:keyIcon="iconSettingsKey"
latin:keyIconPreview="iconPreviewSettingsKey"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="spaceKeyStyle"
latin:code="@integer/key_space"
latin:keyIcon="iconSpaceKey"
latin:keyIconPreview="iconPreviewSpaceKey"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="tabKeyStyle"
latin:code="@integer/key_tab"
latin:keyIcon="iconTabKey"
latin:keyIconPreview="iconPreviewTabKey"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="shortcutKeyStyle"
latin:code="@integer/key_shortcut"
latin:keyIcon="iconShortcutKey"
latin:keyIconPreview="iconPreviewShortcutKey"
latin:parentStyle="settingsPopupStyle" />
<!-- Note: This key style is not for functional tab key. This is used for the tab key which is
laid out as normal letter key. -->
<key-style
latin:styleName="nonSpecialBackgroundTabKeyStyle"
latin:code="@integer/key_tab"
latin:keyIcon="iconTabKey"
latin:keyIconPreview="iconPreviewTabKey" />
<!-- Return key style -->
<switch>
<case
@ -245,52 +162,18 @@
<case
latin:imeAction="actionSearch"
>
<switch>
<case
latin:colorScheme="white"
>
<key-style
latin:styleName="returnKeyStyle"
latin:code="@integer/key_return"
latin:keyIcon="@drawable/sym_keyboard_search"
latin:iconPreview="@drawable/sym_keyboard_feedback_search"
latin:parentStyle="functionalKeyStyle" />
</case>
<case
latin:colorScheme="black"
>
<key-style
latin:styleName="returnKeyStyle"
latin:code="@integer/key_return"
latin:keyIcon="@drawable/sym_bkeyboard_search"
latin:iconPreview="@drawable/sym_keyboard_feedback_search"
latin:parentStyle="functionalKeyStyle" />
</case>
</switch>
<key-style
latin:styleName="returnKeyStyle"
latin:code="@integer/key_return"
latin:keyIcon="iconSearchKey"
latin:parentStyle="functionalKeyStyle" />
</case>
<default>
<switch>
<case
latin:colorScheme="white"
>
<key-style
latin:styleName="returnKeyStyle"
latin:code="@integer/key_return"
latin:keyIcon="@drawable/sym_keyboard_return"
latin:iconPreview="@drawable/sym_keyboard_return"
latin:parentStyle="functionalKeyStyle" />
</case>
<case
latin:colorScheme="black"
>
<key-style
latin:styleName="returnKeyStyle"
latin:code="@integer/key_return"
latin:keyIcon="@drawable/sym_bkeyboard_return"
latin:iconPreview="@drawable/sym_keyboard_feedback_return"
latin:parentStyle="functionalKeyStyle" />
</case>
</switch>
<key-style
latin:styleName="returnKeyStyle"
latin:code="@integer/key_return"
latin:keyIcon="iconReturnKey"
latin:parentStyle="functionalKeyStyle" />
</default>
</switch>
<key-style
@ -335,4 +218,4 @@
latin:parentStyle="functionalKeyStyle" />
</default>
</switch>
</merge>
</merge>

View File

@ -21,130 +21,61 @@
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
<switch>
<case
latin:colorScheme="white"
>
<key-style
latin:styleName="num0KeyStyle"
latin:code="48"
latin:keyIcon="@drawable/sym_keyboard_num0" />
<key-style
latin:styleName="num1KeyStyle"
latin:code="49"
latin:keyIcon="@drawable/sym_keyboard_num1" />
<key-style
latin:styleName="num2KeyStyle"
latin:code="50"
latin:keyIcon="@drawable/sym_keyboard_num2" />
<key-style
latin:styleName="num3KeyStyle"
latin:code="51"
latin:keyIcon="@drawable/sym_keyboard_num3" />
<key-style
latin:styleName="num4KeyStyle"
latin:code="52"
latin:keyIcon="@drawable/sym_keyboard_num4" />
<key-style
latin:styleName="num5KeyStyle"
latin:code="53"
latin:keyIcon="@drawable/sym_keyboard_num5" />
<key-style
latin:styleName="num6KeyStyle"
latin:code="54"
latin:keyIcon="@drawable/sym_keyboard_num6" />
<key-style
latin:styleName="num7KeyStyle"
latin:code="55"
latin:keyIcon="@drawable/sym_keyboard_num7" />
<key-style
latin:styleName="num8KeyStyle"
latin:code="56"
latin:keyIcon="@drawable/sym_keyboard_num8" />
<key-style
latin:styleName="num9KeyStyle"
latin:code="57"
latin:keyIcon="@drawable/sym_keyboard_num9" />
<key-style
latin:styleName="numStarKeyStyle"
latin:code="42"
latin:keyIcon="@drawable/sym_keyboard_numstar" />
<key-style
latin:styleName="numPoundKeyStyle"
latin:code="35"
latin:keyIcon="@drawable/sym_keyboard_numpound" />
<key-style
latin:styleName="numAltKeyStyle"
latin:code="@integer/key_switch_alpha_symbol"
latin:keyIcon="@drawable/sym_keyboard_numalt"
latin:iconPreview="@drawable/sym_keyboard_feedback_numalt" />
<key-style
latin:styleName="numSpaceKeyStyle"
latin:code="@integer/key_space"
latin:keyIcon="@drawable/sym_keyboard_space"
latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
</case>
<case
latin:colorScheme="black"
>
<key-style
latin:styleName="num0KeyStyle"
latin:code="48"
latin:keyIcon="@drawable/sym_bkeyboard_num0" />
<key-style
latin:styleName="num1KeyStyle"
latin:code="49"
latin:keyIcon="@drawable/sym_bkeyboard_num1" />
<key-style
latin:styleName="num2KeyStyle"
latin:code="50"
latin:keyIcon="@drawable/sym_bkeyboard_num2" />
<key-style
latin:styleName="num3KeyStyle"
latin:code="51"
latin:keyIcon="@drawable/sym_bkeyboard_num3" />
<key-style
latin:styleName="num4KeyStyle"
latin:code="52"
latin:keyIcon="@drawable/sym_bkeyboard_num4" />
<key-style
latin:styleName="num5KeyStyle"
latin:code="53"
latin:keyIcon="@drawable/sym_bkeyboard_num5" />
<key-style
latin:styleName="num6KeyStyle"
latin:code="54"
latin:keyIcon="@drawable/sym_bkeyboard_num6" />
<key-style
latin:styleName="num7KeyStyle"
latin:code="55"
latin:keyIcon="@drawable/sym_bkeyboard_num7" />
<key-style
latin:styleName="num8KeyStyle"
latin:code="56"
latin:keyIcon="@drawable/sym_bkeyboard_num8" />
<key-style
latin:styleName="num9KeyStyle"
latin:code="57"
latin:keyIcon="@drawable/sym_bkeyboard_num9" />
<key-style
latin:styleName="numStarKeyStyle"
latin:code="42"
latin:keyIcon="@drawable/sym_bkeyboard_numstar" />
<key-style
latin:styleName="numPoundKeyStyle"
latin:code="35"
latin:keyIcon="@drawable/sym_bkeyboard_numpound" />
<key-style
latin:styleName="numAltKeyStyle"
latin:code="@integer/key_switch_alpha_symbol"
latin:keyIcon="@drawable/sym_bkeyboard_numalt"
latin:iconPreview="@drawable/sym_keyboard_feedback_numalt" />
<key-style
latin:styleName="numSpaceKeyStyle"
latin:code="@integer/key_space"
latin:keyIcon="@drawable/sym_bkeyboard_space"
latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
</case>
</switch>
<key-style
latin:styleName="num0KeyStyle"
latin:code="48"
latin:keyIcon="iconNum0Key" />
<key-style
latin:styleName="num1KeyStyle"
latin:code="49"
latin:keyIcon="iconNum1Key" />
<key-style
latin:styleName="num2KeyStyle"
latin:code="50"
latin:keyIcon="iconNum2Key" />
<key-style
latin:styleName="num3KeyStyle"
latin:code="51"
latin:keyIcon="iconNum3Key" />
<key-style
latin:styleName="num4KeyStyle"
latin:code="52"
latin:keyIcon="iconNum4Key" />
<key-style
latin:styleName="num5KeyStyle"
latin:code="53"
latin:keyIcon="iconNum5Key" />
<key-style
latin:styleName="num6KeyStyle"
latin:code="54"
latin:keyIcon="iconNum6Key" />
<key-style
latin:styleName="num7KeyStyle"
latin:code="55"
latin:keyIcon="iconNum7Key" />
<key-style
latin:styleName="num8KeyStyle"
latin:code="56"
latin:keyIcon="iconNum8Key" />
<key-style
latin:styleName="num9KeyStyle"
latin:code="57"
latin:keyIcon="iconNum9Key" />
<key-style
latin:styleName="numStarKeyStyle"
latin:code="42"
latin:keyIcon="iconNumStarKey" />
<key-style
latin:styleName="numPoundKeyStyle"
latin:code="35"
latin:keyIcon="iconNumPoundKey" />
<key-style
latin:styleName="numAltKeyStyle"
latin:code="@integer/key_switch_alpha_symbol"
latin:keyIcon="iconNumAltKey" />
<key-style
latin:styleName="numSpaceKeyStyle"
latin:code="@integer/key_space"
latin:keyIcon="iconSpaceKey"
latin:keyIconPreview="iconPreviewSpaceKey" />
</merge>

View File

@ -48,7 +48,7 @@
latin:hasVoiceKey="true"
>
<Key
latin:keyStyle="micKeyStyle"
latin:keyStyle="shortcutKeyStyle"
latin:keyWidth="9.2%p" />
</case>
<!-- latin:hasVoiceKey="false" -->
@ -93,7 +93,7 @@
latin:hasVoiceKey="true"
>
<Key
latin:keyStyle="micKeyStyle" />
latin:keyStyle="shortcutKeyStyle" />
</case>
<!-- latin:hasVoiceKey="false" -->
<case

View File

@ -30,7 +30,7 @@
latin:hasVoiceKey="true"
>
<Key
latin:keyStyle="micKeyStyle"
latin:keyStyle="shortcutKeyStyle"
latin:keyWidth="9.2%p" />
</case>
<!-- latin:hasVoiceKey="false" -->
@ -49,7 +49,7 @@
latin:hasVoiceKey="true"
>
<Key
latin:keyStyle="micKeyStyle" />
latin:keyStyle="shortcutKeyStyle" />
</case>
<!-- latin:hasVoiceKey="false" -->
<default>

View File

@ -22,6 +22,7 @@ import android.graphics.drawable.Drawable;
import android.util.Log;
import com.android.inputmethod.keyboard.internal.Key;
import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
import com.android.inputmethod.keyboard.internal.KeyboardParser;
import com.android.inputmethod.keyboard.internal.KeyboardShiftState;
import com.android.inputmethod.latin.R;
@ -54,7 +55,7 @@ import java.util.Map;
* </pre>
*/
public class Keyboard {
private static final String TAG = "Keyboard";
private static final String TAG = Keyboard.class.getSimpleName();
public static final int EDGE_LEFT = 0x01;
public static final int EDGE_RIGHT = 0x02;
@ -133,6 +134,8 @@ public class Keyboard {
public final KeyboardId mId;
public final KeyboardIconsSet mIconsSet = new KeyboardIconsSet();
// Variables for pre-computing nearest keys.
// TODO: Change GRID_WIDTH and GRID_HEIGHT to private.

View File

@ -16,6 +16,11 @@
package com.android.inputmethod.keyboard;
import android.content.res.Resources;
import android.os.SystemClock;
import android.util.Log;
import android.view.MotionEvent;
import com.android.inputmethod.keyboard.KeyboardView.UIHandler;
import com.android.inputmethod.keyboard.internal.Key;
import com.android.inputmethod.keyboard.internal.PointerTrackerKeyState;
@ -24,11 +29,6 @@ import com.android.inputmethod.latin.LatinImeLogger;
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.SubtypeSwitcher;
import android.content.res.Resources;
import android.os.SystemClock;
import android.util.Log;
import android.view.MotionEvent;
import java.util.Arrays;
import java.util.List;

View File

@ -16,11 +16,6 @@
package com.android.inputmethod.keyboard.internal;
import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.keyboard.internal.KeyStyles.KeyStyle;
import com.android.inputmethod.keyboard.internal.KeyboardParser.ParseException;
import com.android.inputmethod.latin.R;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.content.res.XmlResourceParser;
@ -28,6 +23,11 @@ import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.util.Xml;
import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.keyboard.internal.KeyStyles.KeyStyle;
import com.android.inputmethod.keyboard.internal.KeyboardParser.ParseException;
import com.android.inputmethod.latin.R;
import java.util.ArrayList;
/**
@ -165,7 +165,7 @@ public class Key {
mLabel = PopupCharactersParser.getLabel(popupSpecification);
mOutputText = PopupCharactersParser.getOutputText(popupSpecification);
mCode = PopupCharactersParser.getCode(res, popupSpecification);
mIcon = PopupCharactersParser.getIcon(res, popupSpecification);
mIcon = keyboard.mIconsSet.getIcon(PopupCharactersParser.getIconId(popupSpecification));
// Horizontal gap is divided equally to both sides of the key.
mX = x + mGap / 2;
mY = y;
@ -263,13 +263,18 @@ public class Key {
mEdgeFlags = style.getFlag(keyAttr, R.styleable.Keyboard_Key_keyEdgeFlags, 0)
| row.mRowEdgeFlags;
final KeyboardIconsSet iconsSet = mKeyboard.mIconsSet;
mVisualInsetsLeft = KeyboardParser.getDimensionOrFraction(keyAttr,
R.styleable.Keyboard_Key_visualInsetsLeft, mKeyboard.getDisplayHeight(), 0);
mVisualInsetsRight = KeyboardParser.getDimensionOrFraction(keyAttr,
R.styleable.Keyboard_Key_visualInsetsRight, mKeyboard.getDisplayHeight(), 0);
mPreviewIcon = style.getDrawable(keyAttr, R.styleable.Keyboard_Key_iconPreview);
mPreviewIcon = iconsSet.getIcon(style.getInt(
keyAttr, R.styleable.Keyboard_Key_keyIconPreview,
KeyboardIconsSet.ICON_UNDEFINED));
Keyboard.setDefaultBounds(mPreviewIcon);
mIcon = style.getDrawable(keyAttr, R.styleable.Keyboard_Key_keyIcon);
mIcon = iconsSet.getIcon(style.getInt(
keyAttr, R.styleable.Keyboard_Key_keyIcon,
KeyboardIconsSet.ICON_UNDEFINED));
Keyboard.setDefaultBounds(mIcon);
mHintLetter = style.getText(keyAttr, R.styleable.Keyboard_Key_keyHintLetter);
@ -288,8 +293,9 @@ public class Key {
mCode = Keyboard.CODE_DUMMY;
}
final Drawable shiftedIcon = style.getDrawable(keyAttr,
R.styleable.Keyboard_Key_shiftedIcon);
final Drawable shiftedIcon = iconsSet.getIcon(style.getInt(
keyAttr, R.styleable.Keyboard_Key_keyIconShifted,
KeyboardIconsSet.ICON_UNDEFINED));
if (shiftedIcon != null)
mKeyboard.getShiftedIcons().put(this, shiftedIcon);
} finally {

View File

@ -16,14 +16,13 @@
package com.android.inputmethod.keyboard.internal;
import com.android.inputmethod.keyboard.internal.KeyboardParser.ParseException;
import com.android.inputmethod.latin.R;
import android.content.res.TypedArray;
import android.content.res.XmlResourceParser;
import android.graphics.drawable.Drawable;
import android.util.Log;
import com.android.inputmethod.keyboard.internal.KeyboardParser.ParseException;
import com.android.inputmethod.latin.R;
import java.util.ArrayList;
import java.util.HashMap;
@ -37,7 +36,6 @@ public class KeyStyles {
public interface KeyStyle {
public CharSequence[] getTextArray(TypedArray a, int index);
public Drawable getDrawable(TypedArray a, int index);
public CharSequence getText(TypedArray a, int index);
public int getInt(TypedArray a, int index, int defaultValue);
public int getFlag(TypedArray a, int index, int defaultValue);
@ -54,11 +52,6 @@ public class KeyStyles {
return parseTextArray(a, index);
}
@Override
public Drawable getDrawable(TypedArray a, int index) {
return a.getDrawable(index);
}
@Override
public CharSequence getText(TypedArray a, int index) {
return a.getText(index);
@ -139,12 +132,6 @@ public class KeyStyles {
? super.getTextArray(a, index) : (CharSequence[])mAttributes.get(index);
}
@Override
public Drawable getDrawable(TypedArray a, int index) {
return a.hasValue(index)
? super.getDrawable(a, index) : (Drawable)mAttributes.get(index);
}
@Override
public CharSequence getText(TypedArray a, int index) {
return a.hasValue(index)
@ -177,25 +164,20 @@ public class KeyStyles {
// TODO: Currently not all Key attributes can be declared as style.
readInt(keyAttr, R.styleable.Keyboard_Key_code);
readText(keyAttr, R.styleable.Keyboard_Key_keyLabel);
readFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelOption);
readTextArray(keyAttr, R.styleable.Keyboard_Key_popupCharacters);
readInt(keyAttr, R.styleable.Keyboard_Key_maxPopupKeyboardColumn);
readText(keyAttr, R.styleable.Keyboard_Key_keyOutputText);
readDrawable(keyAttr, R.styleable.Keyboard_Key_keyIcon);
readDrawable(keyAttr, R.styleable.Keyboard_Key_iconPreview);
readText(keyAttr, R.styleable.Keyboard_Key_keyHintLetter);
readDrawable(keyAttr, R.styleable.Keyboard_Key_shiftedIcon);
readTextArray(keyAttr, R.styleable.Keyboard_Key_popupCharacters);
readFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelOption);
readInt(keyAttr, R.styleable.Keyboard_Key_keyIcon);
readInt(keyAttr, R.styleable.Keyboard_Key_keyIconPreview);
readInt(keyAttr, R.styleable.Keyboard_Key_keyIconShifted);
readInt(keyAttr, R.styleable.Keyboard_Key_maxPopupKeyboardColumn);
readBoolean(keyAttr, R.styleable.Keyboard_Key_isFunctional);
readBoolean(keyAttr, R.styleable.Keyboard_Key_isSticky);
readBoolean(keyAttr, R.styleable.Keyboard_Key_isRepeatable);
readBoolean(keyAttr, R.styleable.Keyboard_Key_enabled);
}
private void readDrawable(TypedArray a, int index) {
if (a.hasValue(index))
mAttributes.put(index, a.getDrawable(index));
}
private void readText(TypedArray a, int index) {
if (a.hasValue(index))
mAttributes.put(index, a.getText(index));

View File

@ -0,0 +1,147 @@
/*
* Copyright (C) 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.
*/
package com.android.inputmethod.keyboard.internal;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.latin.R;
public class KeyboardIconsSet {
public static final int ICON_UNDEFINED = 0;
// This should be aligned with Keyboard.keyIcon enum.
private static final int ICON_SHIFT_KEY = 1;
private static final int ICON_TO_SYMBOL_KEY = 2;
private static final int ICON_TO_SYMBOL_KEY_WITH_SHORTCUT = 3;
private static final int ICON_DELETE_KEY = 4;
private static final int ICON_SETTINGS_KEY = 5;
private static final int ICON_SHORTCUT_KEY = 6;
private static final int ICON_SPACE_KEY = 7;
private static final int ICON_RETURN_KEY = 8;
private static final int ICON_SEARCH_KEY = 9;
private static final int ICON_TAB_KEY = 10;
private static final int ICON_NUM1_KEY = 11;
private static final int ICON_NUM2_KEY = 12;
private static final int ICON_NUM3_KEY = 13;
private static final int ICON_NUM4_KEY = 14;
private static final int ICON_NUM5_KEY = 15;
private static final int ICON_NUM6_KEY = 16;
private static final int ICON_NUM7_KEY = 17;
private static final int ICON_NUM8_KEY = 18;
private static final int ICON_NUM9_KEY = 19;
private static final int ICON_NUM0_KEY = 20;
private static final int ICON_NUM_STAR_KEY = 21;
private static final int ICON_NUM_POUND_KEY = 22;
private static final int ICON_NUM_ALT_KEY = 23;
// This should be aligned with Keyboard.keyIconShifted enum.
private static final int ICON_SHIFTED_SHIFT_KEY = 24;
// This should be aligned with Keyboard.keyIconPreview enum.
private static final int ICON_PREVIEW_SPACE_KEY = 25;
private static final int ICON_PREVIEW_TAB_KEY = 26;
private static final int ICON_PREVIEW_SETTINGS_KEY = 27;
private static final int ICON_PREVIEW_SHORTCUT_KEY = 28;
private static final int ICON_LAST = 28;
private final Drawable mIcons[] = new Drawable[ICON_LAST + 1];
private static final int getIconId(int attrIndex) {
switch (attrIndex) {
case R.styleable.Keyboard_iconShiftKey:
return ICON_SHIFT_KEY;
case R.styleable.Keyboard_iconToSymbolKey:
return ICON_TO_SYMBOL_KEY;
case R.styleable.Keyboard_iconToSymbolKeyWithShortcut:
return ICON_TO_SYMBOL_KEY_WITH_SHORTCUT;
case R.styleable.Keyboard_iconDeleteKey:
return ICON_DELETE_KEY;
case R.styleable.Keyboard_iconSettingsKey:
return ICON_SETTINGS_KEY;
case R.styleable.Keyboard_iconShortcutKey:
return ICON_SHORTCUT_KEY;
case R.styleable.Keyboard_iconSpaceKey:
return ICON_SPACE_KEY;
case R.styleable.Keyboard_iconReturnKey:
return ICON_RETURN_KEY;
case R.styleable.Keyboard_iconSearchKey:
return ICON_SEARCH_KEY;
case R.styleable.Keyboard_iconTabKey:
return ICON_TAB_KEY;
case R.styleable.Keyboard_iconNum1Key:
return ICON_NUM1_KEY;
case R.styleable.Keyboard_iconNum2Key:
return ICON_NUM2_KEY;
case R.styleable.Keyboard_iconNum3Key:
return ICON_NUM3_KEY;
case R.styleable.Keyboard_iconNum4Key:
return ICON_NUM4_KEY;
case R.styleable.Keyboard_iconNum5Key:
return ICON_NUM5_KEY;
case R.styleable.Keyboard_iconNum6Key:
return ICON_NUM6_KEY;
case R.styleable.Keyboard_iconNum7Key:
return ICON_NUM7_KEY;
case R.styleable.Keyboard_iconNum8Key:
return ICON_NUM8_KEY;
case R.styleable.Keyboard_iconNum9Key:
return ICON_NUM9_KEY;
case R.styleable.Keyboard_iconNum0Key:
return ICON_NUM0_KEY;
case R.styleable.Keyboard_iconNumStarKey:
return ICON_NUM_STAR_KEY;
case R.styleable.Keyboard_iconNumPoundKey:
return ICON_NUM_POUND_KEY;
case R.styleable.Keyboard_iconNumAltKey:
return ICON_NUM_ALT_KEY;
case R.styleable.Keyboard_iconShiftedShiftKey:
return ICON_SHIFTED_SHIFT_KEY;
case R.styleable.Keyboard_iconPreviewSpaceKey:
return ICON_PREVIEW_SPACE_KEY;
case R.styleable.Keyboard_iconPreviewTabKey:
return ICON_PREVIEW_TAB_KEY;
case R.styleable.Keyboard_iconPreviewSettingsKey:
return ICON_PREVIEW_SETTINGS_KEY;
case R.styleable.Keyboard_iconPreviewShortcutKey:
return ICON_PREVIEW_SHORTCUT_KEY;
default:
return ICON_UNDEFINED;
}
}
public void loadIcons(TypedArray keyboardAttrs) {
final int count = keyboardAttrs.getIndexCount();
for (int i = 0; i < count; i++) {
final int attrIndex = keyboardAttrs.getIndex(i);
final int iconId = getIconId(attrIndex);
if (iconId != ICON_UNDEFINED) {
final Drawable icon = keyboardAttrs.getDrawable(attrIndex);
Keyboard.setDefaultBounds(icon);
mIcons[iconId] = icon;
}
}
}
public Drawable getIcon(int iconId) {
if (iconId == ICON_UNDEFINED)
return null;
if (iconId < 0 || iconId >= mIcons.length)
throw new IllegalArgumentException("icon id is out of range: " + iconId);
return mIcons[iconId];
}
}

View File

@ -232,6 +232,8 @@ public class KeyboardParser {
keyboard.setMaxPopupKeyboardColumn(keyAttr.getInt(
R.styleable.Keyboard_Key_maxPopupKeyboardColumn, 5));
mKeyboard.mIconsSet.loadIcons(keyboardAttr);
} finally {
keyAttr.recycle();
keyboardAttr.recycle();

View File

@ -16,16 +16,16 @@
package com.android.inputmethod.keyboard.internal;
import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.keyboard.KeyboardView;
import com.android.inputmethod.keyboard.MiniKeyboard;
import com.android.inputmethod.latin.R;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Paint;
import android.graphics.Rect;
import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.keyboard.KeyboardView;
import com.android.inputmethod.keyboard.MiniKeyboard;
import com.android.inputmethod.latin.R;
import java.util.List;
public class MiniKeyboardBuilder {

View File

@ -16,29 +16,32 @@
package com.android.inputmethod.keyboard.internal;
import android.content.res.Resources;
import android.text.TextUtils;
import android.util.Log;
import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.latin.R;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
/**
* String parser of popupCharacters attribute of Key.
* The string is comma separated texts each of which represents one popup key.
* Each popup key text is one of the following:
* - A single letter (Letter)
* - Label optionally followed by keyOutputText or code (keyLabel|keyOutputText).
* - Icon followed by keyOutputText or code (@drawable/icon|@integer/key_code)
* - Icon followed by keyOutputText or code (@icon/icon_number|@integer/key_code)
* Special character, comma ',' backslash '\', and bar '|' can be escaped by '\'
* character.
* Note that the character '@' and '\' are also parsed by XML parser and CSV parser as well.
* See {@link KeyboardIconsSet} about icon_number.
*/
public class PopupCharactersParser {
private static final String TAG = PopupCharactersParser.class.getSimpleName();
private static final char ESCAPE = '\\';
private static final String LABEL_END = "|";
private static final String PREFIX_AT = "@";
private static final String PREFIX_ICON = PREFIX_AT + "drawable/";
private static final String PREFIX_ICON = PREFIX_AT + "icon/";
private static final String PREFIX_CODE = PREFIX_AT + "integer/";
private PopupCharactersParser() {
@ -151,13 +154,18 @@ public class PopupCharactersParser {
return Keyboard.CODE_DUMMY;
}
public static Drawable getIcon(Resources res, String popupSpec) {
public static int getIconId(String popupSpec) {
if (hasIcon(popupSpec)) {
int end = popupSpec.indexOf(LABEL_END, PREFIX_ICON.length() + 1);
int resId = getResourceId(res, popupSpec.substring(PREFIX_AT.length(), end));
return res.getDrawable(resId);
final String iconId = popupSpec.substring(PREFIX_ICON.length(), end);
try {
return Integer.valueOf(iconId);
} catch (NumberFormatException e) {
Log.w(TAG, "illegal icon id specified: " + iconId);
return KeyboardIconsSet.ICON_UNDEFINED;
}
}
return null;
return KeyboardIconsSet.ICON_UNDEFINED;
}
private static int getResourceId(Resources res, String name) {

View File

@ -16,14 +16,14 @@
package com.android.inputmethod.keyboard.internal;
import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.latin.R;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.content.res.XmlResourceParser;
import android.util.Xml;
import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.latin.R;
/**
* Container for keys in the keyboard. All keys in a row are at the same Y-coordinate.
* Some of the key size defaults can be overridden per row from what the {@link Keyboard}

View File

@ -16,23 +16,24 @@
package com.android.inputmethod.keyboard.internal;
import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.keyboard.internal.PopupCharactersParser.PopupCharactersParserError;
import com.android.inputmethod.latin.R;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.test.AndroidTestCase;
import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.latin.R;
public class PopupCharactersParserTests extends AndroidTestCase {
private Resources mRes;
private static final int ICON_SETTINGS_KEY = 5;
private static final int ICON_UNDEFINED = KeyboardIconsSet.ICON_UNDEFINED;
private static final String CODE_SETTINGS = "@integer/key_settings";
private static final String ICON_SETTINGS = "@drawable/sym_keyboard_settings";
private static final String ICON_SETTINGS = "@icon/" + ICON_SETTINGS_KEY;
private static final String CODE_NON_EXISTING = "@integer/non_existing";
private static final String ICON_NON_EXISTING = "@drawable/non_existing";
private static final String ICON_NON_EXISTING = "@icon/non_existing";
private int mCodeSettings;
private Drawable mIconSettings;
@Override
protected void setUp() {
@ -41,33 +42,26 @@ public class PopupCharactersParserTests extends AndroidTestCase {
final String packageName = res.getResourcePackageName(R.string.english_ime_name);
final int codeId = res.getIdentifier(CODE_SETTINGS.substring(1), null, packageName);
final int iconId = res.getIdentifier(ICON_SETTINGS.substring(1), null, packageName);
mCodeSettings = res.getInteger(codeId);
mIconSettings = res.getDrawable(iconId);
}
private void assertParser(String message, String popupSpec, String expectedLabel,
String expectedOutputText, Drawable expectedIcon, int expectedCode) {
String expectedOutputText, int expectedIcon, int expectedCode) {
String actualLabel = PopupCharactersParser.getLabel(popupSpec);
assertEquals(message + ": label:", expectedLabel, actualLabel);
String actualOutputText = PopupCharactersParser.getOutputText(popupSpec);
assertEquals(message + ": ouptputText:", expectedOutputText, actualOutputText);
Drawable actualIcon = PopupCharactersParser.getIcon(mRes, popupSpec);
// We can not compare drawables, checking null or non-null instead.
if (expectedIcon == null) {
assertNull(message + ": icon null:", actualIcon);
} else {
assertNotNull(message + ": icon non-null:", actualIcon);
}
int actualIcon = PopupCharactersParser.getIconId(popupSpec);
assertEquals(message + ": icon:", expectedIcon, actualIcon);
int actualCode = PopupCharactersParser.getCode(mRes, popupSpec);
assertEquals(message + ": codes value:", expectedCode, actualCode);
}
private void assertParserError(String message, String popupSpec, String expectedLabel,
String expectedOutputText, Drawable expectedIcon, int expectedCode) {
String expectedOutputText, int expectedIcon, int expectedCode) {
try {
assertParser(message, popupSpec, expectedLabel, expectedOutputText, expectedIcon,
expectedCode);
@ -78,132 +72,149 @@ public class PopupCharactersParserTests extends AndroidTestCase {
}
public void testSingleLetter() {
assertParser("Single letter", "a", "a", null, null, 'a');
assertParser("Single escaped bar", "\\|", "|", null, null, '|');
assertParser("Single escaped escape", "\\\\", "\\", null, null, '\\');
assertParser("Single comma", ",", ",", null, null, ',');
assertParser("Single escaped comma", "\\,", ",", null, null, ',');
assertParser("Single escaped letter", "\\a", "a", null, null, 'a');
assertParser("Single at", "@", "@", null, null, '@');
assertParser("Single escaped at", "\\@", "@", null, null, '@');
assertParser("Single letter with outputText", "a|abc", "a", "abc", null,
Keyboard.CODE_DUMMY);
assertParser("Single letter with escaped outputText", "a|a\\|c", "a", "a|c", null,
Keyboard.CODE_DUMMY);
assertParser("Single letter with comma outputText", "a|a,b", "a", "a,b", null,
Keyboard.CODE_DUMMY);
assertParser("Single letter with escaped comma outputText", "a|a\\,b", "a", "a,b", null,
Keyboard.CODE_DUMMY);
assertParser("Single letter with outputText starts with at", "a|@bc", "a", "@bc", null,
Keyboard.CODE_DUMMY);
assertParser("Single letter with outputText contains at", "a|a@c", "a", "a@c", null,
Keyboard.CODE_DUMMY);
assertParser("Single letter with escaped at outputText", "a|\\@bc", "a", "@bc", null,
Keyboard.CODE_DUMMY);
assertParser("Single escaped escape with outputText", "\\\\|\\\\", "\\", "\\", null,
Keyboard.CODE_DUMMY);
assertParser("Single escaped bar with outputText", "\\||\\|", "|", "|", null,
Keyboard.CODE_DUMMY);
assertParser("Single letter with code", "a|" + CODE_SETTINGS, "a", null, null,
mCodeSettings);
assertParser("Single letter", "a",
"a", null, ICON_UNDEFINED, 'a');
assertParser("Single escaped bar", "\\|",
"|", null, ICON_UNDEFINED, '|');
assertParser("Single escaped escape", "\\\\",
"\\", null, ICON_UNDEFINED, '\\');
assertParser("Single comma", ",",
",", null, ICON_UNDEFINED, ',');
assertParser("Single escaped comma", "\\,",
",", null, ICON_UNDEFINED, ',');
assertParser("Single escaped letter", "\\a",
"a", null, ICON_UNDEFINED, 'a');
assertParser("Single at", "@",
"@", null, ICON_UNDEFINED, '@');
assertParser("Single escaped at", "\\@",
"@", null, ICON_UNDEFINED, '@');
assertParser("Single letter with outputText", "a|abc",
"a", "abc", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Single letter with escaped outputText", "a|a\\|c",
"a", "a|c", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Single letter with comma outputText", "a|a,b",
"a", "a,b", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Single letter with escaped comma outputText", "a|a\\,b",
"a", "a,b", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Single letter with outputText starts with at", "a|@bc",
"a", "@bc", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Single letter with outputText contains at", "a|a@c",
"a", "a@c", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Single letter with escaped at outputText", "a|\\@bc",
"a", "@bc", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Single escaped escape with outputText", "\\\\|\\\\",
"\\", "\\", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Single escaped bar with outputText", "\\||\\|",
"|", "|", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Single letter with code", "a|" + CODE_SETTINGS,
"a", null, ICON_UNDEFINED, mCodeSettings);
}
public void testLabel() {
assertParser("Simple label", "abc", "abc", "abc", null, Keyboard.CODE_DUMMY);
assertParser("Label with escaped bar", "a\\|c", "a|c", "a|c", null,
Keyboard.CODE_DUMMY);
assertParser("Label with escaped escape", "a\\\\c", "a\\c", "a\\c", null,
Keyboard.CODE_DUMMY);
assertParser("Label with comma", "a,c", "a,c", "a,c", null, Keyboard.CODE_DUMMY);
assertParser("Label with escaped comma", "a\\,c", "a,c", "a,c", null,
Keyboard.CODE_DUMMY);
assertParser("Label starts with at", "@bc", "@bc", "@bc", null, Keyboard.CODE_DUMMY);
assertParser("Label contains at", "a@c", "a@c", "a@c", null, Keyboard.CODE_DUMMY);
assertParser("Label with escaped at", "\\@bc", "@bc", "@bc", null,
Keyboard.CODE_DUMMY);
assertParser("Label with escaped letter", "\\abc", "abc", "abc", null,
Keyboard.CODE_DUMMY);
assertParser("Label with outputText", "abc|def", "abc", "def", null,
Keyboard.CODE_DUMMY);
assertParser("Label with comma and outputText", "a,c|def", "a,c", "def", null,
Keyboard.CODE_DUMMY);
assertParser("Escaped comma label with outputText", "a\\,c|def", "a,c", "def", null,
Keyboard.CODE_DUMMY);
assertParser("Escaped label with outputText", "a\\|c|def", "a|c", "def", null,
Keyboard.CODE_DUMMY);
assertParser("Label with escaped bar outputText", "abc|d\\|f", "abc", "d|f", null,
Keyboard.CODE_DUMMY);
assertParser("Escaped escape label with outputText", "a\\\\|def", "a\\", "def", null,
Keyboard.CODE_DUMMY);
assertParser("Label starts with at and outputText", "@bc|def", "@bc", "def", null,
Keyboard.CODE_DUMMY);
assertParser("Label contains at label and outputText", "a@c|def", "a@c", "def", null,
Keyboard.CODE_DUMMY);
assertParser("Escaped at label with outputText", "\\@bc|def", "@bc", "def", null,
Keyboard.CODE_DUMMY);
assertParser("Label with comma outputText", "abc|a,b", "abc", "a,b", null,
Keyboard.CODE_DUMMY);
assertParser("Label with escaped comma outputText", "abc|a\\,b", "abc", "a,b", null,
Keyboard.CODE_DUMMY);
assertParser("Label with outputText starts with at", "abc|@bc", "abc", "@bc", null,
Keyboard.CODE_DUMMY);
assertParser("Label with outputText contains at", "abc|a@c", "abc", "a@c", null,
Keyboard.CODE_DUMMY);
assertParser("Label with escaped at outputText", "abc|\\@bc", "abc", "@bc", null,
Keyboard.CODE_DUMMY);
assertParser("Label with escaped bar outputText", "abc|d\\|f", "abc", "d|f",
null, Keyboard.CODE_DUMMY);
assertParser("Escaped bar label with escaped bar outputText", "a\\|c|d\\|f", "a|c", "d|f",
null, Keyboard.CODE_DUMMY);
assertParser("Label with code", "abc|" + CODE_SETTINGS, "abc", null, null, mCodeSettings);
assertParser("Escaped label with code", "a\\|c|" + CODE_SETTINGS, "a|c", null, null,
mCodeSettings);
assertParser("Simple label", "abc",
"abc", "abc", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Label with escaped bar", "a\\|c",
"a|c", "a|c", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Label with escaped escape", "a\\\\c",
"a\\c", "a\\c", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Label with comma", "a,c",
"a,c", "a,c", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Label with escaped comma", "a\\,c",
"a,c", "a,c", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Label starts with at", "@bc",
"@bc", "@bc", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Label contains at", "a@c",
"a@c", "a@c", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Label with escaped at", "\\@bc",
"@bc", "@bc", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Label with escaped letter", "\\abc",
"abc", "abc", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Label with outputText", "abc|def",
"abc", "def", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Label with comma and outputText", "a,c|def",
"a,c", "def", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Escaped comma label with outputText", "a\\,c|def",
"a,c", "def", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Escaped label with outputText", "a\\|c|def",
"a|c", "def", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Label with escaped bar outputText", "abc|d\\|f",
"abc", "d|f", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Escaped escape label with outputText", "a\\\\|def",
"a\\", "def", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Label starts with at and outputText", "@bc|def",
"@bc", "def", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Label contains at label and outputText", "a@c|def",
"a@c", "def", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Escaped at label with outputText", "\\@bc|def",
"@bc", "def", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Label with comma outputText", "abc|a,b",
"abc", "a,b", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Label with escaped comma outputText", "abc|a\\,b",
"abc", "a,b", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Label with outputText starts with at", "abc|@bc",
"abc", "@bc", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Label with outputText contains at", "abc|a@c",
"abc", "a@c", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Label with escaped at outputText", "abc|\\@bc",
"abc", "@bc", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Label with escaped bar outputText", "abc|d\\|f",
"abc", "d|f", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Escaped bar label with escaped bar outputText", "a\\|c|d\\|f",
"a|c", "d|f", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParser("Label with code", "abc|" + CODE_SETTINGS,
"abc", null, ICON_UNDEFINED, mCodeSettings);
assertParser("Escaped label with code", "a\\|c|" + CODE_SETTINGS,
"a|c", null, ICON_UNDEFINED, mCodeSettings);
}
public void testIconAndCode() {
assertParser("Icon with outputText", ICON_SETTINGS + "|abc", null, "abc", mIconSettings,
Keyboard.CODE_DUMMY);
assertParser("Icon with outputText starts with at", ICON_SETTINGS + "|@bc", null, "@bc",
mIconSettings, Keyboard.CODE_DUMMY);
assertParser("Icon with outputText contains at", ICON_SETTINGS + "|a@c", null, "a@c",
mIconSettings, Keyboard.CODE_DUMMY);
assertParser("Icon with escaped at outputText", ICON_SETTINGS + "|\\@bc", null, "@bc",
mIconSettings, Keyboard.CODE_DUMMY);
assertParser("Label starts with at and code", "@bc|" + CODE_SETTINGS, "@bc", null, null,
mCodeSettings);
assertParser("Label contains at and code", "a@c|" + CODE_SETTINGS, "a@c", null, null,
mCodeSettings);
assertParser("Escaped at label with code", "\\@bc|" + CODE_SETTINGS, "@bc", null, null,
mCodeSettings);
assertParser("Icon with code", ICON_SETTINGS + "|" + CODE_SETTINGS, null, null,
mIconSettings, mCodeSettings);
assertParser("Icon with outputText", ICON_SETTINGS + "|abc",
null, "abc", ICON_SETTINGS_KEY, Keyboard.CODE_DUMMY);
assertParser("Icon with outputText starts with at", ICON_SETTINGS + "|@bc",
null, "@bc", ICON_SETTINGS_KEY, Keyboard.CODE_DUMMY);
assertParser("Icon with outputText contains at", ICON_SETTINGS + "|a@c",
null, "a@c", ICON_SETTINGS_KEY, Keyboard.CODE_DUMMY);
assertParser("Icon with escaped at outputText", ICON_SETTINGS + "|\\@bc",
null, "@bc", ICON_SETTINGS_KEY, Keyboard.CODE_DUMMY);
assertParser("Label starts with at and code", "@bc|" + CODE_SETTINGS,
"@bc", null, ICON_UNDEFINED, mCodeSettings);
assertParser("Label contains at and code", "a@c|" + CODE_SETTINGS,
"a@c", null, ICON_UNDEFINED, mCodeSettings);
assertParser("Escaped at label with code", "\\@bc|" + CODE_SETTINGS,
"@bc", null, ICON_UNDEFINED, mCodeSettings);
assertParser("Icon with code", ICON_SETTINGS + "|" + CODE_SETTINGS,
null, null, ICON_SETTINGS_KEY, mCodeSettings);
}
public void testFormatError() {
assertParserError("Empty spec", "", null, null, null, Keyboard.CODE_UNSPECIFIED);
assertParserError("Empty label with outputText", "|a", null, "a", null,
Keyboard.CODE_DUMMY);
assertParserError("Empty label with code", "|" + CODE_SETTINGS, null, null, null,
mCodeSettings);
assertParserError("Empty outputText with label", "a|", "a", null, null,
Keyboard.CODE_UNSPECIFIED);
assertParserError("Empty outputText with icon", ICON_SETTINGS + "|", null, null,
mIconSettings, Keyboard.CODE_UNSPECIFIED);
assertParserError("Empty icon and code", "|", null, null, null, Keyboard.CODE_UNSPECIFIED);
assertParserError("Icon without code", ICON_SETTINGS, null, null, mIconSettings,
Keyboard.CODE_DUMMY);
assertParserError("Non existing icon", ICON_NON_EXISTING + "|abc", null, "abc", null,
Keyboard.CODE_DUMMY);
assertParserError("Non existing code", "abc|" + CODE_NON_EXISTING, "abc", null, null,
Keyboard.CODE_UNSPECIFIED);
assertParserError("Third bar at end", "a|b|", "a", null, null, Keyboard.CODE_UNSPECIFIED);
assertParserError("Multiple bar", "a|b|c", "a", null, null, Keyboard.CODE_UNSPECIFIED);
assertParserError("Multiple bar with label and code", "a|" + CODE_SETTINGS + "|c", "a",
null, null, mCodeSettings);
assertParserError("Multiple bar with icon and outputText", ICON_SETTINGS + "|b|c", null,
null, mIconSettings, Keyboard.CODE_UNSPECIFIED);
assertParserError("Empty spec", "", null,
null, ICON_UNDEFINED, Keyboard.CODE_UNSPECIFIED);
assertParserError("Empty label with outputText", "|a",
null, "a", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParserError("Empty label with code", "|" + CODE_SETTINGS,
null, null, ICON_UNDEFINED, mCodeSettings);
assertParserError("Empty outputText with label", "a|",
"a", null, ICON_UNDEFINED, Keyboard.CODE_UNSPECIFIED);
assertParserError("Empty outputText with icon", ICON_SETTINGS + "|",
null, null, ICON_SETTINGS_KEY, Keyboard.CODE_UNSPECIFIED);
assertParserError("Empty icon and code", "|",
null, null, ICON_UNDEFINED, Keyboard.CODE_UNSPECIFIED);
assertParserError("Icon without code", ICON_SETTINGS,
null, null, ICON_SETTINGS_KEY, Keyboard.CODE_DUMMY);
assertParser("Non existing icon", ICON_NON_EXISTING + "|abc",
null, "abc", ICON_UNDEFINED, Keyboard.CODE_DUMMY);
assertParserError("Non existing code", "abc|" + CODE_NON_EXISTING,
"abc", null, ICON_UNDEFINED, Keyboard.CODE_UNSPECIFIED);
assertParserError("Third bar at end", "a|b|",
"a", null, ICON_UNDEFINED, Keyboard.CODE_UNSPECIFIED);
assertParserError("Multiple bar", "a|b|c",
"a", null, ICON_UNDEFINED, Keyboard.CODE_UNSPECIFIED);
assertParserError("Multiple bar with label and code", "a|" + CODE_SETTINGS + "|c",
"a", null, ICON_UNDEFINED, mCodeSettings);
assertParserError("Multiple bar with icon and outputText", ICON_SETTINGS + "|b|c",
null, null, ICON_SETTINGS_KEY, Keyboard.CODE_UNSPECIFIED);
assertParserError("Multiple bar with icon and code",
ICON_SETTINGS + "|" + CODE_SETTINGS + "|c", null, null, mIconSettings,
mCodeSettings);
ICON_SETTINGS + "|" + CODE_SETTINGS + "|c",
null, null, ICON_SETTINGS_KEY, mCodeSettings);
}
}