1e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka/*
2e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka * Copyright (C) 2014 The Android Open Source Project
3e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka *
4e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka * Licensed under the Apache License, Version 2.0 (the "License");
5e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka * you may not use this file except in compliance with the License.
6e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka * You may obtain a copy of the License at
7e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka *
8e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka *      http://www.apache.org/licenses/LICENSE-2.0
9e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka *
10e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka * Unless required by applicable law or agreed to in writing, software
11e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka * distributed under the License is distributed on an "AS IS" BASIS,
12e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka * See the License for the specific language governing permissions and
14e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka * limitations under the License.
15e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka */
16e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka
17e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaokapackage com.android.inputmethod.keyboard.layout.tests;
18e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka
19e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaokaimport android.test.suitebuilder.annotation.SmallTest;
20e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka
21e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaokaimport com.android.inputmethod.keyboard.layout.LayoutBase;
22e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaokaimport com.android.inputmethod.keyboard.layout.Spanish;
236959a0f214fc18e314f54213877956d95a1631e8Tadashi G. Takaokaimport com.android.inputmethod.keyboard.layout.customizer.EuroCustomizer;
24e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaokaimport com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
25e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaokaimport com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
26e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka
27e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaokaimport java.util.Locale;
28e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka
29e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka/**
30e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka * ca: Catalan/spanish
31e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka */
32e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka@SmallTest
33e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaokapublic class TestsCatalan extends LayoutTestsBase {
34e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka    private static final Locale LOCALE = new Locale("ca");
35e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka    private static final LayoutBase LAYOUT = new Spanish(new CatalanCustomizer(LOCALE));
36e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka
37e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka    @Override
38e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka    LayoutBase getLayout() { return LAYOUT; }
39e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka
400dabae720a83f9099667dea4de002007fdf35d60Tadashi G. Takaoka    private static class CatalanCustomizer extends EuroCustomizer {
416959a0f214fc18e314f54213877956d95a1631e8Tadashi G. Takaoka        CatalanCustomizer(final Locale locale) { super(locale); }
42e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka
43e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka        @Override
44e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka        public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
456959a0f214fc18e314f54213877956d95a1631e8Tadashi G. Takaoka            return isPhone ? CATALAN_PHONE_PUNCTUATION_MORE_KEYS
466959a0f214fc18e314f54213877956d95a1631e8Tadashi G. Takaoka                    : CATALAN_TABLET_PUNCTUATION_MORE_KEYS;
47e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka        }
48e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka
49e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka        // U+00B7: "·" MIDDLE DOT
506959a0f214fc18e314f54213877956d95a1631e8Tadashi G. Takaoka        private static final ExpectedKey[] CATALAN_PHONE_PUNCTUATION_MORE_KEYS = joinKeys(
51844205ca2e657d0fb236070bad6e732246a5050eTadashi G. Takaoka                ",", "?", "!", "\u00B7", "#", ")", "(", "/", ";",
52844205ca2e657d0fb236070bad6e732246a5050eTadashi G. Takaoka                "'", "@", ":", "-", "\"", "+", "%", "&");
53e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka
546959a0f214fc18e314f54213877956d95a1631e8Tadashi G. Takaoka        private static final ExpectedKey[] CATALAN_TABLET_PUNCTUATION_MORE_KEYS = joinKeys(
55844205ca2e657d0fb236070bad6e732246a5050eTadashi G. Takaoka                ",", "'", "\u00B7", "#", ")", "(", "/", ";",
56844205ca2e657d0fb236070bad6e732246a5050eTadashi G. Takaoka                "@", ":", "-", "\"", "+", "%", "&");
57e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka
58e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka        @Override
59e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka        public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
60e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka            return builder
61e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
62e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
63e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
64e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
65e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
66e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
67e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
68e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    .setMoreKeysOf("e",
690dabae720a83f9099667dea4de002007fdf35d60Tadashi G. Takaoka                            "\u00E8", "\u00E9", "\u00EB", "\u00EA", "\u0119", "\u0117", "\u0113")
70e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
71e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
72e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
73e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
74e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
750dabae720a83f9099667dea4de002007fdf35d60Tadashi G. Takaoka                    .setMoreKeysOf("u", "\u00FA", "\u00FC", "\u00F9", "\u00FB", "\u016B")
76e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
77e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
78e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
79e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
80e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
81e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
820dabae720a83f9099667dea4de002007fdf35d60Tadashi G. Takaoka                    .setMoreKeysOf("i", "\u00ED", "\u00EF", "\u00EC", "\u00EE", "\u012F", "\u012B")
83e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
84e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
85e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
86e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
87e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
88e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
89e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+0153: "œ" LATIN SMALL LIGATURE OE
90e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
91e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00BA: "º" MASCULINE ORDINAL INDICATOR
92e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    .setMoreKeysOf("o",
930dabae720a83f9099667dea4de002007fdf35d60Tadashi G. Takaoka                            "\u00F2", "\u00F3", "\u00F6", "\u00F4", "\u00F5", "\u00F8", "\u0153",
940dabae720a83f9099667dea4de002007fdf35d60Tadashi G. Takaoka                            "\u014D", "\u00BA")
95e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
96e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
97e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
98e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
99e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
100e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
101e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
102e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00E6: "æ" LATIN SMALL LETTER AE
103e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
104e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00AA: "ª" FEMININE ORDINAL INDICATOR
105e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    .setMoreKeysOf("a",
106e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                            "\u00E0", "\u00E1", "\u00E4", "\u00E2", "\u00E3", "\u00E5", "\u0105",
107e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                            "\u00E6", "\u0101", "\u00AA")
108e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00B7: "·" MIDDLE DOT
109e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
110e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    .setMoreKeysOf("l", "l\u00B7l", "\u0142")
111e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
1120dabae720a83f9099667dea4de002007fdf35d60Tadashi G. Takaoka                    .replaceKeyOfLabel(Spanish.ROW2_10, "\u00E7")
113e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
114e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
115e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+010D: "č" LATIN SMALL LETTER C WITH CARON
116e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    .setMoreKeysOf("c", "\u00E7", "\u0107", "\u010D")
117e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
118e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
119e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka                    .setMoreKeysOf("n", "\u00F1", "\u0144");
120e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka        }
121e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka    }
122e4b742cce8910ce1eb9af7a0f4cf9163cb90da17Tadashi G. Takaoka}
123