key_styles_enter.xml revision 017e9f7e7fa45add58af80165902843fe1e8dedb
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 keyspec_emoji_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/keyspec_action_previous" />
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/keyspec_action_next" />
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/keyspec_action_previous,!text/keyspec_action_next" />
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/keyspec_action_next" />
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/keyspec_action_previous" />
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/keyspec_action_previous" />
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/keyspec_action_next" />
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/keyspec_action_previous,!text/keyspec_action_next" />
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/keyspec_action_next" />
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/keyspec_action_previous" />
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/keyspec_emoji_key,!text/keyspec_action_previous" />
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/keyspec_emoji_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/keyspec_emoji_key,!text/keyspec_action_next" />
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/keyspec_emoji_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/keyspec_emoji_key,!text/keyspec_action_previous,!text/keyspec_action_next" />
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/keyspec_emoji_key,!text/keyspec_action_next" />
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/keyspec_emoji_key,!text/keyspec_action_previous" />
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/keyspec_emoji_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:keySpec="!icon/enter_key|!code/key_enter"
259        latin:keyLabelFlags="preserveCase|autoXScale|followKeyLabelRatio|followFunctionalTextColor"
260        latin:keyActionFlags="noKeyPreview"
261        latin:backgroundType="action"
262        latin:parentStyle="navigateMoreKeysStyle" />
263    <key-style
264        latin:styleName="shiftEnterKeyStyle"
265        latin:keySpec="!icon/enter_key|!code/key_shift_enter"
266        latin:parentStyle="defaultEnterKeyStyle" />
267    <switch>
268        <!-- Shift + Enter in textMultiLine field. -->
269        <case
270            latin:isMultiLine="true"
271            latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
272        >
273            <key-style
274                latin:styleName="enterKeyStyle"
275                latin:parentStyle="shiftEnterKeyStyle" />
276        </case>
277        <!-- Smiley in textShortMessage field.
278             This <case> should be after Shift + Enter <case> and before any of action <case>. -->
279        <case
280            latin:mode="im"
281        >
282            <key-style
283                latin:styleName="enterKeyStyle"
284                latin:parentStyle="emojiKeyStyle" />
285        </case>
286        <case
287            latin:imeAction="actionGo"
288            latin:isIconDefined="go_key"
289        >
290            <key-style
291                latin:styleName="enterKeyStyle"
292                latin:keySpec="!icon/go_key|!code/key_enter"
293                latin:backgroundType="action"
294                latin:parentStyle="defaultEnterKeyStyle" />
295        </case>
296        <case
297            latin:imeAction="actionGo"
298        >
299            <key-style
300                latin:styleName="enterKeyStyle"
301                latin:keySpec="!text/label_go_key|!code/key_enter"
302                latin:parentStyle="defaultEnterKeyStyle" />
303        </case>
304        <case
305            latin:imeAction="actionNext"
306            latin:isIconDefined="next_key"
307        >
308            <key-style
309                latin:styleName="enterKeyStyle"
310                latin:keySpec="!icon/next_key|!code/key_enter"
311                latin:backgroundType="action"
312                latin:parentStyle="defaultEnterKeyStyle" />
313        </case>
314        <case
315            latin:imeAction="actionNext"
316        >
317            <key-style
318                latin:styleName="enterKeyStyle"
319                latin:keySpec="!text/label_next_key|!code/key_enter"
320                latin:parentStyle="defaultEnterKeyStyle" />
321        </case>
322        <case
323            latin:imeAction="actionPrevious"
324            latin:isIconDefined="previous_key"
325        >
326            <key-style
327                latin:styleName="enterKeyStyle"
328                latin:keySpec="!icon/previous_key|!code/key_enter"
329                latin:backgroundType="action"
330                latin:parentStyle="defaultEnterKeyStyle" />
331        </case>
332        <case
333            latin:imeAction="actionPrevious"
334        >
335            <key-style
336                latin:styleName="enterKeyStyle"
337                latin:keySpec="!text/label_previous_key|!code/key_enter"
338                latin:parentStyle="defaultEnterKeyStyle" />
339        </case>
340        <case
341            latin:imeAction="actionDone"
342            latin:isIconDefined="done_key"
343        >
344            <key-style
345                latin:styleName="enterKeyStyle"
346                latin:keySpec="!icon/done_key|!code/key_enter"
347                latin:backgroundType="action"
348                latin:parentStyle="defaultEnterKeyStyle" />
349        </case>
350        <case
351            latin:imeAction="actionDone"
352        >
353            <key-style
354                latin:styleName="enterKeyStyle"
355                latin:keySpec="!text/label_done_key|!code/key_enter"
356                latin:parentStyle="defaultEnterKeyStyle" />
357        </case>
358        <case
359            latin:imeAction="actionSend"
360            latin:isIconDefined="send_key"
361        >
362            <key-style
363                latin:styleName="enterKeyStyle"
364                latin:keySpec="!icon/send_key|!code/key_enter"
365                latin:backgroundType="action"
366                latin:parentStyle="defaultEnterKeyStyle" />
367        </case>
368        <case
369            latin:imeAction="actionSend"
370        >
371            <key-style
372                latin:styleName="enterKeyStyle"
373                latin:keySpec="!text/label_send_key|!code/key_enter"
374                latin:parentStyle="defaultEnterKeyStyle" />
375        </case>
376        <case
377            latin:imeAction="actionSearch"
378            latin:isIconDefined="search_key"
379        >
380            <key-style
381                latin:styleName="enterKeyStyle"
382                latin:keySpec="!icon/search_key|!code/key_enter"
383                latin:backgroundType="action"
384                latin:parentStyle="defaultEnterKeyStyle" />
385        </case>
386        <case
387            latin:imeAction="actionSearch"
388        >
389            <key-style
390                latin:styleName="enterKeyStyle"
391                latin:keySpec="!text/label_search_key|!code/key_enter"
392                latin:parentStyle="defaultEnterKeyStyle" />
393        </case>
394        <case
395            latin:imeAction="actionCustomLabel"
396        >
397            <key-style
398                latin:styleName="enterKeyStyle"
399                latin:keySpec="dummy_label|!code/key_enter"
400                latin:keyLabelFlags="fromCustomActionLabel"
401                latin:backgroundType="customAction"
402                latin:parentStyle="defaultEnterKeyStyle" />
403        </case>
404        <!-- imeAction is either actionNone or actionUnspecified. -->
405        <default>
406            <key-style
407                latin:styleName="enterKeyStyle"
408                latin:keySpec="!icon/enter_key|!code/key_enter"
409                latin:parentStyle="defaultEnterKeyStyle" />
410        </default>
411    </switch>
412</merge>
413