<?xml version="1.0" encoding="utf-8"?> <!-- /* ** ** Copyright 2012, 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" > <!-- TODO: Stop using many conditional cases for keyspec_emoji_key. There are way too many to maintain. --> <!-- Navigate more keys style --> <switch> <!-- latin:passwordInput="true" --> <case latin:imeAction="actionNext" latin:navigatePrevious="true" latin:passwordInput="true" > <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" latin:moreKeys="!text/keyspec_action_previous" /> </case> <case latin:imeAction="actionNext" latin:navigatePrevious="false" latin:passwordInput="true" > <key-style latin:styleName="navigateMoreKeysStyle" /> </case> <case latin:imeAction="actionPrevious" latin:navigateNext="true" latin:passwordInput="true" > <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" latin:moreKeys="!text/keyspec_action_next" /> </case> <case latin:imeAction="actionPrevious" latin:navigateNext="false" latin:passwordInput="true" > <key-style latin:styleName="navigateMoreKeysStyle" /> </case> <case latin:navigateNext="true" latin:navigatePrevious="true" latin:passwordInput="true" > <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" latin:moreKeys="!fixedColumnOrder!2,!needsDividers!,!text/keyspec_action_previous,!text/keyspec_action_next" /> </case> <case latin:navigateNext="true" latin:navigatePrevious="false" latin:passwordInput="true" > <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" latin:moreKeys="!text/keyspec_action_next" /> </case> <case latin:navigateNext="false" latin:navigatePrevious="true" latin:passwordInput="true" > <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" latin:moreKeys="!text/keyspec_action_previous" /> </case> <case latin:navigateNext="false" latin:navigatePrevious="false" latin:passwordInput="true" > <key-style latin:styleName="navigateMoreKeysStyle" /> </case> <!-- latin:mode="email|url|phone|number|date|time|datetime" --> <case latin:imeAction="actionNext" latin:navigatePrevious="true" latin:mode="email|url|phone|number|date|time|datetime" > <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" latin:moreKeys="!text/keyspec_action_previous" /> </case> <case latin:imeAction="actionNext" latin:navigatePrevious="false" latin:mode="email|url|phone|number|date|time|datetime" > <key-style latin:styleName="navigateMoreKeysStyle" /> </case> <case latin:imeAction="actionPrevious" latin:navigateNext="true" latin:mode="email|url|phone|number|date|time|datetime" > <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" latin:moreKeys="!text/keyspec_action_next" /> </case> <case latin:imeAction="actionPrevious" latin:navigateNext="false" latin:mode="email|url|phone|number|date|time|datetime" > <key-style latin:styleName="navigateMoreKeysStyle" /> </case> <case latin:navigateNext="true" latin:navigatePrevious="true" latin:mode="email|url|phone|number|date|time|datetime" > <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" latin:moreKeys="!fixedColumnOrder!2,!needsDividers!,!text/keyspec_action_previous,!text/keyspec_action_next" /> </case> <case latin:navigateNext="true" latin:navigatePrevious="false" latin:mode="email|url|phone|number|date|time|datetime" > <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" latin:moreKeys="!text/keyspec_action_next" /> </case> <case latin:navigateNext="false" latin:navigatePrevious="true" latin:mode="email|url|phone|number|date|time|datetime" > <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" latin:moreKeys="!text/keyspec_action_previous" /> </case> <case latin:navigateNext="false" latin:navigatePrevious="false" latin:mode="email|url|phone|number|date|time|datetime" > <key-style latin:styleName="navigateMoreKeysStyle" /> </case> <!-- default --> <case latin:imeAction="actionNext" latin:navigatePrevious="true" > <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" latin:moreKeys="!fixedColumnOrder!2,!needsDividers!,!text/keyspec_emoji_key,!text/keyspec_action_previous" /> </case> <case latin:imeAction="actionNext" latin:navigatePrevious="false" > <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" latin:moreKeys="!text/keyspec_emoji_key" /> </case> <case latin:imeAction="actionPrevious" latin:navigateNext="true" > <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" latin:moreKeys="!fixedColumnOrder!2,!needsDividers!,!text/keyspec_emoji_key,!text/keyspec_action_next" /> </case> <case latin:imeAction="actionPrevious" latin:navigateNext="false" > <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" latin:moreKeys="!text/keyspec_emoji_key" /> </case> <case latin:navigateNext="true" latin:navigatePrevious="true" > <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" latin:moreKeys="!fixedColumnOrder!3,!needsDividers!,!text/keyspec_emoji_key,!text/keyspec_action_previous,!text/keyspec_action_next" /> </case> <case latin:navigateNext="true" latin:navigatePrevious="false" > <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" latin:moreKeys="!fixedColumnOrder!2,!needsDividers!,!text/keyspec_emoji_key,!text/keyspec_action_next" /> </case> <case latin:navigateNext="false" latin:navigatePrevious="true" > <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" latin:moreKeys="!fixedColumnOrder!2,!needsDividers!,!text/keyspec_emoji_key,!text/keyspec_action_previous" /> </case> <case latin:navigateNext="false" latin:navigatePrevious="false" > <key-style latin:styleName="navigateMoreKeysStyle" latin:keyLabelFlags="hasPopupHint|preserveCase" latin:moreKeys="!text/keyspec_emoji_key" /> </case> <default> <key-style latin:styleName="navigateMoreKeysStyle" /> </default> </switch> <!-- Enter key style --> <key-style latin:styleName="defaultEnterKeyStyle" latin:keyLabelFlags="preserveCase|autoXScale|followKeyLabelRatio|followFunctionalTextColor" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" latin:parentStyle="navigateMoreKeysStyle" /> <key-style latin:styleName="shiftEnterKeyStyle" latin:keySpec="!icon/enter_key|!code/key_shift_enter" latin:parentStyle="defaultEnterKeyStyle" /> <switch> <!-- Shift + Enter in textMultiLine field. --> <case latin:isMultiLine="true" latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted" > <key-style latin:styleName="enterKeyStyle" latin:parentStyle="shiftEnterKeyStyle" /> </case> <!-- Smiley in textShortMessage field. This <case> should be after Shift + Enter <case> and before any of action <case>. --> <case latin:mode="im" > <key-style latin:styleName="enterKeyStyle" latin:parentStyle="emojiKeyStyle" /> </case> <case latin:imeAction="actionGo" latin:isIconDefined="go_key" > <key-style latin:styleName="enterKeyStyle" latin:keySpec="!icon/go_key|!code/key_enter" latin:backgroundType="action" latin:parentStyle="defaultEnterKeyStyle" /> </case> <case latin:imeAction="actionGo" > <key-style latin:styleName="enterKeyStyle" latin:keySpec="!text/label_go_key|!code/key_enter" latin:backgroundType="action" latin:parentStyle="defaultEnterKeyStyle" /> </case> <case latin:imeAction="actionNext" latin:isIconDefined="next_key" > <key-style latin:styleName="enterKeyStyle" latin:keySpec="!icon/next_key|!code/key_enter" latin:backgroundType="action" latin:parentStyle="defaultEnterKeyStyle" /> </case> <case latin:imeAction="actionNext" > <key-style latin:styleName="enterKeyStyle" latin:keySpec="!text/label_next_key|!code/key_enter" latin:backgroundType="action" latin:parentStyle="defaultEnterKeyStyle" /> </case> <case latin:imeAction="actionPrevious" latin:isIconDefined="previous_key" > <key-style latin:styleName="enterKeyStyle" latin:keySpec="!icon/previous_key|!code/key_enter" latin:backgroundType="action" latin:parentStyle="defaultEnterKeyStyle" /> </case> <case latin:imeAction="actionPrevious" > <key-style latin:styleName="enterKeyStyle" latin:keySpec="!text/label_previous_key|!code/key_enter" latin:backgroundType="action" latin:parentStyle="defaultEnterKeyStyle" /> </case> <case latin:imeAction="actionDone" latin:isIconDefined="done_key" > <key-style latin:styleName="enterKeyStyle" latin:keySpec="!icon/done_key|!code/key_enter" latin:backgroundType="action" latin:parentStyle="defaultEnterKeyStyle" /> </case> <case latin:imeAction="actionDone" > <key-style latin:styleName="enterKeyStyle" latin:keySpec="!text/label_done_key|!code/key_enter" latin:backgroundType="action" latin:parentStyle="defaultEnterKeyStyle" /> </case> <case latin:imeAction="actionSend" latin:isIconDefined="send_key" > <key-style latin:styleName="enterKeyStyle" latin:keySpec="!icon/send_key|!code/key_enter" latin:backgroundType="action" latin:parentStyle="defaultEnterKeyStyle" /> </case> <case latin:imeAction="actionSend" > <key-style latin:styleName="enterKeyStyle" latin:keySpec="!text/label_send_key|!code/key_enter" latin:backgroundType="action" latin:parentStyle="defaultEnterKeyStyle" /> </case> <case latin:imeAction="actionSearch" > <key-style latin:styleName="enterKeyStyle" latin:keySpec="!icon/search_key|!code/key_enter" latin:backgroundType="action" latin:parentStyle="defaultEnterKeyStyle" /> </case> <case latin:imeAction="actionCustomLabel" > <key-style latin:styleName="enterKeyStyle" latin:keySpec="dummy_label|!code/key_enter" latin:keyLabelFlags="fromCustomActionLabel" latin:backgroundType="action" latin:parentStyle="defaultEnterKeyStyle" /> </case> <!-- imeAction is either actionNone or actionUnspecified. --> <default> <key-style latin:styleName="enterKeyStyle" latin:keySpec="!icon/enter_key|!code/key_enter" latin:parentStyle="defaultEnterKeyStyle" /> </default> </switch> </merge>