Home | History | Annotate | Download | only in xml
      1 <?xml version="1.0" encoding="utf-8"?>
      2 <!--
      3 /*
      4 **
      5 ** Copyright 2012, The Android Open Source Project
      6 **
      7 ** Licensed under the Apache License, Version 2.0 (the "License");
      8 ** you may not use this file except in compliance with the License.
      9 ** You may obtain a copy of the License at
     10 **
     11 **     http://www.apache.org/licenses/LICENSE-2.0
     12 **
     13 ** Unless required by applicable law or agreed to in writing, software
     14 ** distributed under the License is distributed on an "AS IS" BASIS,
     15 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     16 ** See the License for the specific language governing permissions and
     17 ** limitations under the License.
     18 */
     19 -->
     20 
     21 <merge
     22     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     23 >
     24     <!-- TODO: Stop using many conditional cases for emoji_key_as_more_key. There are way too many to maintain. -->
     25     <!-- Navigate more keys style -->
     26     <switch>
     27         <!-- latin:passwordInput="true" -->
     28         <case
     29             latin:imeAction="actionNext"
     30             latin:navigatePrevious="true"
     31             latin:passwordInput="true"
     32         >
     33             <key-style
     34                 latin:styleName="navigateMoreKeysStyle"
     35                 latin:keyLabelFlags="hasPopupHint|preserveCase"
     36                 latin:moreKeys="!text/action_previous_as_more_key" />
     37         </case>
     38         <case
     39             latin:imeAction="actionNext"
     40             latin:navigatePrevious="false"
     41             latin:passwordInput="true"
     42         >
     43             <key-style
     44                 latin:styleName="navigateMoreKeysStyle" />
     45         </case>
     46         <case
     47             latin:imeAction="actionPrevious"
     48             latin:navigateNext="true"
     49             latin:passwordInput="true"
     50         >
     51             <key-style
     52                 latin:styleName="navigateMoreKeysStyle"
     53                 latin:keyLabelFlags="hasPopupHint|preserveCase"
     54                 latin:moreKeys="!text/action_next_as_more_key" />
     55         </case>
     56         <case
     57             latin:imeAction="actionPrevious"
     58             latin:navigateNext="false"
     59             latin:passwordInput="true"
     60         >
     61             <key-style
     62                 latin:styleName="navigateMoreKeysStyle" />
     63         </case>
     64         <case
     65             latin:navigateNext="true"
     66             latin:navigatePrevious="true"
     67             latin:passwordInput="true"
     68         >
     69             <key-style
     70                 latin:styleName="navigateMoreKeysStyle"
     71                 latin:keyLabelFlags="hasPopupHint|preserveCase"
     72                 latin:moreKeys="!fixedColumnOrder!2,!needsDividers!,!text/action_previous_as_more_key,!text/action_next_as_more_key" />
     73         </case>
     74         <case
     75             latin:navigateNext="true"
     76             latin:navigatePrevious="false"
     77             latin:passwordInput="true"
     78         >
     79             <key-style
     80                 latin:styleName="navigateMoreKeysStyle"
     81                 latin:keyLabelFlags="hasPopupHint|preserveCase"
     82                 latin:moreKeys="!text/action_next_as_more_key" />
     83         </case>
     84         <case
     85             latin:navigateNext="false"
     86             latin:navigatePrevious="true"
     87             latin:passwordInput="true"
     88         >
     89             <key-style
     90                 latin:styleName="navigateMoreKeysStyle"
     91                 latin:keyLabelFlags="hasPopupHint|preserveCase"
     92                 latin:moreKeys="!text/action_previous_as_more_key" />
     93         </case>
     94         <case
     95             latin:navigateNext="false"
     96             latin:navigatePrevious="false"
     97             latin:passwordInput="true"
     98         >
     99             <key-style
    100                 latin:styleName="navigateMoreKeysStyle" />
    101         </case>
    102         <!-- latin:mode="email|url|phone|number|date|time|datetime" -->
    103         <case
    104             latin:imeAction="actionNext"
    105             latin:navigatePrevious="true"
    106             latin:mode="email|url|phone|number|date|time|datetime"
    107         >
    108             <key-style
    109                 latin:styleName="navigateMoreKeysStyle"
    110                 latin:keyLabelFlags="hasPopupHint|preserveCase"
    111                 latin:moreKeys="!text/action_previous_as_more_key" />
    112         </case>
    113         <case
    114             latin:imeAction="actionNext"
    115             latin:navigatePrevious="false"
    116             latin:mode="email|url|phone|number|date|time|datetime"
    117         >
    118             <key-style
    119                 latin:styleName="navigateMoreKeysStyle" />
    120         </case>
    121         <case
    122             latin:imeAction="actionPrevious"
    123             latin:navigateNext="true"
    124             latin:mode="email|url|phone|number|date|time|datetime"
    125         >
    126             <key-style
    127                 latin:styleName="navigateMoreKeysStyle"
    128                 latin:keyLabelFlags="hasPopupHint|preserveCase"
    129                 latin:moreKeys="!text/action_next_as_more_key" />
    130         </case>
    131         <case
    132             latin:imeAction="actionPrevious"
    133             latin:navigateNext="false"
    134             latin:mode="email|url|phone|number|date|time|datetime"
    135         >
    136             <key-style
    137                 latin:styleName="navigateMoreKeysStyle" />
    138         </case>
    139         <case
    140             latin:navigateNext="true"
    141             latin:navigatePrevious="true"
    142             latin:mode="email|url|phone|number|date|time|datetime"
    143         >
    144             <key-style
    145                 latin:styleName="navigateMoreKeysStyle"
    146                 latin:keyLabelFlags="hasPopupHint|preserveCase"
    147                 latin:moreKeys="!fixedColumnOrder!2,!needsDividers!,!text/action_previous_as_more_key,!text/action_next_as_more_key" />
    148         </case>
    149         <case
    150             latin:navigateNext="true"
    151             latin:navigatePrevious="false"
    152             latin:mode="email|url|phone|number|date|time|datetime"
    153         >
    154             <key-style
    155                 latin:styleName="navigateMoreKeysStyle"
    156                 latin:keyLabelFlags="hasPopupHint|preserveCase"
    157                 latin:moreKeys="!text/action_next_as_more_key" />
    158         </case>
    159         <case
    160             latin:navigateNext="false"
    161             latin:navigatePrevious="true"
    162             latin:mode="email|url|phone|number|date|time|datetime"
    163         >
    164             <key-style
    165                 latin:styleName="navigateMoreKeysStyle"
    166                 latin:keyLabelFlags="hasPopupHint|preserveCase"
    167                 latin:moreKeys="!text/action_previous_as_more_key" />
    168         </case>
    169         <case
    170             latin:navigateNext="false"
    171             latin:navigatePrevious="false"
    172             latin:mode="email|url|phone|number|date|time|datetime"
    173         >
    174             <key-style
    175                 latin:styleName="navigateMoreKeysStyle" />
    176         </case>
    177         <!-- default -->
    178         <case
    179             latin:imeAction="actionNext"
    180             latin:navigatePrevious="true"
    181         >
    182             <key-style
    183                 latin:styleName="navigateMoreKeysStyle"
    184                 latin:keyLabelFlags="hasPopupHint|preserveCase"
    185                 latin:moreKeys="!fixedColumnOrder!2,!needsDividers!,!text/emoji_key_as_more_key,!text/action_previous_as_more_key" />
    186         </case>
    187         <case
    188             latin:imeAction="actionNext"
    189             latin:navigatePrevious="false"
    190         >
    191             <key-style
    192                 latin:styleName="navigateMoreKeysStyle"
    193                 latin:keyLabelFlags="hasPopupHint|preserveCase"
    194                 latin:moreKeys="!text/emoji_key_as_more_key" />
    195         </case>
    196         <case
    197             latin:imeAction="actionPrevious"
    198             latin:navigateNext="true"
    199         >
    200             <key-style
    201                 latin:styleName="navigateMoreKeysStyle"
    202                 latin:keyLabelFlags="hasPopupHint|preserveCase"
    203                 latin:moreKeys="!fixedColumnOrder!2,!needsDividers!,!text/emoji_key_as_more_key,!text/action_next_as_more_key" />
    204         </case>
    205         <case
    206             latin:imeAction="actionPrevious"
    207             latin:navigateNext="false"
    208         >
    209             <key-style
    210                 latin:styleName="navigateMoreKeysStyle"
    211                 latin:keyLabelFlags="hasPopupHint|preserveCase"
    212                 latin:moreKeys="!text/emoji_key_as_more_key" />
    213         </case>
    214         <case
    215             latin:navigateNext="true"
    216             latin:navigatePrevious="true"
    217         >
    218             <key-style
    219                 latin:styleName="navigateMoreKeysStyle"
    220                 latin:keyLabelFlags="hasPopupHint|preserveCase"
    221                 latin:moreKeys="!fixedColumnOrder!3,!needsDividers!,!text/emoji_key_as_more_key,!text/action_previous_as_more_key,!text/action_next_as_more_key" />
    222         </case>
    223         <case
    224             latin:navigateNext="true"
    225             latin:navigatePrevious="false"
    226         >
    227             <key-style
    228                 latin:styleName="navigateMoreKeysStyle"
    229                 latin:keyLabelFlags="hasPopupHint|preserveCase"
    230                 latin:moreKeys="!fixedColumnOrder!2,!needsDividers!,!text/emoji_key_as_more_key,!text/action_next_as_more_key" />
    231         </case>
    232         <case
    233             latin:navigateNext="false"
    234             latin:navigatePrevious="true"
    235         >
    236             <key-style
    237                 latin:styleName="navigateMoreKeysStyle"
    238                 latin:keyLabelFlags="hasPopupHint|preserveCase"
    239                 latin:moreKeys="!fixedColumnOrder!2,!needsDividers!,!text/emoji_key_as_more_key,!text/action_previous_as_more_key" />
    240         </case>
    241         <case
    242             latin:navigateNext="false"
    243             latin:navigatePrevious="false"
    244         >
    245             <key-style
    246                 latin:styleName="navigateMoreKeysStyle"
    247                 latin:keyLabelFlags="hasPopupHint|preserveCase"
    248                 latin:moreKeys="!text/emoji_key_as_more_key" />
    249         </case>
    250         <default>
    251             <key-style
    252                 latin:styleName="navigateMoreKeysStyle" />
    253         </default>
    254     </switch>
    255     <!-- Enter key style -->
    256     <key-style
    257         latin:styleName="defaultEnterKeyStyle"
    258         latin:code="!code/key_enter"
    259         latin:keyIcon="!icon/enter_key"
    260         latin:keyLabelFlags="preserveCase|autoXScale|followKeyLabelRatio"
    261         latin:keyActionFlags="noKeyPreview"
    262         latin:backgroundType="functional"
    263         latin:parentStyle="navigateMoreKeysStyle" />
    264     <key-style
    265         latin:styleName="shiftEnterKeyStyle"
    266         latin:code="!code/key_shift_enter"
    267         latin:parentStyle="defaultEnterKeyStyle" />
    268     <key-style
    269         latin:styleName="defaultActionEnterKeyStyle"
    270         latin:code="!code/key_enter"
    271         latin:keyIcon="!icon/undefined"
    272         latin:backgroundType="action"
    273         latin:parentStyle="defaultEnterKeyStyle" />
    274     <switch>
    275         <!-- Shift + Enter in textMultiLine field. -->
    276         <case
    277             latin:isMultiLine="true"
    278             latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
    279         >
    280             <key-style
    281                 latin:styleName="enterKeyStyle"
    282                 latin:parentStyle="shiftEnterKeyStyle" />
    283         </case>
    284         <case
    285             latin:imeAction="actionGo"
    286         >
    287             <key-style
    288                 latin:styleName="enterKeyStyle"
    289                 latin:keyLabel="!text/label_go_key"
    290                 latin:parentStyle="defaultActionEnterKeyStyle" />
    291         </case>
    292         <case
    293             latin:imeAction="actionNext"
    294         >
    295             <key-style
    296                 latin:styleName="enterKeyStyle"
    297                 latin:keyLabel="!text/label_next_key"
    298                 latin:parentStyle="defaultActionEnterKeyStyle" />
    299         </case>
    300         <case
    301             latin:imeAction="actionPrevious"
    302         >
    303             <key-style
    304                 latin:styleName="enterKeyStyle"
    305                 latin:keyLabel="!text/label_previous_key"
    306                 latin:parentStyle="defaultActionEnterKeyStyle" />
    307         </case>
    308         <case
    309             latin:imeAction="actionDone"
    310         >
    311             <key-style
    312                 latin:styleName="enterKeyStyle"
    313                 latin:keyLabel="!text/label_done_key"
    314                 latin:parentStyle="defaultActionEnterKeyStyle" />
    315         </case>
    316         <case
    317             latin:imeAction="actionSend"
    318         >
    319             <key-style
    320                 latin:styleName="enterKeyStyle"
    321                 latin:keyLabel="!text/label_send_key"
    322                 latin:parentStyle="defaultActionEnterKeyStyle" />
    323         </case>
    324         <case
    325             latin:imeAction="actionSearch"
    326         >
    327             <key-style
    328                 latin:styleName="enterKeyStyle"
    329                 latin:keyIcon="!icon/search_key"
    330                 latin:parentStyle="defaultActionEnterKeyStyle" />
    331         </case>
    332         <case
    333             latin:imeAction="actionCustomLabel"
    334         >
    335             <key-style
    336                 latin:styleName="enterKeyStyle"
    337                 latin:keyLabelFlags="fromCustomActionLabel"
    338                 latin:parentStyle="defaultActionEnterKeyStyle" />
    339         </case>
    340         <!-- imeAction is either actionNone or actionUnspecified. -->
    341         <default>
    342             <key-style
    343                 latin:styleName="enterKeyStyle"
    344                 latin:parentStyle="defaultEnterKeyStyle" />
    345         </default>
    346     </switch>
    347 </merge>
    348