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