aboutsummaryrefslogtreecommitdiffstats
path: root/tests/src
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src')
-rw-r--r--tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java4
-rw-r--r--tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java2
-rw-r--r--tests/src/com/android/inputmethod/keyboard/internal/KeySpecParserTestsBase.java15
-rw-r--r--tests/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSetTests.java15
-rw-r--r--tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecSplitTests.java15
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Arabic.java20
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/ArmenianPhonetic.java208
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Azerty.java26
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Bulgarian.java44
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/BulgarianBds.java46
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Colemak.java76
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Dvorak.java121
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/EastSlavic.java60
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Farsi.java25
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Georgian.java32
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Greek.java19
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Hebrew.java24
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Hindi.java35
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Khmer.java79
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Lao.java45
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java30
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Mongolian.java34
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/NepaliRomanized.java121
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/NepaliTraditional.java100
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Nordic.java26
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/PcQwerty.java227
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Qwerty.java24
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Qwertz.java24
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/SouthSlavic.java60
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Spanish.java24
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Swiss.java26
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Symbols.java9
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java24
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Thai.java102
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/expected/AbstractLayoutBase.java38
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKey.java206
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKeyboardBuilder.java132
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/EnglishCustomizer.java76
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/FrenchCustomizer.java89
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/GermanCustomizer.java86
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/LayoutTestsBase.java9
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/NoLanguageCustomizer.java159
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/PortugueseCustomizer.java80
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/SpanishCustomizer.java104
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsAfrikaans.java14
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsArmenianAMPhonetic.java38
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsAzerbaijaniAZ.java11
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBasqueES.java52
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBelarusianBY.java10
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCatalan.java26
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCroatian.java2
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCzech.java20
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDanish.java17
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDutch.java40
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDutchBE.java75
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishDvorak.java52
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishUK.java2
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishUS.java59
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEsperanto.java34
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEstonianEE.java29
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFinnish.java11
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrench.java76
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchCA.java67
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchCH.java60
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchDvorak.java62
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchQwertz.java68
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGalicianES.java52
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGerman.java69
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanCH.java61
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanDvorak.java75
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanQwerty.java69
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHungarian.java13
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsIcelandic.java16
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsItalian.java16
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKazakh.java14
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKyrgyz.java14
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLatvian.java21
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLithuanian.java21
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMacedonian.java12
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguage.java141
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguageColemak.java52
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguageDvorak.java52
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguagePcQwerty.java52
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNorwegian.java10
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPolish.java7
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPortugueseBR.java65
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPortuguesePT.java17
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsRomanian.java5
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsRussian.java10
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSerbian.java12
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSlovak.java25
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSlovenian.java4
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanish.java18
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanishUS.java86
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwahili.java10
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwedish.java24
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTagalog.java13
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTurkish.java12
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsUkrainian.java8
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsVietnamese.java18
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsZulu.java2
101 files changed, 2766 insertions, 1876 deletions
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java
index e691639a8..bbffc8dd5 100644
--- a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java
@@ -25,8 +25,8 @@ import java.util.ArrayList;
@SmallTest
public class KeyboardLayoutSetSubtypesCountTests extends KeyboardLayoutSetTestsBase {
- private static final int NUMBER_OF_SUBTYPES = 63;
- private static final int NUMBER_OF_ASCII_CAPABLE_SUBTYPES = 40;
+ private static final int NUMBER_OF_SUBTYPES = 66;
+ private static final int NUMBER_OF_ASCII_CAPABLE_SUBTYPES = 42;
private static final int NUMBER_OF_PREDEFINED_ADDITIONAL_SUBTYPES = 2;
private static String toString(final ArrayList<InputMethodSubtype> subtypeList) {
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java
index 0993c4b67..a4c69e023 100644
--- a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java
@@ -42,7 +42,7 @@ import java.util.Locale;
@SmallTest
public class KeyboardLayoutSetTestsBase extends AndroidTestCase {
private static final KeyboardTheme DEFAULT_KEYBOARD_THEME =
- KeyboardSwitcher.KEYBOARD_THEMES[KeyboardSwitcher.THEME_INDEX_DEFAULT];
+ KeyboardSwitcher.KEYBOARD_THEMES[KeyboardSwitcher.DEFAULT_THEME_INDEX];
// All input method subtypes of LatinIME.
private final ArrayList<InputMethodSubtype> mAllSubtypesList = CollectionUtils.newArrayList();
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/KeySpecParserTestsBase.java b/tests/src/com/android/inputmethod/keyboard/internal/KeySpecParserTestsBase.java
index c342533c8..7923afc1a 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/KeySpecParserTestsBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/KeySpecParserTestsBase.java
@@ -22,12 +22,8 @@ import static com.android.inputmethod.keyboard.internal.KeyboardIconsSet.PREFIX_
import static com.android.inputmethod.latin.Constants.CODE_OUTPUT_TEXT;
import static com.android.inputmethod.latin.Constants.CODE_UNSPECIFIED;
-import android.content.Context;
-import android.content.res.Resources;
import android.test.AndroidTestCase;
-import com.android.inputmethod.latin.utils.RunInLocale;
-
import java.util.Locale;
abstract class KeySpecParserTestsBase extends AndroidTestCase {
@@ -51,16 +47,7 @@ abstract class KeySpecParserTestsBase extends AndroidTestCase {
protected void setUp() throws Exception {
super.setUp();
- mTextsSet.setLocale(TEST_LOCALE);
- final Context context = getContext();
- new RunInLocale<Void>() {
- @Override
- protected Void job(final Resources res) {
- mTextsSet.loadStringResources(context);
- return null;
- }
- }.runInLocale(context.getResources(), TEST_LOCALE);
-
+ mTextsSet.setLocale(TEST_LOCALE, getContext());
mCodeSettings = KeyboardCodesSet.getCode(CODE_SETTINGS_NAME);
mCodeActionNext = KeyboardCodesSet.getCode("key_action_next");
mSettingsIconId = KeyboardIconsSet.getIconId(ICON_SETTINGS_NAME);
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSetTests.java b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSetTests.java
index 17d768718..eb906cd9f 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSetTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSetTests.java
@@ -17,7 +17,6 @@
package com.android.inputmethod.keyboard.internal;
import android.content.Context;
-import android.content.res.Resources;
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;
import android.view.inputmethod.InputMethodInfo;
@@ -25,7 +24,6 @@ import android.view.inputmethod.InputMethodSubtype;
import com.android.inputmethod.latin.RichInputMethodManager;
import com.android.inputmethod.latin.utils.CollectionUtils;
-import com.android.inputmethod.latin.utils.RunInLocale;
import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
import java.util.ArrayList;
@@ -58,10 +56,11 @@ public final class KeyboardTextsSetTests extends AndroidTestCase {
// subtypes. The text is needed to implement Emoji Keyboard, see
// {@link KeyboardSwitcher#setEmojiKeyboard()}.
public void testSwitchToAlphaKeyLabel() {
+ final Context context = getContext();
final KeyboardTextsSet textsSet = new KeyboardTextsSet();
for (final InputMethodSubtype subtype : mAllSubtypesList) {
final Locale locale = SubtypeLocaleUtils.getSubtypeLocale(subtype);
- textsSet.setLocale(locale);
+ textsSet.setLocale(locale, context);
final String switchToAlphaKeyLabel = textsSet.getText(
KeyboardTextsSet.SWITCH_TO_ALPHA_KEY_LABEL);
assertNotNull("Switch to alpha key label of " + locale, switchToAlphaKeyLabel);
@@ -87,15 +86,7 @@ public final class KeyboardTextsSetTests extends AndroidTestCase {
final KeyboardTextsSet textsSet = new KeyboardTextsSet();
for (final InputMethodSubtype subtype : mAllSubtypesList) {
final Locale locale = SubtypeLocaleUtils.getSubtypeLocale(subtype);
- textsSet.setLocale(locale);
- final RunInLocale<Void> job = new RunInLocale<Void>() {
- @Override
- protected Void job(final Resources res) {
- textsSet.loadStringResources(context);
- return null;
- }
- };
- job.runInLocale(context.getResources(), locale);
+ textsSet.setLocale(locale, context);
for (final String name : TEXT_NAMES_FROM_RESOURCE) {
final String text = textsSet.getText(name);
assertNotNull(name + " of " + locale, text);
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecSplitTests.java b/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecSplitTests.java
index 42a94f420..a1933076a 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecSplitTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecSplitTests.java
@@ -23,7 +23,6 @@ import android.test.InstrumentationTestCase;
import android.test.suitebuilder.annotation.MediumTest;
import com.android.inputmethod.latin.utils.CollectionUtils;
-import com.android.inputmethod.latin.utils.RunInLocale;
import java.lang.reflect.Field;
import java.util.ArrayList;
@@ -41,20 +40,16 @@ public class MoreKeySpecSplitTests extends InstrumentationTestCase {
final Instrumentation instrumentation = getInstrumentation();
final Context targetContext = instrumentation.getTargetContext();
- mTextsSet.setLocale(TEST_LOCALE);
- new RunInLocale<Void>() {
- @Override
- protected Void job(final Resources res) {
- mTextsSet.loadStringResources(targetContext);
- return null;
- }
- }.runInLocale(targetContext.getResources(), TEST_LOCALE);
+ mTextsSet.setLocale(TEST_LOCALE, targetContext);
final String[] testResourceNames = getAllResourceIdNames(
com.android.inputmethod.latin.tests.R.string.class);
- mTextsSet.loadStringResourcesInternal(instrumentation.getContext(), testResourceNames,
+ final Context testContext = instrumentation.getContext();
+ final Resources testRes = testContext.getResources();
+ final String testResPackageName = testRes.getResourcePackageName(
// This dummy raw resource is needed to be able to load string resources from a test
// APK successfully.
com.android.inputmethod.latin.tests.R.raw.dummy_resource_for_testing);
+ mTextsSet.loadStringResourcesInternal(testRes, testResourceNames, testResPackageName);
}
private static String[] getAllResourceIdNames(final Class<?> resourceIdClass) {
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Arabic.java b/tests/src/com/android/inputmethod/keyboard/layout/Arabic.java
index 444730a2e..b0493d3f1 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Arabic.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Arabic.java
@@ -72,7 +72,7 @@ public final class Arabic extends LayoutBase {
public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
if (isPhone) {
// U+060C: "،" ARABIC COMMA
- return joinKeys(key("\u060C", joinMoreKeys(",", SETTINGS_KEY)));
+ return joinKeys(key("\u060C", SETTINGS_KEY));
}
return super.getKeysLeftToSpacebar(isPhone);
}
@@ -142,7 +142,7 @@ public final class Arabic extends LayoutBase {
} else {
final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(ALPHABET_COMMON);
// U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE
- builder.insertKeysAtRow(3, 2, key("\u0626"));
+ builder.insertKeysAtRow(3, 2, "\u0626");
return builder.build();
}
}
@@ -198,7 +198,7 @@ public final class Arabic extends LayoutBase {
// U+069C: "ڜ" ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE
key("\u0634", moreKey("\u069C")),
// U+0633: "س" ARABIC LETTER SEEN
- key("\u0633"),
+ "\u0633",
// U+064A: "ي" ARABIC LETTER YEH
// U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE
// U+0649: "ى" ARABIC LETTER ALEF MAKSURA
@@ -226,18 +226,16 @@ public final class Arabic extends LayoutBase {
// U+0671: "ٱ" ARABIC LETTER ALEF WASLA
key("\u0627", joinMoreKeys("\u0622", "\u0621", "\u0623", "\u0625", "\u0671")),
// U+062A: "ت" ARABIC LETTER TEH
- key("\u062A"),
// U+0646: "ن" ARABIC LETTER NOON
- key("\u0646"),
// U+0645: "م" ARABIC LETTER MEEM
- key("\u0645"),
+ "\u062A", "\u0646", "\u0645",
// U+0643: "ك" ARABIC LETTER KAF
// U+06AF: "گ" ARABIC LETTER GAF
// U+06A9: "ک" ARABIC LETTER KEHEH
key("\u0643", joinMoreKeys("\u06AF", "\u06A9")),
// U+0637: "ط" ARABIC LETTER TAH
- key("\u0637"))
- .setKeysOfRow(3, joinKeys(
+ "\u0637")
+ .setKeysOfRow(3,
// U+0630: "ذ" ARABIC LETTER THAL
// U+0621: "ء" ARABIC LETTER HAMZA
// U+0624: "ؤ" ARABIC LETTER WAW WITH HAMZA ABOVE
@@ -254,7 +252,7 @@ public final class Arabic extends LayoutBase {
key("\u0632", moreKey("\u0698")),
// U+0638: "ظ" ARABIC LETTER ZAH
// U+062F: "د" ARABIC LETTER DAL
- "\u0638", "\u062F"))
+ "\u0638", "\u062F")
.build();
private static class ArabicSymbols extends RtlSymbols {
@@ -314,7 +312,7 @@ public final class Arabic extends LayoutBase {
// U+00BF: "¿" INVERTED QUESTION MARK
.replaceKeyOfLabel("?", key("\u061F", joinMoreKeys("?", "\u00BF")))
// U+060C: "،" ARABIC COMMA
- .replaceKeyOfLabel(",", key("\u060C", moreKey(",")))
+ .replaceKeyOfLabel(",", "\u060C")
// U+FD3E: "﴾" ORNATE LEFT PARENTHESIS
// U+FD3F: "﴿" ORNATE RIGHT PARENTHESIS
.replaceKeyOfLabel("(", key("(", ")",
@@ -344,7 +342,7 @@ public final class Arabic extends LayoutBase {
// U+266A: "♪" EIGHTH NOTE
.setMoreKeysOf("\u2022", "\u266A")
// U+060C: "،" ARABIC COMMA
- .replaceKeyOfLabel(",", key("\u060C", moreKey(",")))
+ .replaceKeyOfLabel(",", "\u060C")
.build();
}
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/ArmenianPhonetic.java b/tests/src/com/android/inputmethod/keyboard/layout/ArmenianPhonetic.java
new file mode 100644
index 000000000..204bb01f7
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/ArmenianPhonetic.java
@@ -0,0 +1,208 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.keyboard.layout;
+
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.latin.Constants;
+
+import java.util.Locale;
+
+/**
+ * The Armenian Phonetic alphabet keyboard.
+ */
+public final class ArmenianPhonetic extends LayoutBase {
+ private static final String LAYOUT_NAME = "armenian_phonetic";
+
+ public ArmenianPhonetic(final LayoutCustomizer customizer) {
+ super(customizer, ArmenianSymbols.class, SymbolsShifted.class);
+ }
+
+ @Override
+ public String getName() { return LAYOUT_NAME; }
+
+ public static class ArmenianPhoneticCustomizer extends LayoutCustomizer {
+ public ArmenianPhoneticCustomizer(final Locale locale) { super(locale); }
+
+ @Override
+ public ExpectedKey getAlphabetKey() { return ARMENIAN_ALPHABET_KEY; }
+
+ @Override
+ public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+ if (isPhone) {
+ return EMPTY_KEYS;
+ }
+ // U+055C: "՜" ARMENIAN EXCLAMATION MARK
+ // U+00A1: "¡" INVERTED EXCLAMATION MARK
+ // U+055E: "՞" ARMENIAN QUESTION MARK
+ // U+00BF: "¿" INVERTED QUESTION MARK
+ return joinKeys(key("!", joinMoreKeys("\u055C", "\u00A1")),
+ key("?", joinMoreKeys("\u055E", "\u00BF")),
+ SHIFT_KEY);
+ }
+
+ @Override
+ public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
+ // U+0589: "։" ARMENIAN FULL STOP
+ // U+055D: "՝" ARMENIAN COMMA
+ final ExpectedKey fullStopKey = key("\u0589", getPunctuationMoreKeys(isPhone));
+ return isPhone ? joinKeys(fullStopKey) : joinKeys("\u055D", fullStopKey);
+ }
+
+ @Override
+ public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
+ return ARMENIAN_PUNCTUATION_MORE_KEYS;
+ }
+
+ // U+0531: "Ա" ARMENIAN CAPITAL LETTER AYB
+ // U+0532: "Բ" ARMENIAN CAPITAL LETTER BEN
+ // U+0533: "Գ" ARMENIAN CAPITAL LETTER GIM
+ private static final ExpectedKey ARMENIAN_ALPHABET_KEY = key(
+ "\u0531\u0532\u0533", Constants.CODE_SWITCH_ALPHA_SYMBOL);
+
+ // U+055E: "՞" ARMENIAN QUESTION MARK
+ // U+055C: "՜" ARMENIAN EXCLAMATION MARK
+ // U+055A: "՚" ARMENIAN APOSTROPHE
+ // U+0559: "ՙ" ARMENIAN MODIFIER LETTER LEFT HALF RING
+ // U+055D: "՝" ARMENIAN COMMA
+ // U+055B: "՛" ARMENIAN EMPHASIS MARK
+ // U+058A: "֊" ARMENIAN HYPHEN
+ // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ // U+055F: "՟" ARMENIAN ABBREVIATION MARK
+ private static final ExpectedKey[] ARMENIAN_PUNCTUATION_MORE_KEYS = joinMoreKeys(
+ ",", "\u055E", "\u055C", ".", "\u055A", "\u0559", "?", "!",
+ "\u055D", "\u055B", "\u058A", "\u00BB", "\u00AB", "\u055F", ";", ":");
+ }
+
+ @Override
+ ExpectedKey[][] getCommonAlphabetLayout(final boolean isPhone) {
+ final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(ALPHABET_COMMON);
+ if (isPhone) {
+ // U+056D: "խ" ARMENIAN SMALL LETTER XEH
+ // U+0577: "շ" ARMENIAN SMALL LETTER SHA
+ builder.addKeysOnTheRightOfRow(3, "\u056D")
+ .addKeysOnTheRightOfRow(4, "\u0577");
+ } else {
+ // U+056D: "խ" ARMENIAN SMALL LETTER XEH
+ // U+0577: "շ" ARMENIAN SMALL LETTER SHA
+ builder.addKeysOnTheRightOfRow(2, "\u056D")
+ .addKeysOnTheRightOfRow(3, "\u0577");
+ }
+ return builder.build();
+ }
+
+ // Helper method to create alphabet layout by adding special function keys.
+ @Override
+ ExpectedKeyboardBuilder convertCommonLayoutToKeyboard(final ExpectedKeyboardBuilder builder,
+ final boolean isPhone) {
+ final LayoutCustomizer customizer = getCustomizer();
+ builder.setKeysOfRow(5, (Object[])customizer.getSpaceKeys(isPhone));
+ builder.addKeysOnTheLeftOfRow(5, (Object[])customizer.getKeysLeftToSpacebar(isPhone));
+ builder.addKeysOnTheRightOfRow(5, (Object[])customizer.getKeysRightToSpacebar(isPhone));
+ if (isPhone) {
+ builder.addKeysOnTheRightOfRow(4, DELETE_KEY)
+ .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey())
+ .addKeysOnTheRightOfRow(5, key(ENTER_KEY, EMOJI_KEY));
+ } else {
+ builder.addKeysOnTheRightOfRow(1, DELETE_KEY)
+ .addKeysOnTheRightOfRow(3, ENTER_KEY)
+ .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey(), SETTINGS_KEY)
+ .addKeysOnTheRightOfRow(5, EMOJI_KEY);
+ }
+ builder.addKeysOnTheLeftOfRow(4, (Object[])customizer.getLeftShiftKeys(isPhone))
+ .addKeysOnTheRightOfRow(4, (Object[])customizer.getRightShiftKeys(isPhone));
+ return builder;
+ }
+
+ private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
+ .setKeysOfRow(1,
+ // U+0567: "է" ARMENIAN SMALL LETTER EH
+ key("\u0567", moreKey("1")),
+ // U+0569: "թ" ARMENIAN SMALL LETTER TO
+ key("\u0569", moreKey("2")),
+ // U+0583: "փ" ARMENIAN SMALL LETTER PIWR
+ key("\u0583", moreKey("3")),
+ // U+0571: "ձ" ARMENIAN SMALL LETTER JA
+ key("\u0571", moreKey("4")),
+ // U+057B: "ջ" ARMENIAN SMALL LETTER JHEH
+ key("\u057B", moreKey("5")),
+ // U+0580: "ր" ARMENIAN SMALL LETTER REH
+ key("\u0580", moreKey("6")),
+ // U+0579: "չ" ARMENIAN SMALL LETTER CHA
+ key("\u0579", moreKey("7")),
+ // U+0573: "ճ" ARMENIAN SMALL LETTER CHEH
+ key("\u0573", moreKey("8")),
+ // U+056A: "ժ" ARMENIAN SMALL LETTER ZHE
+ key("\u056A", moreKey("9")),
+ // U+056E: "ծ" ARMENIAN SMALL LETTER CA
+ key("\u056E", moreKey("0")))
+ .setKeysOfRow(2,
+ // U+0584: "ք" ARMENIAN SMALL LETTER KEH
+ // U+0578: "ո" ARMENIAN SMALL LETTER VO
+ "\u0584", "\u0578",
+ // U+0565: "ե" ARMENIAN SMALL LETTER ECH
+ // U+0587: "և" ARMENIAN SMALL LIGATURE ECH YIWN
+ key("\u0565", moreKey("\u0587")),
+ // U+057C: "ռ" ARMENIAN SMALL LETTER RA
+ // U+057F: "տ" ARMENIAN SMALL LETTER TIWN
+ // U+0568: "ը" ARMENIAN SMALL LETTER ET
+ // U+0582: "ւ" ARMENIAN SMALL LETTER YIWN
+ // U+056B: "ի" ARMENIAN SMALL LETTER INI
+ // U+0585: "օ" ARMENIAN SMALL LETTER OH
+ // U+057A: "պ" ARMENIAN SMALL LETTER PEH
+ "\u057C", "\u057F", "\u0568", "\u0582", "\u056B", "\u0585", "\u057A")
+ .setKeysOfRow(3,
+ // U+0561: "ա" ARMENIAN SMALL LETTER AYB
+ // U+057D: "ս" ARMENIAN SMALL LETTER SEH
+ // U+0564: "դ" ARMENIAN SMALL LETTER DA
+ // U+0586: "ֆ" ARMENIAN SMALL LETTER FEH
+ // U+0563: "գ" ARMENIAN SMALL LETTER GIM
+ // U+0570: "հ" ARMENIAN SMALL LETTER HO
+ // U+0575: "յ" ARMENIAN SMALL LETTER YI
+ // U+056F: "կ" ARMENIAN SMALL LETTER KEN
+ // U+056C: "լ" ARMENIAN SMALL LETTER LIWN
+ "\u0561", "\u057D", "\u0564", "\u0586", "\u0563", "\u0570", "\u0575", "\u056F",
+ "\u056C")
+ .setKeysOfRow(4,
+ // U+0566: "զ" ARMENIAN SMALL LETTER ZA
+ // U+0572: "ղ" ARMENIAN SMALL LETTER GHAD
+ // U+0581: "ց" ARMENIAN SMALL LETTER CO
+ // U+057E: "վ" ARMENIAN SMALL LETTER VEW
+ // U+0562: "բ" ARMENIAN SMALL LETTER BEN
+ // U+0576: "ն" ARMENIAN SMALL LETTER NOW
+ // U+0574: "մ" ARMENIAN SMALL LETTER MEN
+ "\u0566", "\u0572", "\u0581", "\u057E", "\u0562", "\u0576", "\u0574")
+ .build();
+
+ private static final class ArmenianSymbols extends Symbols {
+ public ArmenianSymbols(final LayoutCustomizer customizer) { super(customizer); }
+
+ @Override
+ public ExpectedKey[][] getLayout(final boolean isPhone) {
+ final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(
+ super.getLayout(isPhone));
+ // U+055C: "՜" ARMENIAN EXCLAMATION MARK
+ // U+00A1: "¡" INVERTED EXCLAMATION MARK
+ // U+055E: "՞" ARMENIAN QUESTION MARK
+ // U+00BF: "¿" INVERTED QUESTION MARK
+ builder.setMoreKeysOf("!", "\u055C", "\u00A1")
+ .setMoreKeysOf("?", "\u055E", "\u00BF");
+ return builder.build();
+ }
+ }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Azerty.java b/tests/src/com/android/inputmethod/keyboard/layout/Azerty.java
index 24d85cf76..a0949637b 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Azerty.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Azerty.java
@@ -51,7 +51,7 @@ public final class Azerty extends LayoutBase {
} else {
builder = new ExpectedKeyboardBuilder(ALPHABET_COMMON);
getCustomizer().setAccentedLetters(builder);
- builder.replaceKeyOfLabel(ROW3_QUOTE, key("?"));
+ builder.replaceKeyOfLabel(ROW3_QUOTE, "?");
}
builder.toUpperCase(getLocale());
return builder.build();
@@ -61,17 +61,17 @@ public final class Azerty extends LayoutBase {
private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
.setKeysOfRow(1,
- key("a", moreKey("1")),
- key("z", moreKey("2")),
- key("e", moreKey("3")),
- key("r", moreKey("4")),
- key("t", moreKey("5")),
- key("y", moreKey("6")),
- key("u", moreKey("7")),
- key("i", moreKey("8")),
- key("o", moreKey("9")),
- key("p", moreKey("0")))
- .setLabelsOfRow(2, "q", "s", "d", "f", "g", "h", "j", "k", "l", "m")
- .setLabelsOfRow(3, "w", "x", "c", "v", "b", "n", ROW3_QUOTE)
+ key("a", additionalMoreKey("1")),
+ key("z", additionalMoreKey("2")),
+ key("e", additionalMoreKey("3")),
+ key("r", additionalMoreKey("4")),
+ key("t", additionalMoreKey("5")),
+ key("y", additionalMoreKey("6")),
+ key("u", additionalMoreKey("7")),
+ key("i", additionalMoreKey("8")),
+ key("o", additionalMoreKey("9")),
+ key("p", additionalMoreKey("0")))
+ .setKeysOfRow(2, "q", "s", "d", "f", "g", "h", "j", "k", "l", "m")
+ .setKeysOfRow(3, "w", "x", "c", "v", "b", "n", ROW3_QUOTE)
.build();
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Bulgarian.java b/tests/src/com/android/inputmethod/keyboard/layout/Bulgarian.java
index a1ad54957..3282e44ae 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Bulgarian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Bulgarian.java
@@ -76,30 +76,30 @@ public final class Bulgarian extends LayoutBase {
// U+043F: "п" CYRILLIC SMALL LETTER PE
key("\u043F", moreKey("0")),
// U+0447: "ч" CYRILLIC SMALL LETTER CHE
- key("\u0447"))
- // U+0430: "а" CYRILLIC SMALL LETTER A
- // U+0441: "с" CYRILLIC SMALL LETTER ES
- // U+0434: "д" CYRILLIC SMALL LETTER DE
- // U+0444: "ф" CYRILLIC SMALL LETTER EF
- // U+0433: "г" CYRILLIC SMALL LETTER GHE
- // U+0445: "х" CYRILLIC SMALL LETTER HA
- // U+0439: "й" CYRILLIC SMALL LETTER SHORT I
- // U+043A: "к" CYRILLIC SMALL LETTER KA
- // U+043B: "л" CYRILLIC SMALL LETTER EL
- // U+0448: "ш" CYRILLIC SMALL LETTER SHA
- // U+0449: "щ" CYRILLIC SMALL LETTER SHCHA
- .setLabelsOfRow(2,
+ "\u0447")
+ .setKeysOfRow(2,
+ // U+0430: "а" CYRILLIC SMALL LETTER A
+ // U+0441: "с" CYRILLIC SMALL LETTER ES
+ // U+0434: "д" CYRILLIC SMALL LETTER DE
+ // U+0444: "ф" CYRILLIC SMALL LETTER EF
+ // U+0433: "г" CYRILLIC SMALL LETTER GHE
+ // U+0445: "х" CYRILLIC SMALL LETTER HA
+ // U+0439: "й" CYRILLIC SMALL LETTER SHORT I
+ // U+043A: "к" CYRILLIC SMALL LETTER KA
+ // U+043B: "л" CYRILLIC SMALL LETTER EL
+ // U+0448: "ш" CYRILLIC SMALL LETTER SHA
+ // U+0449: "щ" CYRILLIC SMALL LETTER SHCHA
"\u0430", "\u0441", "\u0434", "\u0444", "\u0433", "\u0445", "\u0439", "\u043A",
"\u043B", "\u0448", "\u0449")
- // U+0437: "з" CYRILLIC SMALL LETTER ZE
- // U+044C: "ь" CYRILLIC SMALL LETTER SOFT SIGN
- // U+0446: "ц" CYRILLIC SMALL LETTER TSE
- // U+0436: "ж" CYRILLIC SMALL LETTER ZHE
- // U+0431: "б" CYRILLIC SMALL LETTER BE
- // U+043D: "н" CYRILLIC SMALL LETTER EN
- // U+043C: "м" CYRILLIC SMALL LETTER EM
- // U+044E: "ю" CYRILLIC SMALL LETTER YU
- .setLabelsOfRow(3,
+ .setKeysOfRow(3,
+ // U+0437: "з" CYRILLIC SMALL LETTER ZE
+ // U+044C: "ь" CYRILLIC SMALL LETTER SOFT SIGN
+ // U+0446: "ц" CYRILLIC SMALL LETTER TSE
+ // U+0436: "ж" CYRILLIC SMALL LETTER ZHE
+ // U+0431: "б" CYRILLIC SMALL LETTER BE
+ // U+043D: "н" CYRILLIC SMALL LETTER EN
+ // U+043C: "м" CYRILLIC SMALL LETTER EM
+ // U+044E: "ю" CYRILLIC SMALL LETTER YU
"\u0437", "\u044C", "\u0446", "\u0436", "\u0431", "\u043D", "\u043C", "\u044E")
.build();
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/BulgarianBds.java b/tests/src/com/android/inputmethod/keyboard/layout/BulgarianBds.java
index b47b59216..20a5f7dac 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/BulgarianBds.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/BulgarianBds.java
@@ -66,31 +66,31 @@ public final class BulgarianBds extends LayoutBase {
// U+0446: "ц" CYRILLIC SMALL LETTER TSE
key("\u0446", moreKey("0")),
// U+0431: "б" CYRILLIC SMALL LETTER BE
- key("\u0431"))
- // U+044C: "ь" CYRILLIC SMALL LETTER SOFT SIGN
- // U+044F: "я" CYRILLIC SMALL LETTER YA
- // U+0430: "а" CYRILLIC SMALL LETTER A
- // U+043E: "о" CYRILLIC SMALL LETTER O
- // U+0436: "ж" CYRILLIC SMALL LETTER ZHE
- // U+0433: "г" CYRILLIC SMALL LETTER GHE
- // U+0442: "т" CYRILLIC SMALL LETTER TE
- // U+043D: "н" CYRILLIC SMALL LETTER EN
- // U+0432: "в" CYRILLIC SMALL LETTER VE
- // U+043C: "м" CYRILLIC SMALL LETTER EM
- // U+0447: "ч" CYRILLIC SMALL LETTER CHE
- .setLabelsOfRow(2,
+ "\u0431")
+ .setKeysOfRow(2,
+ // U+044C: "ь" CYRILLIC SMALL LETTER SOFT SIGN
+ // U+044F: "я" CYRILLIC SMALL LETTER YA
+ // U+0430: "а" CYRILLIC SMALL LETTER A
+ // U+043E: "о" CYRILLIC SMALL LETTER O
+ // U+0436: "ж" CYRILLIC SMALL LETTER ZHE
+ // U+0433: "г" CYRILLIC SMALL LETTER GHE
+ // U+0442: "т" CYRILLIC SMALL LETTER TE
+ // U+043D: "н" CYRILLIC SMALL LETTER EN
+ // U+0432: "в" CYRILLIC SMALL LETTER VE
+ // U+043C: "м" CYRILLIC SMALL LETTER EM
+ // U+0447: "ч" CYRILLIC SMALL LETTER CHE
"\u044C", "\u044F", "\u0430", "\u043E", "\u0436", "\u0433", "\u0442", "\u043D",
"\u0432", "\u043C", "\u0447")
- // U+044E: "ю" CYRILLIC SMALL LETTER YU
- // U+0439: "й" CYRILLIC SMALL LETTER SHORT I
- // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN
- // U+044D: "э" CYRILLIC SMALL LETTER E
- // U+0444: "ф" CYRILLIC SMALL LETTER EF
- // U+0445: "х" CYRILLIC SMALL LETTER HA
- // U+043F: "п" CYRILLIC SMALL LETTER PE
- // U+0440: "р" CYRILLIC SMALL LETTER ER
- // U+043B: "л" CYRILLIC SMALL LETTER EL
- .setLabelsOfRow(3,
+ .setKeysOfRow(3,
+ // U+044E: "ю" CYRILLIC SMALL LETTER YU
+ // U+0439: "й" CYRILLIC SMALL LETTER SHORT I
+ // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN
+ // U+044D: "э" CYRILLIC SMALL LETTER E
+ // U+0444: "ф" CYRILLIC SMALL LETTER EF
+ // U+0445: "х" CYRILLIC SMALL LETTER HA
+ // U+043F: "п" CYRILLIC SMALL LETTER PE
+ // U+0440: "р" CYRILLIC SMALL LETTER ER
+ // U+043B: "л" CYRILLIC SMALL LETTER EL
"\u044E", "\u0439", "\u044A", "\u044D", "\u0444", "\u0445", "\u043F", "\u0440",
"\u043B")
.build();
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Colemak.java b/tests/src/com/android/inputmethod/keyboard/layout/Colemak.java
new file mode 100644
index 000000000..a4a9701cd
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Colemak.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.keyboard.layout;
+
+import com.android.inputmethod.keyboard.KeyboardId;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+/**
+ * The Colemak alphabet keyboard.
+ */
+public final class Colemak extends LayoutBase {
+ private static final String LAYOUT_NAME = "colemak";
+
+ public Colemak(final LayoutCustomizer customizer) {
+ super(customizer, Symbols.class, SymbolsShifted.class);
+ }
+
+ @Override
+ public String getName() { return LAYOUT_NAME; }
+
+ @Override
+ ExpectedKey[][] getCommonAlphabetLayout(final boolean isPhone) {
+ final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(ALPHABET_COMMON);
+ getCustomizer().setAccentedLetters(builder);
+ builder.replaceKeyOfLabel(ROW1_10, key(";", additionalMoreKey("0"), moreKey(":")));
+ return builder.build();
+ }
+
+ @Override
+ ExpectedKey[][] getCommonAlphabetShiftLayout(final boolean isPhone, final int elementId) {
+ final ExpectedKeyboardBuilder builder;
+ if (elementId == KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED
+ || elementId == KeyboardId.ELEMENT_ALPHABET_SHIFT_LOCKED) {
+ builder = new ExpectedKeyboardBuilder(getCommonAlphabetLayout(isPhone));
+ } else {
+ builder = new ExpectedKeyboardBuilder(ALPHABET_COMMON);
+ getCustomizer().setAccentedLetters(builder);
+ builder.replaceKeyOfLabel(ROW1_10, key(":", additionalMoreKey("0")));
+ }
+ builder.toUpperCase(getLocale());
+ return builder.build();
+ }
+
+ private static final String ROW1_10 = "ROW1_10";
+
+ private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
+ .setKeysOfRow(1,
+ key("q", additionalMoreKey("1")),
+ key("w", additionalMoreKey("2")),
+ key("f", additionalMoreKey("3")),
+ key("p", additionalMoreKey("4")),
+ key("g", additionalMoreKey("5")),
+ key("j", additionalMoreKey("6")),
+ key("l", additionalMoreKey("7")),
+ key("u", additionalMoreKey("8")),
+ key("y", additionalMoreKey("9")),
+ ROW1_10)
+ .setKeysOfRow(2, "a", "r", "s", "t", "d", "h", "n", "e", "i", "o")
+ .setKeysOfRow(3, "z", "x", "c", "v", "b", "k", "m")
+ .build();
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Dvorak.java b/tests/src/com/android/inputmethod/keyboard/layout/Dvorak.java
new file mode 100644
index 000000000..99cf6e50e
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Dvorak.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.keyboard.layout;
+
+import com.android.inputmethod.keyboard.KeyboardId;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey.ExpectedAdditionalMoreKey;
+
+import java.util.Locale;
+
+/**
+ * The QWERTY alphabet keyboard.
+ */
+public final class Dvorak extends LayoutBase {
+ private static final String LAYOUT_NAME = "dvorak";
+
+ public Dvorak(final LayoutCustomizer customizer) {
+ super(customizer, Symbols.class, SymbolsShifted.class);
+ }
+
+ @Override
+ public String getName() { return LAYOUT_NAME; }
+
+ public static class DvorakCustomizer extends LayoutCustomizer {
+ public DvorakCustomizer(final Locale locale) { super(locale); }
+
+ @Override
+ public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
+ return isPhone ? joinKeys(SHIFT_KEY): joinKeys(SHIFT_KEY, key("q"));
+ }
+
+ @Override
+ public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+ return isPhone ? EMPTY_KEYS : joinKeys(key("z"), SHIFT_KEY);
+ }
+
+ @Override
+ public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
+ return isPhone ? joinKeys(key("q", SHORTCUT_KEY, SETTINGS_KEY)) : joinKeys(key("/"));
+ }
+
+ @Override
+ public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
+ final ExpectedAdditionalMoreKey[] punctuationMoreKeys =
+ convertToAdditionalMoreKeys(getPunctuationMoreKeys(isPhone));
+ return isPhone
+ ? joinKeys(key("z", punctuationMoreKeys))
+ : joinKeys(key("?", moreKey("!")), key("-", moreKey("_")));
+ }
+
+ private static ExpectedAdditionalMoreKey[] convertToAdditionalMoreKeys(
+ final ExpectedKey ... moreKeys) {
+ final ExpectedAdditionalMoreKey[] additionalMoreKeys =
+ new ExpectedAdditionalMoreKey[moreKeys.length];
+ for (int index = 0; index < moreKeys.length; index++) {
+ additionalMoreKeys[index] = ExpectedAdditionalMoreKey.newInstance(moreKeys[index]);
+ }
+ return additionalMoreKeys;
+ }
+ }
+
+ @Override
+ ExpectedKey[][] getCommonAlphabetLayout(final boolean isPhone) { return ALPHABET_COMMON; }
+
+ @Override
+ public ExpectedKey[][] getLayout(final boolean isPhone, final int elementId) {
+ if (elementId == KeyboardId.ELEMENT_SYMBOLS
+ || elementId == KeyboardId.ELEMENT_SYMBOLS_SHIFTED) {
+ return super.getLayout(isPhone, elementId);
+ }
+ final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(
+ getCommonAlphabetLayout(isPhone));
+ if (elementId == KeyboardId.ELEMENT_ALPHABET
+ || elementId == KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED) {
+ builder.addKeysOnTheLeftOfRow(1,
+ key("'", joinMoreKeys(additionalMoreKey("1"), "!", "\"")),
+ key(",", joinMoreKeys(additionalMoreKey("2"), "?", "<")),
+ key(".", joinMoreKeys(additionalMoreKey("3"), ">")));
+ } else {
+ builder.addKeysOnTheLeftOfRow(1,
+ key("\"", additionalMoreKey("1")),
+ key("<", additionalMoreKey("2")),
+ key(">", additionalMoreKey("3")));
+ }
+ convertCommonLayoutToKeyboard(builder, isPhone);
+ getCustomizer().setAccentedLetters(builder);
+ if (elementId != KeyboardId.ELEMENT_ALPHABET) {
+ builder.toUpperCase(getLocale());
+ builder.replaceKeysOfAll(SHIFT_KEY, SHIFTED_SHIFT_KEY);
+ }
+ return builder.build();
+ }
+
+ private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
+ .setKeysOfRow(1,
+ key("p", additionalMoreKey("4")),
+ key("y", additionalMoreKey("5")),
+ key("f", additionalMoreKey("6")),
+ key("g", additionalMoreKey("7")),
+ key("c", additionalMoreKey("8")),
+ key("r", additionalMoreKey("9")),
+ key("l", additionalMoreKey("0")))
+ .setKeysOfRow(2, "a", "o", "e", "u", "i", "d", "h", "t", "n", "s")
+ .setKeysOfRow(3, "j", "k", "x", "b", "m", "w", "v")
+ .build();
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/EastSlavic.java b/tests/src/com/android/inputmethod/keyboard/layout/EastSlavic.java
index 6d2e245a7..7fcc974c2 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/EastSlavic.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/EastSlavic.java
@@ -63,47 +63,47 @@ public final class EastSlavic extends LayoutBase {
private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
.setKeysOfRow(1,
// U+0443: "у" CYRILLIC SMALL LETTER U
- key("\u0439", moreKey("1")),
+ key("\u0439", additionalMoreKey("1")),
// U+0446: "ц" CYRILLIC SMALL LETTER TSE
- key("\u0446", moreKey("2")),
+ key("\u0446", additionalMoreKey("2")),
// U+0439: "й" CYRILLIC SMALL LETTER SHORT I
- key("\u0443", moreKey("3")),
+ key("\u0443", additionalMoreKey("3")),
// U+043A: "к" CYRILLIC SMALL LETTER KA
- key("\u043A", moreKey("4")),
+ key("\u043A", additionalMoreKey("4")),
// U+0435: "е" CYRILLIC SMALL LETTER IE
- key("\u0435", moreKey("5")),
+ key("\u0435", additionalMoreKey("5")),
// U+043D: "н" CYRILLIC SMALL LETTER EN
- key("\u043D", moreKey("6")),
+ key("\u043D", additionalMoreKey("6")),
// U+0433: "г" CYRILLIC SMALL LETTER GHE
- key("\u0433", moreKey("7")),
+ key("\u0433", additionalMoreKey("7")),
// U+0448: "ш" CYRILLIC SMALL LETTER SHA
- key("\u0448", moreKey("8")),
- key(ROW1_9, moreKey("9")),
+ key("\u0448", additionalMoreKey("8")),
+ key(ROW1_9, additionalMoreKey("9")),
// U+0437: "з" CYRILLIC SMALL LETTER ZE
- key("\u0437", moreKey("0")),
+ key("\u0437", additionalMoreKey("0")),
// U+0445: "х" CYRILLIC SMALL LETTER HA
- key("\u0445"))
- // U+0444: "ф" CYRILLIC SMALL LETTER EF
- // U+0432: "в" CYRILLIC SMALL LETTER VE
- // U+0430: "а" CYRILLIC SMALL LETTER A
- // U+043F: "п" CYRILLIC SMALL LETTER PE
- // U+0440: "р" CYRILLIC SMALL LETTER ER
- // U+043E: "о" CYRILLIC SMALL LETTER O
- // U+043B: "л" CYRILLIC SMALL LETTER EL
- // U+0434: "д" CYRILLIC SMALL LETTER DE
- // U+0436: "ж" CYRILLIC SMALL LETTER ZHE
- .setLabelsOfRow(2,
+ "\u0445")
+ .setKeysOfRow(2,
+ // U+0444: "ф" CYRILLIC SMALL LETTER EF
+ // U+0432: "в" CYRILLIC SMALL LETTER VE
+ // U+0430: "а" CYRILLIC SMALL LETTER A
+ // U+043F: "п" CYRILLIC SMALL LETTER PE
+ // U+0440: "р" CYRILLIC SMALL LETTER ER
+ // U+043E: "о" CYRILLIC SMALL LETTER O
+ // U+043B: "л" CYRILLIC SMALL LETTER EL
+ // U+0434: "д" CYRILLIC SMALL LETTER DE
+ // U+0436: "ж" CYRILLIC SMALL LETTER ZHE
"\u0444", ROW2_2, "\u0432", "\u0430", "\u043F", "\u0440", "\u043E", "\u043B",
"\u0434", "\u0436", ROW2_11)
- // U+044F: "я" CYRILLIC SMALL LETTER YA
- // U+0447: "ч" CYRILLIC SMALL LETTER CHE
- // U+0441: "с" CYRILLIC SMALL LETTER ES
- // U+043C: "м" CYRILLIC SMALL LETTER EM
- // U+0442: "т" CYRILLIC SMALL LETTER TE
- // U+044C: "ь" CYRILLIC SMALL LETTER SOFT SIGN
- // U+0431: "б" CYRILLIC SMALL LETTER BE
- // U+044E: "ю" CYRILLIC SMALL LETTER YU
- .setLabelsOfRow(3,
+ .setKeysOfRow(3,
+ // U+044F: "я" CYRILLIC SMALL LETTER YA
+ // U+0447: "ч" CYRILLIC SMALL LETTER CHE
+ // U+0441: "с" CYRILLIC SMALL LETTER ES
+ // U+043C: "м" CYRILLIC SMALL LETTER EM
+ // U+0442: "т" CYRILLIC SMALL LETTER TE
+ // U+044C: "ь" CYRILLIC SMALL LETTER SOFT SIGN
+ // U+0431: "б" CYRILLIC SMALL LETTER BE
+ // U+044E: "ю" CYRILLIC SMALL LETTER YU
"\u044F", "\u0447", "\u0441", "\u043C", ROW3_5, "\u0442", "\u044C", "\u0431",
"\u044E")
.build();
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Farsi.java b/tests/src/com/android/inputmethod/keyboard/layout/Farsi.java
index afec46392..a0070891a 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Farsi.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Farsi.java
@@ -70,7 +70,7 @@ public final class Farsi extends LayoutBase {
public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
if (isPhone) {
// U+060C: "،" ARABIC COMMA
- return joinKeys(key("\u060C", joinMoreKeys(",", SETTINGS_KEY)));
+ return joinKeys(key("\u060C", SETTINGS_KEY));
}
return super.getKeysLeftToSpacebar(isPhone);
}
@@ -148,7 +148,7 @@ public final class Farsi extends LayoutBase {
}
final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(ALPHABET_COMMON);
// U+0622: "آ" ARABIC LETTER ALEF WITH MADDA ABOVE
- builder.insertKeysAtRow(3, 10, key("\u0622"));
+ builder.insertKeysAtRow(3, 10, "\u0622");
return builder.build();
}
@@ -195,12 +195,11 @@ public final class Farsi extends LayoutBase {
// U+06F0: "۰" EXTENDED ARABIC-INDIC DIGIT ZERO
key("\u062D", joinMoreKeys("\u06F0", "0")),
// U+062C: "ج" ARABIC LETTER JEEM
- key("\u062C"))
+ "\u062C")
.setKeysOfRow(2,
// U+0634: "ش" ARABIC LETTER SHEEN
- key("\u0634"),
// U+0633: "س" ARABIC LETTER SEEN
- key("\u0633"),
+ "\u0634", "\u0633",
// U+06CC: "ی" ARABIC LETTER FARSI YEH
// U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE
// U+064A: "ي" ARABIC LETTER YEH
@@ -208,9 +207,8 @@ public final class Farsi extends LayoutBase {
// U+0649: "ى" ARABIC LETTER ALEF MAKSURA
key("\u06CC", joinMoreKeys("\u0626", "\u064A", moreKey("\uFBE8", "\u0649"))),
// U+0628: "ب" ARABIC LETTER BEH
- key("\u0628"),
// U+0644: "ل" ARABIC LETTER LAM
- key("\u0644"),
+ "\u0628", "\u0644",
// U+0627: "ا" ARABIC LETTER ALEF
// U+0671: "ٱ" ARABIC LETTER ALEF WASLA
// U+0621: "ء" ARABIC LETTER HAMZA
@@ -222,15 +220,14 @@ public final class Farsi extends LayoutBase {
// U+0629: "ة": ARABIC LETTER TEH MARBUTA
key("\u062A", moreKey("\u0629")),
// U+0646: "ن" ARABIC LETTER NOON
- key("\u0646"),
// U+0645: "م" ARABIC LETTER MEEM
- key("\u0645"),
+ "\u0646", "\u0645",
// U+06A9: "ک" ARABIC LETTER KEHEH
// U+0643: "ك" ARABIC LETTER KAF
key("\u06A9", moreKey("\u0643")),
// U+06AF: "گ" ARABIC LETTER GAF
- key("\u06AF"))
- .setKeysOfRow(3, joinKeys(
+ "\u06AF")
+ .setKeysOfRow(3,
// U+0638: "ظ" ARABIC LETTER ZAH
// U+0637: "ط" ARABIC LETTER TAH
// U+0698: "ژ" ARABIC LETTER JEH
@@ -244,7 +241,7 @@ public final class Farsi extends LayoutBase {
// U+0624: "ؤ" ARABIC LETTER WAW WITH HAMZA ABOVE
key("\u0648", moreKey("\u0624")),
// U+0686: "چ" ARABIC LETTER TCHEH
- "\u0686"))
+ "\u0686")
.build();
private static class FarsiSymbols extends RtlSymbols {
@@ -318,7 +315,7 @@ public final class Farsi extends LayoutBase {
// U+00BF: "¿" INVERTED QUESTION MARK
.replaceKeyOfLabel("?", key("\u061F", joinMoreKeys("?", "\u00BF")))
// U+060C: "،" ARABIC COMMA
- .replaceKeyOfLabel(",", key("\u060C", moreKey(",")))
+ .replaceKeyOfLabel(",", "\u060C")
// U+FD3E: "﴾" ORNATE LEFT PARENTHESIS
// U+FD3F: "﴿" ORNATE RIGHT PARENTHESIS
.replaceKeyOfLabel("(", key("(", ")",
@@ -348,7 +345,7 @@ public final class Farsi extends LayoutBase {
// U+266A: "♪" EIGHTH NOTE
.setMoreKeysOf("\u2022", "\u266A")
// U+060C: "،" ARABIC COMMA
- .replaceKeyOfLabel(",", key("\u060C", moreKey(",")))
+ .replaceKeyOfLabel(",", "\u060C")
// U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
// U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK
// U+2264: "≤" LESS-THAN OR EQUAL TO
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Georgian.java b/tests/src/com/android/inputmethod/keyboard/layout/Georgian.java
index ad87c3b49..6f20dfcd1 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Georgian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Georgian.java
@@ -99,9 +99,8 @@ public final class Georgian extends LayoutBase {
// U+10FA: "ჺ" GEORGIAN LETTER AIN
key("\u10D0", moreKey("\u10FA")),
// U+10E1: "ს" GEORGIAN LETTER SAN
- key("\u10E1"),
// U+10D3: "დ" GEORGIAN LETTER DON
- key("\u10D3"),
+ "\u10E1", "\u10D3",
// U+10E4: "ფ" GEORGIAN LETTER PHAR
// U+10F6: "ჶ" GEORGIAN LETTER FI
key("\u10E4", moreKey("\u10F6")),
@@ -115,27 +114,26 @@ public final class Georgian extends LayoutBase {
// U+10F7: "ჷ" GEORGIAN LETTER YN
key("\u10EF", moreKey("\u10F7")),
// U+10D9: "კ" GEORGIAN LETTER KAN
- key("\u10D9"),
// U+10DA: "ლ" GEORGIAN LETTER LAS
- key("\u10DA"))
+ "\u10D9", "\u10DA")
.setKeysOfRow(3,
// U+10D6: "ზ" GEORGIAN LETTER ZEN
- key("\u10D6"),
+ "\u10D6",
// U+10EE: "ხ" GEORGIAN LETTER XAN
// U+10F4: "ჴ" GEORGIAN LETTER HAR
key("\u10EE", moreKey("\u10F4")),
// U+10EA: "ც" GEORGIAN LETTER CAN
- key("\u10EA"),
+ "\u10EA",
// U+10D5: "ვ" GEORGIAN LETTER VIN
// U+10F3: "ჳ" GEORGIAN LETTER WE
key("\u10D5", moreKey("\u10F3")),
// U+10D1: "ბ" GEORGIAN LETTER BAN
- key("\u10D1"),
+ "\u10D1",
// U+10DC: "ნ" GEORGIAN LETTER NAR
// U+10FC: "ჼ" MODIFIER LETTER GEORGIAN NAR
key("\u10DC", moreKey("\u10FC")),
// U+10DB: "მ" GEORGIAN LETTER MAN
- key("\u10DB"))
+ "\u10DB")
.build();
private static final ExpectedKey[][] ALPHABET_SHIFTED_COMMON = new ExpectedKeyboardBuilder()
@@ -154,26 +152,12 @@ public final class Georgian extends LayoutBase {
key("O", moreKey("9")),
key("P", moreKey("0")))
.setKeysOfRow(2,
- key("A"),
// U+10E8: "შ" GEORGIAN LETTER SHIN
- key("\u10E8"),
- key("D"),
- key("F"),
- key("G"),
- key("H"),
// U+10DF: "ჟ" GEORGIAN LETTER ZHAR
- key("\u10DF"),
- key("K"),
- key("L"))
+ "A", "\u10E8", "D", "F", "G", "H", "\u10DF", "K", "L")
.setKeysOfRow(3,
// U+10EB: "ძ" GEORGIAN LETTER JIL
- key("\u10EB"),
- key("X"),
// U+10E9: "ჩ" GEORGIAN LETTER CHIN
- key("\u10E9"),
- key("V"),
- key("B"),
- key("N"),
- key("M"))
+ "\u10EB", "X", "\u10E9", "V", "B", "N", "M")
.build();
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Greek.java b/tests/src/com/android/inputmethod/keyboard/layout/Greek.java
index 762170b3d..0ec9f4cf4 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Greek.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Greek.java
@@ -36,7 +36,7 @@ public final class Greek extends LayoutBase {
@Override
public String getName() { return LAYOUT_NAME; }
- public static class GreekCustomizer extends EuroLayoutCustomizer {
+ public static class GreekCustomizer extends EuroCustomizer {
public GreekCustomizer(final Locale locale) { super(locale); }
@Override
@@ -112,37 +112,28 @@ public final class Greek extends LayoutBase {
// U+03AC: "ά" GREEK SMALL LETTER ALPHA WITH TONOS
key("\u03B1", moreKey("\u03AC")),
// U+03C3: "σ" GREEK SMALL LETTER SIGMA
- key("\u03C3"),
// U+03B4: "δ" GREEK SMALL LETTER DELTA
- key("\u03B4"),
// U+03C6: "φ" GREEK SMALL LETTER PHI
- key("\u03C6"),
// U+03B3: "γ" GREEK SMALL LETTER GAMMA
- key("\u03B3"),
+ "\u03C3", "\u03B4", "\u03C6", "\u03B3",
// U+03B7: "η" GREEK SMALL LETTER ETA
// U+03AE: "ή" GREEK SMALL LETTER ETA WITH TONOS
key("\u03B7", moreKey("\u03AE")),
// U+03BE: "ξ" GREEK SMALL LETTER XI
- key("\u03BE"),
// U+03BA: "κ" GREEK SMALL LETTER KAPPA
- key("\u03BA"),
// U+03BB: "λ" GREEK SMALL LETTER LAMDA
- key("\u03BB"))
+ "\u03BE", "\u03BA", "\u03BB")
.setKeysOfRow(3,
// U+03B6: "ζ" GREEK SMALL LETTER ZETA
- key("\u03B6"),
// U+03C7: "χ" GREEK SMALL LETTER CHI
- key("\u03C7"),
// U+03C8: "ψ" GREEK SMALL LETTER PSI
- key("\u03C8"),
+ "\u03B6", "\u03C7", "\u03C8",
// U+03C9: "ω" GREEK SMALL LETTER OMEGA
// U+03CE: "ώ" GREEK SMALL LETTER OMEGA WITH TONOS
key("\u03C9", moreKey("\u03CE")),
// U+03B2: "β" GREEK SMALL LETTER BETA
- key("\u03B2"),
// U+03BD: "ν" GREEK SMALL LETTER NU
- key("\u03BD"),
// U+03BC: "μ" GREEK SMALL LETTER MU
- key("\u03BC"))
+ "\u03B2", "\u03BD", "\u03BC")
.build();
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Hebrew.java b/tests/src/com/android/inputmethod/keyboard/layout/Hebrew.java
index a5befab00..552f0d3d5 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Hebrew.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Hebrew.java
@@ -91,12 +91,12 @@ public final class Hebrew extends LayoutBase {
private static final ExpectedKey CURRENCY_NEW_SHEQEL = key("\u20AA",
Symbols.CURRENCY_GENERIC_MORE_KEYS);
private static final ExpectedKey[] RTL_PHONE_PUNCTUATION_MORE_KEYS = joinKeys(
- ";", "/", key("(", ")"), key(")", "("), "#", "!", ",", "?",
- "&", "%", "+", "\"", "-", ":", "'", "@");
+ ",", "?", "!", "#", key(")", "("), key("(", ")"), "/", ";",
+ "'", "@", ":", "-", "\"", "+", "%", "&");
// Punctuation more keys for tablet form factor.
private static final ExpectedKey[] RTL_TABLET_PUNCTUATION_MORE_KEYS = joinKeys(
- ";", "/", key("(", ")"), key(")", "("), "#", "'", ",",
- "&", "%", "+", "\"", "-", ":", "@");
+ ",", "'", "#", key(")", "("), key("(", ")"), "/", ";",
+ "@", ":", "-", "\"", "+", "%", "&");
}
@Override
@@ -129,16 +129,14 @@ public final class Hebrew extends LayoutBase {
key("\u05E4", moreKey("0")))
.setKeysOfRow(2,
// U+05E9: "ש" HEBREW LETTER SHIN
- key("\u05E9"),
// U+05D3: "ד" HEBREW LETTER DALET
- key("\u05D3"),
+ "\u05E9", "\u05D3",
// U+05D2: "ג" HEBREW LETTER GIMEL
// U+05D2 U+05F3: "ג׳" HEBREW LETTER GIMEL + HEBREW PUNCTUATION GERESH
key("\u05D2", moreKey("\u05D2\u05F3")),
// U+05DB: "כ" HEBREW LETTER KAF
- key("\u05DB"),
// U+05E2: "ע" HEBREW LETTER AYIN
- key("\u05E2"),
+ "\u05DB", "\u05E2",
// U+05D9: "י" HEBREW LETTER YOD
// U+05F2 U+05B7: "ײַ" HEBREW LIGATURE YIDDISH DOUBLE YOD + HEBREW POINT PATAH
key("\u05D9", moreKey("\u05F2\u05B7")),
@@ -146,25 +144,19 @@ public final class Hebrew extends LayoutBase {
// U+05D7 U+05F3: "ח׳" HEBREW LETTER HET + HEBREW PUNCTUATION GERESH
key("\u05D7", moreKey("\u05D7\u05F3")),
// U+05DC: "ל" HEBREW LETTER LAMED
- key("\u05DC"),
// U+05DA: "ך" HEBREW LETTER FINAL KAF
- key("\u05DA"),
// U+05E3: "ף" HEBREW LETTER FINAL PE
- key("\u05E3"))
+ "\u05DC", "\u05DA", "\u05E3")
.setKeysOfRow(3,
// U+05D6: "ז" HEBREW LETTER ZAYIN
// U+05D6 U+05F3: "ז׳" HEBREW LETTER ZAYIN + HEBREW PUNCTUATION GERESH
key("\u05D6", moreKey("\u05D6\u05F3")),
// U+05E1: "ס" HEBREW LETTER SAMEKH
- key("\u05E1"),
// U+05D1: "ב" HEBREW LETTER BET
- key("\u05D1"),
// U+05D4: "ה" HEBREW LETTER HE
- key("\u05D4"),
// U+05E0: "נ" HEBREW LETTER NUN
- key("\u05E0"),
// U+05DE: "מ" HEBREW LETTER MEM
- key("\u05DE"),
+ "\u05E1", "\u05D1", "\u05D4", "\u05E0", "\u05DE",
// U+05E6: "צ" HEBREW LETTER TSADI
// U+05E6 U+05F3: "צ׳" HEBREW LETTER TSADI + HEBREW PUNCTUATION GERESH
key("\u05E6", moreKey("\u05E6\u05F3")),
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Hindi.java b/tests/src/com/android/inputmethod/keyboard/layout/Hindi.java
index c1d161615..7ff2dcbbc 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Hindi.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Hindi.java
@@ -155,7 +155,7 @@ public final class Hindi extends LayoutBase {
// U+0947/U+0902: "ें" DEVANAGARI VOWEL SIGN E/DEVANAGARI SIGN ANUSVARA
key("\u0947", moreKey("\u0947\u0902")),
// U+094D: "्" DEVANAGARI SIGN VIRAMA
- key("\u094D"),
+ "\u094D",
// U+093F: "ि" DEVANAGARI VOWEL SIGN I
// U+093F/U+0902: "िं" DEVANAGARI VOWEL SIGN I/DEVANAGARI SIGN ANUSVARA
key("\u093F", moreKey("\u093F\u0902")),
@@ -164,7 +164,7 @@ public final class Hindi extends LayoutBase {
// U+0941/U+0901: "ुँ" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN CANDRABINDU
key("\u0941", joinMoreKeys("\u0941\u0902", "\u0941\u0901")),
// U+092A: "प" DEVANAGARI LETTER PA
- key("\u092A"),
+ "\u092A",
// U+0930: "र" DEVANAGARI LETTER RA
// U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R
// U+0930/U+093C: "ऱ" DEVANAGARI LETTER RA/DEVANAGARI SIGN NUKTA
@@ -178,14 +178,12 @@ public final class Hindi extends LayoutBase {
// "त्र" DEVANAGARI LETTER TA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA
key("\u0924", moreKey("\u0924\u094D\u0930")),
// U+091A: "च" DEVANAGARI LETTER CA
- key("\u091A"),
// U+091F: "ट" DEVANAGARI LETTER TTA
- key("\u091F"))
+ "\u091A","\u091F")
.setKeysOfRow(3,
// U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O
- key("\u0949"),
// U+0902: "ं" DEVANAGARI SIGN ANUSVARA
- key("\u0902"),
+ "\u0949", "\u0902",
// U+092E: "म" DEVANAGARI LETTER MA
// U+0950: "ॐ" DEVANAGARI OM
key("\u092E", moreKey("\u0950")),
@@ -195,13 +193,13 @@ public final class Hindi extends LayoutBase {
// U+0928/U+093C: "ऩ" DEVANAGARI LETTER NA/DEVANAGARI SIGN NUKTA
key("\u0928", joinMoreKeys("\u091E", "\u0919", "\u0928\u093C")),
// U+0935: "व" DEVANAGARI LETTER VA
- key("\u0935"),
+ "\u0935",
// U+0932: "ल" DEVANAGARI LETTER LA
// U+090C: "ऌ" DEVANAGARI LETTER VOCALIC L
// U+0961: "ॡ" DEVANAGARI LETTER VOCALIC LL
key("\u0932", joinMoreKeys("\u090C", "\u0961")),
// U+0938: "स" DEVANAGARI LETTER SA
- key("\u0938"),
+ "\u0938",
// U+092F: "य" DEVANAGARI LETTER YA
// U+095F: "य़" DEVANAGARI LETTER YYA
key("\u092F", moreKey("\u095F")),
@@ -232,11 +230,9 @@ public final class Hindi extends LayoutBase {
// U+090A/U+0901: "ऊँ" DEVANAGARI LETTER UU/DEVANAGARI SIGN CANDRABINDU
key("\u090A", joinMoreKeys("\u090A\u0902", "\u090A\u0901")),
// U+092D: "भ" DEVANAGARI LETTER BHA
- key("\u092D"),
// U+0903: "ः" DEVANAGARI SIGN VISARGA
- key("\u0903"),
// U+0918: "घ" DEVANAGARI LETTER GHA
- key("\u0918"),
+ "\u092D", "\u0903", "\u0918",
// U+0927: "ध" DEVANAGARI LETTER DHA
// U+0915/U+094D/U+0937:
// "क्ष" DEVANAGARI LETTER KA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER SSA
@@ -244,9 +240,8 @@ public final class Hindi extends LayoutBase {
// "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA
key("\u0927", joinMoreKeys("\u0915\u094D\u0937", "\u0936\u094D\u0930")),
// U+091D: "झ" DEVANAGARI LETTER JHA
- key("\u091D"),
// U+0922: "ढ" DEVANAGARI LETTER DDHA
- key("\u0922"))
+ "\u091D", "\u0922")
.setKeysOfRow(2,
// U+0913: "ओ" DEVANAGARI LETTER O
// U+0913/U+0902: "ओं" DEVANAGARI LETTER O/DEVANAGARI SIGN ANUSVARA
@@ -282,33 +277,29 @@ public final class Hindi extends LayoutBase {
// U+0916/U+093C: "ख़" DEVANAGARI LETTER KHA/DEVANAGARI SIGN NUKTA
key("\u0916", moreKey("\u0916\u093C")),
// U+0925: "थ" DEVANAGARI LETTER THA
- key("\u0925"),
// U+091B: "छ" DEVANAGARI LETTER CHA
- key("\u091B"),
// U+0920: "ठ" DEVANAGARI LETTER TTHA
- key("\u0920"))
+ "\u0925", "\u091B", "\u0920")
.setKeysOfRow(3,
// U+0911: "ऑ" DEVANAGARI LETTER CANDRA O
- key("\u0911"),
+ "\u0911",
// U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
// U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E
key("\u0901", moreKey("\u0945")),
// U+0923: "ण" DEVANAGARI LETTER NNA
- key("\u0923"),
// U+0929: "ऩ" DEVANAGARI LETTER NNNA
- key("\u0929"),
+ "\u0923", "\u0929",
// U+0933: "ळ" DEVANAGARI LETTER LLA
// U+0934: "ऴ" DEVANAGARI LETTER LLLA
key("\u0933", moreKey("\u0934")),
// U+0936: "श" DEVANAGARI LETTER SHA
- key("\u0936"),
// U+0937: "ष" DEVANAGARI LETTER SSA
- key("\u0937"),
+ "\u0936", "\u0937",
// U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R
// U+0944: "ॄ" DEVANAGARI VOWEL SIGN VOCALIC RR
key("\u0943", moreKey("\u0944")),
// U+091E: "ञ" DEVANAGARI LETTER NYA
- key("\u091E"))
+ "\u091E")
.build();
static class HindiSymbols extends Symbols {
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Khmer.java b/tests/src/com/android/inputmethod/keyboard/layout/Khmer.java
index 61ade8b70..e7f6a6552 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Khmer.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Khmer.java
@@ -66,7 +66,7 @@ public final class Khmer extends LayoutBase {
return ALPHABET_COMMON;
}
final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(ALPHABET_COMMON);
- builder.addKeysOnTheRightOfRow(4, EXCLAMATION_AND_QUESTION_MARKS);
+ builder.addKeysOnTheRightOfRow(4, (Object[])EXCLAMATION_AND_QUESTION_MARKS);
return builder.build();
}
@@ -84,11 +84,9 @@ public final class Khmer extends LayoutBase {
ExpectedKeyboardBuilder convertCommonLayoutToKeyboard(final ExpectedKeyboardBuilder builder,
final boolean isPhone) {
final LayoutCustomizer customizer = getCustomizer();
- final ExpectedKey[] spacebar = joinKeys(
- customizer.getKeysLeftToSpacebar(isPhone),
- customizer.getSpaceKeys(isPhone),
- customizer.getKeysRightToSpacebar(isPhone));
- builder.setKeysOfRow(5, spacebar);
+ builder.setKeysOfRow(5, (Object[])customizer.getSpaceKeys(isPhone));
+ builder.addKeysOnTheLeftOfRow(5, (Object[])customizer.getKeysLeftToSpacebar(isPhone));
+ builder.addKeysOnTheRightOfRow(5, (Object[])customizer.getKeysRightToSpacebar(isPhone));
if (isPhone) {
builder.addKeysOnTheRightOfRow(4, DELETE_KEY)
.addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey())
@@ -99,8 +97,8 @@ public final class Khmer extends LayoutBase {
.addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey(), SETTINGS_KEY)
.addKeysOnTheRightOfRow(5, EMOJI_KEY);
}
- builder.addKeysOnTheLeftOfRow(4, customizer.getLeftShiftKeys(isPhone))
- .addKeysOnTheRightOfRow(4, customizer.getRightShiftKeys(isPhone));
+ builder.addKeysOnTheLeftOfRow(4, (Object[])customizer.getLeftShiftKeys(isPhone))
+ .addKeysOnTheRightOfRow(4, (Object[])customizer.getRightShiftKeys(isPhone));
return builder;
}
@@ -144,27 +142,18 @@ public final class Khmer extends LayoutBase {
key("\u17B2", moreKey("\u17B1")))
.setKeysOfRow(2,
// U+1786: "ឆ" KHMER LETTER CHA
- key("\u1786"),
// U+17B9: "ឹ" KHMER VOWEL SIGN Y
- key("\u17B9"),
// U+17C1: "េ" KHMER VOWEL SIGN E
- key("\u17C1"),
// U+179A: "រ" KHMER LETTER RO
- key("\u179A"),
// U+178F: "ត" KHMER LETTER TA
- key("\u178F"),
// U+1799: "យ" KHMER LETTER YO
- key("\u1799"),
// U+17BB: "ុ" KHMER VOWEL SIGN U
- key("\u17BB"),
// U+17B7: "ិ" KHMER VOWEL SIGN I
- key("\u17B7"),
// U+17C4: "ោ" KHMER VOWEL SIGN OO
- key("\u17C4"),
// U+1795: "ផ" KHMER LETTER PHA
- key("\u1795"),
// U+17C0: "ៀ" KHMER VOWEL SIGN IE
- key("\u17C0"),
+ "\u1786", "\u17B9", "\u17C1", "\u179A", "\u178F", "\u1799", "\u17BB", "\u17B7",
+ "\u17C4", "\u1795", "\u17C0",
// U+17AA: "ឪ" KHMER INDEPENDENT VOWEL QUUV
// U+17A7: "ឧ" KHMER INDEPENDENT VOWEL QU
// U+17B1: "ឱ" KHMER INDEPENDENT VOWEL QOO TYPE ONE
@@ -174,32 +163,23 @@ public final class Khmer extends LayoutBase {
key("\u17AA", joinMoreKeys("\u17A7", "\u17B1", "\u17B3", "\u17A9", "\u17A8")))
.setKeysOfRow(3,
// U+17B6: "ា" KHMER VOWEL SIGN AA
- key("\u17B6"),
// U+179F: "ស" KHMER LETTER SA
- key("\u179F"),
// U+178A: "ដ" KHMER LETTER DA
- key("\u178A"),
// U+1790: "ថ" KHMER LETTER THA
- key("\u1790"),
// U+1784: "ង" KHMER LETTER NGO
- key("\u1784"),
// U+17A0: "ហ" KHMER LETTER HA
- key("\u17A0"),
// U+17D2: "្" KHMER SIGN COENG
- key("\u17D2"),
// U+1780: "ក" KHMER LETTER KA
- key("\u1780"),
// U+179B: "ល" KHMER LETTER LO
- key("\u179B"),
// U+17BE: "ើ" KHMER VOWEL SIGN OE
- key("\u17BE"),
// U+17CB: "់" KHMER SIGN BANTOC
- key("\u17CB"),
+ "\u17B6", "\u179F", "\u178A", "\u1790", "\u1784", "\u17A0", "\u17D2", "\u1780",
+ "\u179B", "\u17BE", "\u17CB",
// U+17AE: "ឮ" KHMER INDEPENDENT VOWEL LYY
// U+17AD: "ឭ" KHMER INDEPENDENT VOWEL LY
// U+17B0: "ឰ" KHMER INDEPENDENT VOWEL QAI
key("\u17AE", joinMoreKeys("\u17AD", "\u17B0")))
- .setLabelsOfRow(4,
+ .setKeysOfRow(4,
// U+178B: "ឋ" KHMER LETTER TTHA
// U+1781: "ខ" KHMER LETTER KHA
// U+1785: "ច" KHMER LETTER CA
@@ -241,7 +221,7 @@ public final class Khmer extends LayoutBase {
// U+00D7: "×" MULTIPLICATION SIGN
key("\u17CC", moreKey("\u00D7")),
// U+17CE: "៎" KHMER SIGN KAKABAT
- key("\u17CE"))
+ "\u17CE")
.setKeysOfRow(2,
// U+1788: "ឈ" KHMER LETTER CHO
// U+17DC: "ៜ" KHMER SIGN AVAKRAHASANYA
@@ -250,73 +230,52 @@ public final class Khmer extends LayoutBase {
// U+17DD: "៝" KHMER SIGN ATTHACAN
key("\u17BA", moreKey("\u17DD")),
// U+17C2: "ែ" KHMER VOWEL SIGN AE
- key("\u17C2"),
+ "\u17C2",
// U+17AC: "ឬ" KHMER INDEPENDENT VOWEL RYY
// U+17AB: "ឫ" KHMER INDEPENDENT VOWEL RY
key("\u17AC", moreKey("\u17AB")),
// U+1791: "ទ" KHMER LETTER TO
- key("\u1791"),
// U+17BD: "ួ" KHMER VOWEL SIGN UA
- key("\u17BD"),
// U+17BC: "ូ" KHMER VOWEL SIGN UU
- key("\u17BC"),
// U+17B8: "ី" KHMER VOWEL SIGN II
- key("\u17B8"),
// U+17C5: "ៅ" KHMER VOWEL SIGN AU
- key("\u17C5"),
// U+1797: "ភ" KHMER LETTER PHO
- key("\u1797"),
// U+17BF: "ឿ" KHMER VOWEL SIGN YA
- key("\u17BF"),
// U+17B0: "ឰ" KHMER INDEPENDENT VOWEL QAI
- key("\u17B0"))
+ "\u1791", "\u17BD", "\u17BC", "\u17B8", "\u17C5", "\u1797", "\u17BF", "\u17B0")
.setKeysOfRow(3,
// U+17B6/U+17C6: "ាំ" KHMER VOWEL SIGN AA/KHMER SIGN NIKAHIT
- key("\u17B6\u17C6"),
// U+17C3: "ៃ" KHMER VOWEL SIGN AI
- key("\u17C3"),
// U+178C: "ឌ" KHMER LETTER DO
- key("\u178C"),
// U+1792: "ធ" KHMER LETTER THO
- key("\u1792"),
// U+17A2: "អ" KHMER LETTER QAE
- key("\u17A2"),
+ "\u17B6\u17C6", "\u17C3", "\u178C", "\u1792", "\u17A2",
// U+17C7: "ះ" KHMER SIGN REAHMUK
// U+17C8: "ៈ" KHMER SIGN YUUKALEAPINTU
key("\u17C7", moreKey("\u17C8")),
// U+1789: "ញ" KHMER LETTER NYO
- key("\u1789"),
+ "\u1789",
// U+1782: "គ" KHMER LETTER KO
// U+179D: "ឝ" KHMER LETTER SHA
key("\u1782", moreKey("\u179D")),
// U+17A1: "ឡ" KHMER LETTER LA
- key("\u17A1"),
// U+17C4/U+17C7: "ោះ" KHMER VOWEL SIGN OO/KHMER SIGN REAHMUK
- key("\u17C4\u17C7"),
// U+17C9: "៉" KHMER SIGN MUUSIKATOAN
- key("\u17C9"),
// U+17AF: "ឯ" KHMER INDEPENDENT VOWEL QE
- key("\u17AF"))
+ "\u17A1", "\u17C4\u17C7", "\u17C9", "\u17AF")
.setKeysOfRow(4,
// U+178D: "ឍ" KHMER LETTER TTHO
- key("\u178D"),
// U+1783: "ឃ" KHMER LETTER KHO
- key("\u1783"),
// U+1787: "ជ" KHMER LETTER CO
- key("\u1787"),
// U+17C1/U+17C7: "េះ" KHMER VOWEL SIGN E/KHMER SIGN REAHMUK
- key("\u17C1\u17C7"),
+ "\u178D", "\u1783", "\u1787", "\u17C1\u17C7",
// U+1796: "ព" KHMER LETTER PO
// U+179E: "ឞ" KHMER LETTER SSO
key("\u1796", moreKey("\u179E")),
// U+178E: "ណ" KHMER LETTER NNO
- key("\u178E"),
// U+17C6: "ំ" KHMER SIGN NIKAHIT
- key("\u17C6"),
// U+17BB/U+17C7: "ុះ" KHMER VOWEL SIGN U/KHMER SIGN REAHMUK
- key("\u17BB\u17C7"),
// U+17D5: "៕" KHMER SIGN BARIYOOSAN
- key("\u17D5"),
- key("?"))
+ "\u178E", "\u17C6", "\u17BB\u17C7", "\u17D5", "?")
.build();
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Lao.java b/tests/src/com/android/inputmethod/keyboard/layout/Lao.java
index 488905504..6f2ef216f 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Lao.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Lao.java
@@ -70,7 +70,7 @@ public final class Lao extends LayoutBase {
return ALPHABET_COMMON;
}
final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(ALPHABET_COMMON);
- builder.addKeysOnTheRightOfRow(4, EXCLAMATION_AND_QUESTION_MARKS);
+ builder.addKeysOnTheRightOfRow(4, (Object[])EXCLAMATION_AND_QUESTION_MARKS);
return builder.build();
}
@@ -88,11 +88,9 @@ public final class Lao extends LayoutBase {
ExpectedKeyboardBuilder convertCommonLayoutToKeyboard(final ExpectedKeyboardBuilder builder,
final boolean isPhone) {
final LayoutCustomizer customizer = getCustomizer();
- final ExpectedKey[] spacebar = joinKeys(
- customizer.getKeysLeftToSpacebar(isPhone),
- customizer.getSpaceKeys(isPhone),
- customizer.getKeysRightToSpacebar(isPhone));
- builder.setKeysOfRow(5, spacebar);
+ builder.setKeysOfRow(5, (Object[])customizer.getSpaceKeys(isPhone));
+ builder.addKeysOnTheLeftOfRow(5, (Object[])customizer.getKeysLeftToSpacebar(isPhone));
+ builder.addKeysOnTheRightOfRow(5, (Object[])customizer.getKeysRightToSpacebar(isPhone));
if (isPhone) {
builder.addKeysOnTheRightOfRow(4, DELETE_KEY)
.addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey())
@@ -103,8 +101,8 @@ public final class Lao extends LayoutBase {
.addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey(), SETTINGS_KEY)
.addKeysOnTheRightOfRow(5, EMOJI_KEY);
}
- builder.addKeysOnTheLeftOfRow(4, customizer.getLeftShiftKeys(isPhone))
- .addKeysOnTheRightOfRow(4, customizer.getRightShiftKeys(isPhone));
+ builder.addKeysOnTheLeftOfRow(4, (Object[])customizer.getLeftShiftKeys(isPhone))
+ .addKeysOnTheRightOfRow(4, (Object[])customizer.getRightShiftKeys(isPhone));
return builder;
}
@@ -123,9 +121,8 @@ public final class Lao extends LayoutBase {
// U+0ED4: "໔" LAO DIGIT FOUR
key("\u0E96", joinMoreKeys("4", "\u0ED4")),
// U+0EB8: "ຸ" LAO VOWEL SIGN U
- key("\u0EB8"),
// U+0EB9: "ູ" LAO VOWEL SIGN UU
- key("\u0EB9"),
+ "\u0EB8", "\u0EB9",
// U+0E84: "ຄ" LAO LETTER KHO TAM
// U+0ED5: "໕" LAO DIGIT FIVE
key("\u0E84", joinMoreKeys("5", "\u0ED5")),
@@ -142,34 +139,26 @@ public final class Lao extends LayoutBase {
// U+0ED9: "໙" LAO DIGIT NINE
key("\u0E8A", joinMoreKeys("9", "\u0ED9")),
// U+0ECD: "ໍ" LAO NIGGAHITA
- key("\u0ECD"))
+ "\u0ECD")
.setKeysOfRow(2,
// U+0EBB: "ົ" LAO VOWEL SIGN MAI KON
- key("\u0EBB"),
+ "\u0EBB",
// U+0EC4: "ໄ" LAO VOWEL SIGN AI
// U+0ED0: "໐" LAO DIGIT ZERO
key("\u0EC4", joinMoreKeys("0", "\u0ED0")),
// U+0EB3: "ຳ" LAO VOWEL SIGN AM
- key("\u0EB3"),
// U+0E9E: "ພ" LAO LETTER PHO TAM
- key("\u0E9E"),
// U+0EB0: "ະ" LAO VOWEL SIGN A
- key("\u0EB0"),
// U+0EB4: "ິ" LAO VOWEL SIGN I
- key("\u0EB4"),
// U+0EB5: "ີ" LAO VOWEL SIGN II
- key("\u0EB5"),
// U+0EAE: "ຮ" LAO LETTER HO TAM
- key("\u0EAE"),
// U+0E99: "ນ" LAO LETTER NO
- key("\u0E99"),
// U+0E8D: "ຍ" LAO LETTER NYO
- key("\u0E8D"),
// U+0E9A: "ບ" LAO LETTER BO
- key("\u0E9A"),
// U+0EA5: "ລ" LAO LETTER LO LOOT
- key("\u0EA5"))
- .setLabelsOfRow(3,
+ "\u0EB3", "\u0E9E", "\u0EB0", "\u0EB4", "\u0EB5", "\u0EAE", "\u0E99", "\u0E8D",
+ "\u0E9A", "\u0EA5")
+ .setKeysOfRow(3,
// U+0EB1: "ັ" LAO VOWEL SIGN MAI KAN
// U+0EAB: "ຫ" LAO LETTER HO SUNG
// U+0E81: "ກ" LAO LETTER KO
@@ -184,7 +173,7 @@ public final class Lao extends LayoutBase {
// U+201C: "“" LEFT DOUBLE QUOTATION MARK
"\u0EB1", "\u0EAB", "\u0E81", "\u0E94", "\u0EC0", "\u0EC9", "\u0EC8", "\u0EB2",
"\u0EAA", "\u0EA7", "\u0E87", "\u201C")
- .setLabelsOfRow(4,
+ .setKeysOfRow(4,
// U+0E9C: "ຜ" LAO LETTER PHO SUNG
// U+0E9B: "ປ" LAO LETTER PO
// U+0EC1: "ແ" LAO VOWEL SIGN EI
@@ -200,7 +189,7 @@ public final class Lao extends LayoutBase {
.build();
private static final ExpectedKey[][] ALPHABET_SHIFTED_COMMON = new ExpectedKeyboardBuilder()
- .setLabelsOfRow(1,
+ .setKeysOfRow(1,
// U+0ED1: "໑" LAO DIGIT ONE
// U+0ED2: "໒" LAO DIGIT TWO
// U+0ED3: "໓" LAO DIGIT THREE
@@ -215,7 +204,7 @@ public final class Lao extends LayoutBase {
// U+0ECD/U+0EC8: "ໍ່" LAO NIGGAHITA/LAO TONE MAI EK
"\u0ED1", "\u0ED2", "\u0ED3", "\u0ED4", "\u0ECC", "\u0EBC", "\u0ED5", "\u0ED6",
"\u0ED7", "\u0ED8", "\u0ED9", "\u0ECD\u0EC8")
- .setLabelsOfRow(2,
+ .setKeysOfRow(2,
// U+0EBB/U+0EC9: "" LAO VOWEL SIGN MAI KON/LAO TONE MAI THO
// U+0ED0: "໐" LAO DIGIT ZERO
// U+0EB3/U+0EC9: "ຳ້" LAO VOWEL SIGN AM/LAO TONE MAI THO
@@ -228,14 +217,14 @@ public final class Lao extends LayoutBase {
// U+201D: "”" RIGHT DOUBLE QUOTATION MARK
"\u0EBB\u0EC9", "\u0ED0", "\u0EB3\u0EC9", "_", "+", "\u0EB4\u0EC9",
"\u0EB5\u0EC9", "\u0EA3", "\u0EDC", "\u0EBD", "\u0EAB\u0EBC", "\u201D")
- .setLabelsOfRow(3,
+ .setKeysOfRow(3,
// U+0EB1/U+0EC9: "ັ້" LAO VOWEL SIGN MAI KAN/LAO TONE MAI THO
// U+0ECA: "໊" LAO TONE MAI TI
// U+0ECB: "໋" LAO TONE MAI CATAWA
// U+201C: "“" LEFT DOUBLE QUOTATION MARK
"\u0EB1\u0EC9", ";", ".", ",", ":", "\u0ECA", "\u0ECB", "!", "?", "%", "=",
"\u201C")
- .setLabelsOfRow(4,
+ .setKeysOfRow(4,
// U+20AD: "₭" KIP SIGN
// U+0EAF: "ຯ" LAO ELLIPSIS
// U+0EB6/U+0EC9: "ຶ້" LAO VOWEL SIGN Y/LAO TONE MAI THO
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java b/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java
index 982777bd6..09cc8f9ca 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java
@@ -161,7 +161,7 @@ public abstract class LayoutBase extends AbstractLayoutBase {
* @return the array of {@link ExpectedKey} that should be placed at left of the spacebar.
*/
public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
- return isPhone ? joinKeys(key(",", SETTINGS_KEY)) : joinKeys(key("/"));
+ return isPhone ? joinKeys(key(",", SETTINGS_KEY)) : joinKeys("/");
}
/**
@@ -171,7 +171,7 @@ public abstract class LayoutBase extends AbstractLayoutBase {
*/
public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
final ExpectedKey periodKey = key(".", getPunctuationMoreKeys(isPhone));
- return isPhone ? joinKeys(periodKey) : joinKeys(key(","), periodKey);
+ return isPhone ? joinKeys(periodKey) : joinKeys(",", periodKey);
}
/**
@@ -188,8 +188,8 @@ public abstract class LayoutBase extends AbstractLayoutBase {
/**
* The layout customize class for countries that use Euro.
*/
- public static class EuroLayoutCustomizer extends LayoutCustomizer {
- public EuroLayoutCustomizer(final Locale locale) {
+ public static class EuroCustomizer extends LayoutCustomizer {
+ public EuroCustomizer(final Locale locale) {
super(locale);
}
@@ -270,13 +270,12 @@ public abstract class LayoutBase extends AbstractLayoutBase {
// Punctuation more keys for phone form factor.
public static final ExpectedKey[] PHONE_PUNCTUATION_MORE_KEYS = joinKeys(
- ";", "/", "(", ")", "#", "!", ",", "?",
- "&", "%", "+", "\"", "-", ":", "'", "@");
-
+ ",", "?", "!", "#", ")", "(", "/", ";",
+ "'", "@", ":", "-", "\"", "+", "%", "&");
// Punctuation more keys for tablet form factor.
public static final ExpectedKey[] TABLET_PUNCTUATION_MORE_KEYS = joinKeys(
- ";", "/", "(", ")", "#", "'", ",",
- "&", "%", "+", "\"", "-", ":", "@");
+ ",", "'", "#", ")", "(", "/", ";",
+ "@", ":", "-", "\"", "+", "%", "&");
/**
* Helper method to create alphabet layout adding special function keys.
@@ -288,11 +287,9 @@ public abstract class LayoutBase extends AbstractLayoutBase {
ExpectedKeyboardBuilder convertCommonLayoutToKeyboard(final ExpectedKeyboardBuilder builder,
final boolean isPhone) {
final LayoutCustomizer customizer = getCustomizer();
- final ExpectedKey[] spacebar = joinKeys(
- customizer.getKeysLeftToSpacebar(isPhone),
- customizer.getSpaceKeys(isPhone),
- customizer.getKeysRightToSpacebar(isPhone));
- builder.setKeysOfRow(4, spacebar);
+ builder.setKeysOfRow(4, (Object[])customizer.getSpaceKeys(isPhone));
+ builder.addKeysOnTheLeftOfRow(4, (Object[])customizer.getKeysLeftToSpacebar(isPhone));
+ builder.addKeysOnTheRightOfRow(4, (Object[])customizer.getKeysRightToSpacebar(isPhone));
if (isPhone) {
builder.addKeysOnTheRightOfRow(3, DELETE_KEY)
.addKeysOnTheLeftOfRow(4, customizer.getSymbolsKey())
@@ -302,10 +299,9 @@ public abstract class LayoutBase extends AbstractLayoutBase {
.addKeysOnTheRightOfRow(2, ENTER_KEY)
.addKeysOnTheLeftOfRow(4, customizer.getSymbolsKey(), SETTINGS_KEY)
.addKeysOnTheRightOfRow(4, EMOJI_KEY);
-
}
- builder.addKeysOnTheLeftOfRow(3, customizer.getLeftShiftKeys(isPhone))
- .addKeysOnTheRightOfRow(3, customizer.getRightShiftKeys(isPhone));
+ builder.addKeysOnTheLeftOfRow(3, (Object[])customizer.getLeftShiftKeys(isPhone))
+ .addKeysOnTheRightOfRow(3, (Object[])customizer.getRightShiftKeys(isPhone));
return builder;
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Mongolian.java b/tests/src/com/android/inputmethod/keyboard/layout/Mongolian.java
index 3c9f4a06d..3c6c05841 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Mongolian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Mongolian.java
@@ -77,37 +77,33 @@ public final class Mongolian extends LayoutBase {
// U+0437: "з" CYRILLIC SMALL LETTER ZE
key("\u0437", moreKey("0")),
// U+043A: "к" CYRILLIC SMALL LETTER KA
- key("\u043A"))
- // U+0439: "й" CYRILLIC SMALL LETTER SHORT I
- // U+044B: "ы" CYRILLIC SMALL LETTER YERU
- // U+0431: "б" CYRILLIC SMALL LETTER BE
- // U+04E9: "ө" CYRILLIC SMALL LETTER BARRED O
- // U+0430: "а" CYRILLIC SMALL LETTER A
- // U+0445: "х" CYRILLIC SMALL LETTER HA
- // U+0440: "р" CYRILLIC SMALL LETTER ER
- // U+043E: "о" CYRILLIC SMALL LETTER O
- // U+043B: "л" CYRILLIC SMALL LETTER EL
- // U+0434: "д" CYRILLIC SMALL LETTER DE
- // U+043F: "п" CYRILLIC SMALL LETTER PE
- .setLabelsOfRow(2,
+ "\u043A")
+ .setKeysOfRow(2,
+ // U+0439: "й" CYRILLIC SMALL LETTER SHORT I
+ // U+044B: "ы" CYRILLIC SMALL LETTER YERU
+ // U+0431: "б" CYRILLIC SMALL LETTER BE
+ // U+04E9: "ө" CYRILLIC SMALL LETTER BARRED O
+ // U+0430: "а" CYRILLIC SMALL LETTER A
+ // U+0445: "х" CYRILLIC SMALL LETTER HA
+ // U+0440: "р" CYRILLIC SMALL LETTER ER
+ // U+043E: "о" CYRILLIC SMALL LETTER O
+ // U+043B: "л" CYRILLIC SMALL LETTER EL
+ // U+0434: "д" CYRILLIC SMALL LETTER DE
+ // U+043F: "п" CYRILLIC SMALL LETTER PE
"\u0439", "\u044B", "\u0431", "\u04E9", "\u0430", "\u0445", "\u0440", "\u043E",
"\u043B", "\u0434", "\u043F")
.setKeysOfRow(3,
// U+044F: "я" CYRILLIC SMALL LETTER YA
- key("\u044F"),
// U+0447: "ч" CYRILLIC SMALL LETTER CHE
- key("\u0447"),
+ "\u044F", "\u0447",
// U+0451: "ё" CYRILLIC SMALL LETTER IO
// U+0435: "е" CYRILLIC SMALL LETTER IE
key("\u0451", moreKey("\u0435")),
// U+0441: "с" CYRILLIC SMALL LETTER ES
- key("\u0441"),
// U+043C: "м" CYRILLIC SMALL LETTER EM
- key("\u043C"),
// U+0438: "и" CYRILLIC SMALL LETTER I
- key("\u0438"),
// U+0442: "т" CYRILLIC SMALL LETTER TE
- key("\u0442"),
+ "\u0441", "\u043C", "\u0438", "\u0442",
// U+044C: "ь" CYRILLIC SMALL LETTER SOFT SIGN
// U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN
key("\u044C", moreKey("\u044A")),
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/NepaliRomanized.java b/tests/src/com/android/inputmethod/keyboard/layout/NepaliRomanized.java
index c0bc29f2a..7cfe3444c 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/NepaliRomanized.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/NepaliRomanized.java
@@ -99,77 +99,76 @@ public final class NepaliRomanized extends LayoutBase {
// U+0966: "०" DEVANAGARI DIGIT ZERO
key("\u092A", joinMoreKeys("\u0966", "0")),
// U+0907: "इ" DEVANAGARI LETTER I
- key("\u0907"))
- // U+093E: "ा" DEVANAGARI VOWEL SIGN AA
- // U+0938: "स" DEVANAGARI LETTER SA
- // U+0926: "द" DEVANAGARI LETTER DA
- // U+0909: "उ" DEVANAGARI LETTER U
- // U+0917: "ग" DEVANAGARI LETTER GA
- // U+0939: "ह" DEVANAGARI LETTER HA
- // U+091C: "ज" DEVANAGARI LETTER JA
- // U+0915: "क" DEVANAGARI LETTER KA
- // U+0932: "ल" DEVANAGARI LETTER LA
- // U+090F: "ए" DEVANAGARI LETTER E
- // U+0950: "ॐ" DEVANAGARI OM
- .setLabelsOfRow(2,
+ "\u0907")
+ .setKeysOfRow(2,
+ // U+093E: "ा" DEVANAGARI VOWEL SIGN AA
+ // U+0938: "स" DEVANAGARI LETTER SA
+ // U+0926: "द" DEVANAGARI LETTER DA
+ // U+0909: "उ" DEVANAGARI LETTER U
+ // U+0917: "ग" DEVANAGARI LETTER GA
+ // U+0939: "ह" DEVANAGARI LETTER HA
+ // U+091C: "ज" DEVANAGARI LETTER JA
+ // U+0915: "क" DEVANAGARI LETTER KA
+ // U+0932: "ल" DEVANAGARI LETTER LA
+ // U+090F: "ए" DEVANAGARI LETTER E
+ // U+0950: "ॐ" DEVANAGARI OM
"\u093E", "\u0938", "\u0926", "\u0909", "\u0917", "\u0939", "\u091C", "\u0915",
"\u0932", "\u090F", "\u0950")
- // U+0937: "ष" DEVANAGARI LETTER SSA
- // U+0921: "ड" DEVANAGARI LETTER DDA
- // U+091A: "च" DEVANAGARI LETTER CA
- // U+0935: "व" DEVANAGARI LETTER VA
- // U+092C: "ब" DEVANAGARI LETTER BHA
- // U+0928: "न" DEVANAGARI LETTER NA
- // U+092E: "म" DEVANAGARI LETTER MA
- // U+0964: "।" DEVANAGARI DANDA
- // U+094D: "्" DEVANAGARI SIGN VIRAMA
- .setLabelsOfRow(3,
- "\u0937", "\u0921", "\u091A", "\u0935", "\u092C", "\u0928", "\u092E", "\u0964",
+ .setKeysOfRow(3,
+ // U+0937: "ष" DEVANAGARI LETTER SSA
+ // U+0921: "ड" DEVANAGARI LETTER DDA
+ // U+091A: "च" DEVANAGARI LETTER CA
+ // U+0935: "व" DEVANAGARI LETTER VA
+ // U+092C: "ब" DEVANAGARI LETTER BHA
+ // U+0928: "न" DEVANAGARI LETTER NA
+ // U+092E: "म" DEVANAGARI LETTER MA
+ "\u0937", "\u0921", "\u091A", "\u0935", "\u092C", "\u0928", "\u092E",
+ // U+0964: "।" DEVANAGARI DANDA
+ // U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA
+ key("\u0964", moreKey("\u093D")),
+ // U+094D: "्" DEVANAGARI SIGN VIRAMA
"\u094D")
- // U+0964: "।" DEVANAGARI DANDA
- // U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA
- .setMoreKeysOf("\u0964", "\u093D")
.build();
private static final ExpectedKey[][] ALPHABET_SHIFTED_COMMON = new ExpectedKeyboardBuilder()
- // U+0920: "ठ" DEVANAGARI LETTER TTHA
- // U+0914: "औ" DEVANAGARI LETTER AU
- // U+0948: "ै" DEVANAGARI VOWEL SIGN AI
- // U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R
- // U+0925: "थ" DEVANAGARI LETTER THA
- // U+091E: "ञ" DEVANAGARI LETTER NYA
- // U+0942: "ू" DEVANAGARI VOWEL SIGN UU
- // U+0940: "ी" DEVANAGARI VOWEL SIGN II
- // U+0913: "ओ" DEVANAGARI LETTER O
- // U+092B: "फ" DEVANAGARI LETTER PHA
- // U+0908: "ई" DEVANAGARI LETTER II
- .setLabelsOfRow(1,
+ .setKeysOfRow(1,
+ // U+0920: "ठ" DEVANAGARI LETTER TTHA
+ // U+0914: "औ" DEVANAGARI LETTER AU
+ // U+0948: "ै" DEVANAGARI VOWEL SIGN AI
+ // U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R
+ // U+0925: "थ" DEVANAGARI LETTER THA
+ // U+091E: "ञ" DEVANAGARI LETTER NYA
+ // U+0942: "ू" DEVANAGARI VOWEL SIGN UU
+ // U+0940: "ी" DEVANAGARI VOWEL SIGN II
+ // U+0913: "ओ" DEVANAGARI LETTER O
+ // U+092B: "फ" DEVANAGARI LETTER PHA
+ // U+0908: "ई" DEVANAGARI LETTER II
"\u0920", "\u0914", "\u0948", "\u0943", "\u0925", "\u091E", "\u0942", "\u0940",
"\u0913", "\u092B", "\u0908")
- // U+0906: "आ" DEVANAGARI LETTER AA
- // U+0936: "श" DEVANAGARI LETTER SHA
- // U+0927: "ध" DEVANAGARI LETTER DHA
- // U+090A: "ऊ" DEVANAGARI LETTER UU
- // U+0918: "घ" DEVANAGARI LETTER GHA
- // U+0905: "अ" DEVANAGARI LETTER A
- // U+091D: "झ" DEVANAGARI LETTER JHA
- // U+0916: "ख" DEVANAGARI LETTER KHA
- // U+0965: "॥" DEVANAGARI DOUBLE DANDA
- // U+0910: "ऐ" DEVANAGARI LETTER AI
- // U+0903: "ः" DEVANAGARI SIGN VISARGA
- .setLabelsOfRow(2,
+ .setKeysOfRow(2,
+ // U+0906: "आ" DEVANAGARI LETTER AA
+ // U+0936: "श" DEVANAGARI LETTER SHA
+ // U+0927: "ध" DEVANAGARI LETTER DHA
+ // U+090A: "ऊ" DEVANAGARI LETTER UU
+ // U+0918: "घ" DEVANAGARI LETTER GHA
+ // U+0905: "अ" DEVANAGARI LETTER A
+ // U+091D: "झ" DEVANAGARI LETTER JHA
+ // U+0916: "ख" DEVANAGARI LETTER KHA
+ // U+0965: "॥" DEVANAGARI DOUBLE DANDA
+ // U+0910: "ऐ" DEVANAGARI LETTER AI
+ // U+0903: "ः" DEVANAGARI SIGN VISARGA
"\u0906", "\u0936", "\u0927", "\u090A", "\u0918", "\u0905", "\u091D", "\u0916",
"\u0965", "\u0910", "\u0903")
- // U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R
- // U+0922: "ढ" DEVANAGARI LETTER DDHA
- // U+091B: "छ" DEVANAGARI LETTER CHA
- // U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
- // U+092D: "भ" DEVANAGARI LETTER BHA
- // U+0923: "ण" DEVANAGARI LETTER NNA
- // U+0902: "ं" DEVANAGARI SIGN ANUSVARA
- // U+0919: "ङ" DEVANAGARI LETTER NGA
- // U+094D: "्" DEVANAGARI SIGN VIRAMA
- .setLabelsOfRow(3,
+ .setKeysOfRow(3,
+ // U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R
+ // U+0922: "ढ" DEVANAGARI LETTER DDHA
+ // U+091B: "छ" DEVANAGARI LETTER CHA
+ // U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
+ // U+092D: "भ" DEVANAGARI LETTER BHA
+ // U+0923: "ण" DEVANAGARI LETTER NNA
+ // U+0902: "ं" DEVANAGARI SIGN ANUSVARA
+ // U+0919: "ङ" DEVANAGARI LETTER NGA
+ // U+094D: "्" DEVANAGARI SIGN VIRAMA
"\u090B", "\u0922", "\u091B", "\u0901", "\u092D", "\u0923", "\u0902", "\u0919",
"\u094D")
.build();
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/NepaliTraditional.java b/tests/src/com/android/inputmethod/keyboard/layout/NepaliTraditional.java
index 658dec03e..1599fd7a6 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/NepaliTraditional.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/NepaliTraditional.java
@@ -63,7 +63,7 @@ public final class NepaliTraditional extends LayoutBase {
// U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA
key("\u0947", joinMoreKeys("\u0903", "\u093D")),
// U+0964: "।" DEVANAGARI DANDA
- key("\u0964"),
+ "\u0964",
// U+0930: "र" DEVANAGARI LETTER RA
// U+0930/U+0941: "रु" DEVANAGARI LETTER RA/DEVANAGARI VOWEL SIGN U
key("\u0930", moreKey("\u0930\u0941")));
@@ -73,9 +73,8 @@ public final class NepaliTraditional extends LayoutBase {
// U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA
key("\u0903", moreKey("\u093D")),
// U+0947: "े" DEVANAGARI VOWEL SIGN E
- key("\u0947"),
// U+0964: "।" DEVANAGARI DANDA
- key("\u0964"),
+ "\u0947", "\u0964",
// U+0930: "र" DEVANAGARI LETTER RA
key("\u0930", moreKey("!")),
// U+094D: "्" DEVANAGARI SIGN VIRAMA
@@ -94,9 +93,8 @@ public final class NepaliTraditional extends LayoutBase {
if (isPhone) {
builder.addKeysOnTheRightOfRow(3,
// U+0902: "ं" DEVANAGARI SIGN ANUSVARA
- key("\u0902"),
// U+0919: "ङ" DEVANAGARI LETTER NGA
- key("\u0919"),
+ "\u0902", "\u0919",
// U+0948: "ै" DEVANAGARI VOWEL SIGN AI
// U+0936/U+094D/U+0930:
// "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA
@@ -104,16 +102,15 @@ public final class NepaliTraditional extends LayoutBase {
} else {
builder.addKeysOnTheRightOfRow(3,
// U+0902: "ं" DEVANAGARI SIGN ANUSVARA
- key("\u0902"),
// U+0919: "ङ" DEVANAGARI LETTER NGA
- key("\u0919"),
+ "\u0902", "\u0919",
// U+0948: "ै" DEVANAGARI VOWEL SIGN AI
// U+0936/U+094D/U+0930:
// "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA
key("\u0948", moreKey("\u0936\u094D\u0930")),
// U+0930/U+0941: "रु" DEVANAGARI LETTER RA/DEVANAGARI VOWEL SIGN U
key("\u0930\u0941", moreKey("!")),
- key("?"));
+ "?");
}
return builder.build();
}
@@ -153,27 +150,28 @@ public final class NepaliTraditional extends LayoutBase {
// U+0907: "इ" DEVANAGARI LETTER I
// U+0914: "औ" DEVANAGARI LETTER AU
key("\u0907", moreKey("\u0914")))
- // U+092C: "ब" DEVANAGARI LETTER BA
- // U+0915: "क" DEVANAGARI LETTER KA
- // U+092E: "म" DEVANAGARI LETTER MA
- // U+093E: "ा" DEVANAGARI VOWEL SIGN AA
- // U+0928: "न" DEVANAGARI LETTER NA
- // U+091C: "ज" DEVANAGARI LETTER JA
- // U+0935: "व" DEVANAGARI LETTER VA
- // U+092A: "प" DEVANAGARI LETTER PA
- // U+093F: "ि" DEVANAGARI VOWEL SIGN I
- // U+0938: "स" DEVANAGARI LETTER SA
- // U+0941: "ु" DEVANAGARI VOWEL SIGN U
- .setLabelsOfRow(2,
+ .setKeysOfRow(2,
+ // U+092C: "ब" DEVANAGARI LETTER BA
+ // U+0915: "क" DEVANAGARI LETTER KA
+ // U+092E: "म" DEVANAGARI LETTER MA
+ // U+093E: "ा" DEVANAGARI VOWEL SIGN AA
+ // U+0928: "न" DEVANAGARI LETTER NA
+ // U+091C: "ज" DEVANAGARI LETTER JA
+ // U+0935: "व" DEVANAGARI LETTER VA
+ // U+092A: "प" DEVANAGARI LETTER PA
+ // U+093F: "ि" DEVANAGARI VOWEL SIGN I
+ // U+0938: "स" DEVANAGARI LETTER SA
+ // U+0941: "ु" DEVANAGARI VOWEL SIGN U
"\u092C", "\u0915", "\u092E", "\u093E", "\u0928", "\u091C", "\u0935", "\u092A",
"\u093F", "\u0938", "\u0941")
- // U+0936: "श" DEVANAGARI LETTER SHA
- // U+0939: "ह" DEVANAGARI LETTER HA
- // U+0905: "अ" DEVANAGARI LETTER A
- // U+0916: "ख" DEVANAGARI LETTER KHA
- // U+0926: "द" DEVANAGARI LETTER DA
- // U+0932: "ल" DEVANAGARI LETTER LA
- .setLabelsOfRow(3, "\u0936", "\u0939", "\u0905", "\u0916", "\u0926", "\u0932")
+ .setKeysOfRow(3,
+ // U+0936: "श" DEVANAGARI LETTER SHA
+ // U+0939: "ह" DEVANAGARI LETTER HA
+ // U+0905: "अ" DEVANAGARI LETTER A
+ // U+0916: "ख" DEVANAGARI LETTER KHA
+ // U+0926: "द" DEVANAGARI LETTER DA
+ // U+0932: "ल" DEVANAGARI LETTER LA
+ "\u0936", "\u0939", "\u0905", "\u0916", "\u0926", "\u0932")
.build();
private static final ExpectedKey[][] ALPHABET_SHIFTED_COMMON = new ExpectedKeyboardBuilder()
@@ -222,32 +220,32 @@ public final class NepaliTraditional extends LayoutBase {
// U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R
// U+0913: "ओ" DEVANAGARI LETTER O
key("\u0943", moreKey("\u0913")))
- // U+0906: "आ" DEVANAGARI LETTER AA
- // U+0919/U+094D: "ङ्" DEVANAGARI LETTER NGA/DEVANAGARI SIGN VIRAMA
- // U+0921/U+094D/U+0921:
- // "ड्ड" DEVANAGARI LETTER DDA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER DDA
- // U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
- // U+0926/U+094D/U+0926:
- // "द्द" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER DA
- // U+091D: "झ" DEVANAGARI LETTER JHA
- // U+094B: "ो" DEVANAGARI VOWEL SIGN O
- // U+092B: "फ" DEVANAGARI LETTER PHA
- // U+0940: "ी" DEVANAGARI VOWEL SIGN II
- // U+091F/U+094D/U+0920:
- // "ट्ठ" DEVANAGARI LETTER TTA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER TTHA
- // U+0942: "ू" DEVANAGARI VOWEL SIGN UU
- .setLabelsOfRow(2,
+ .setKeysOfRow(2,
+ // U+0906: "आ" DEVANAGARI LETTER AA
+ // U+0919/U+094D: "ङ्" DEVANAGARI LETTER NGA/DEVANAGARI SIGN VIRAMA
+ // U+0921/U+094D/U+0921:
+ // "ड्ड" DEVANAGARI LETTER DDA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER DDA
+ // U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
+ // U+0926/U+094D/U+0926:
+ // "द्द" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER DA
+ // U+091D: "झ" DEVANAGARI LETTER JHA
+ // U+094B: "ो" DEVANAGARI VOWEL SIGN O
+ // U+092B: "फ" DEVANAGARI LETTER PHA
+ // U+0940: "ी" DEVANAGARI VOWEL SIGN II
+ // U+091F/U+094D/U+0920:
+ // "ट्ठ" DEVANAGARI LETTER TTA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER TTHA
+ // U+0942: "ू" DEVANAGARI VOWEL SIGN UU
"\u0906", "\u0919\u094D", "\u0921\u094D\u0921", "\u0901", "\u0926\u094D\u0926",
"\u091D", "\u094B", "\u092B", "\u0940", "\u091F\u094D\u0920", "\u0942")
- // U+0915/U+094D: "क्" DEVANAGARI LETTER KA/DEVANAGARI SIGN VIRAMA
- // U+0939/U+094D/U+092E:
- // "ह्म" DEVANAGARI LETTER HA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER MA
- // U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R
- // U+0950: "ॐ" DEVANAGARI OM
- // U+094C: "ौ" DEVANAGARI VOWEL SIGN AU
- // U+0926/U+094D/U+092F:
- // "द्य" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER YA
- .setLabelsOfRow(3,
+ .setKeysOfRow(3,
+ // U+0915/U+094D: "क्" DEVANAGARI LETTER KA/DEVANAGARI SIGN VIRAMA
+ // U+0939/U+094D/U+092E:
+ // "ह्म" DEVANAGARI LETTER HA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER MA
+ // U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R
+ // U+0950: "ॐ" DEVANAGARI OM
+ // U+094C: "ौ" DEVANAGARI VOWEL SIGN AU
+ // U+0926/U+094D/U+092F:
+ // "द्य" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER YA
"\u0915\u094D", "\u0939\u094D\u092E", "\u090B", "\u0950", "\u094C",
"\u0926\u094D\u092F")
.build();
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Nordic.java b/tests/src/com/android/inputmethod/keyboard/layout/Nordic.java
index a535ad2ed..c791c404d 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Nordic.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Nordic.java
@@ -41,18 +41,18 @@ public final class Nordic extends LayoutBase {
private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
.setKeysOfRow(1,
- key("q", moreKey("1")),
- key("w", moreKey("2")),
- key("e", moreKey("3")),
- key("r", moreKey("4")),
- key("t", moreKey("5")),
- key("y", moreKey("6")),
- key("u", moreKey("7")),
- key("i", moreKey("8")),
- key("o", moreKey("9")),
- key("p", moreKey("0")),
- key(ROW1_11))
- .setLabelsOfRow(2, "a", "s", "d", "f", "g", "h", "j", "k", "l", ROW2_10, ROW2_11)
- .setLabelsOfRow(3, "z", "x", "c", "v", "b", "n", "m")
+ key("q", additionalMoreKey("1")),
+ key("w", additionalMoreKey("2")),
+ key("e", additionalMoreKey("3")),
+ key("r", additionalMoreKey("4")),
+ key("t", additionalMoreKey("5")),
+ key("y", additionalMoreKey("6")),
+ key("u", additionalMoreKey("7")),
+ key("i", additionalMoreKey("8")),
+ key("o", additionalMoreKey("9")),
+ key("p", additionalMoreKey("0")),
+ ROW1_11)
+ .setKeysOfRow(2, "a", "s", "d", "f", "g", "h", "j", "k", "l", ROW2_10, ROW2_11)
+ .setKeysOfRow(3, "z", "x", "c", "v", "b", "n", "m")
.build();
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/PcQwerty.java b/tests/src/com/android/inputmethod/keyboard/layout/PcQwerty.java
new file mode 100644
index 000000000..9da6dcc44
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/PcQwerty.java
@@ -0,0 +1,227 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.keyboard.layout;
+
+import com.android.inputmethod.keyboard.KeyboardId;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+/**
+ * The PC QWERTY alphabet keyboard.
+ */
+public final class PcQwerty extends LayoutBase {
+ private static final String LAYOUT_NAME = "pcqwerty";
+
+ public PcQwerty(final LayoutCustomizer customizer) {
+ super(customizer, Symbols.class, SymbolsShifted.class);
+ }
+
+ @Override
+ public String getName() { return LAYOUT_NAME; }
+
+ public static class PcQwertyCustomizer extends LayoutCustomizer {
+ public PcQwertyCustomizer(final Locale locale) { super(locale); }
+
+ @Override
+ public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
+ return joinKeys(SHIFT_KEY);
+ }
+
+ @Override
+ public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+ return joinKeys(SHIFT_KEY);
+ }
+
+ @Override
+ public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
+ return joinKeys(SETTINGS_KEY);
+ }
+
+ @Override
+ public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
+ return isPhone ? joinKeys(key(ENTER_KEY, EMOJI_KEY)) : joinKeys(EMOJI_KEY);
+ }
+ }
+
+ @Override
+ ExpectedKey[][] getCommonAlphabetLayout(final boolean isPhone) {
+ final LayoutCustomizer customizer = getCustomizer();
+ final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(ALPHABET_COMMON);
+ customizer.setAccentedLetters(builder);
+ builder.replaceKeyOfLabel(ROW1_1, key("`", moreKey("~")))
+ .replaceKeyOfLabel(ROW2_11, key("[", moreKey("{")))
+ .replaceKeyOfLabel(ROW2_12, key("]", moreKey("}")))
+ .replaceKeyOfLabel(ROW2_13, key("\\", moreKey("|")))
+ .replaceKeyOfLabel(ROW3_10, key(";", moreKey(":")))
+ .replaceKeyOfLabel(ROW3_11, key("'", joinMoreKeys(additionalMoreKey("\""),
+ customizer.getDoubleQuoteMoreKeys(),
+ customizer.getSingleQuoteMoreKeys())))
+ .setAdditionalMoreKeysPositionOf("'", 4)
+ .replaceKeyOfLabel(ROW4_8, key(",", moreKey("<")))
+ .replaceKeyOfLabel(ROW4_9, key(".", moreKey(">")))
+ // U+00BF: "¿" INVERTED QUESTION MARK
+ .replaceKeyOfLabel(ROW4_10, key("/", joinMoreKeys("?", "\u00BF")));
+ if (isPhone) {
+ // U+221E: "∞" INFINITY
+ // U+2260: "≠" NOT EQUAL TO
+ // U+2248: "≈" ALMOST EQUAL TO
+ builder.replaceKeyOfLabel(ROW1_13, key("=",
+ joinMoreKeys("\u221E", "\u2260", "\u2248", "+")));
+ } else {
+ // U+221E: "∞" INFINITY
+ // U+2260: "≠" NOT EQUAL TO
+ // U+2248: "≈" ALMOST EQUAL TO
+ builder.replaceKeyOfLabel(ROW1_13, key("=",
+ joinMoreKeys("+", "\u221E", "\u2260", "\u2248")));
+ }
+ return builder.build();
+ }
+
+ @Override
+ ExpectedKey[][] getCommonAlphabetShiftLayout(final boolean isPhone, final int elementId) {
+ final ExpectedKeyboardBuilder builder;
+ if (elementId == KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED
+ || elementId == KeyboardId.ELEMENT_ALPHABET_SHIFT_LOCKED) {
+ builder = new ExpectedKeyboardBuilder(getCommonAlphabetLayout(isPhone));
+ } else {
+ builder = new ExpectedKeyboardBuilder(ALPHABET_COMMON);
+ final LayoutCustomizer customizer = getCustomizer();
+ customizer.setAccentedLetters(builder);
+ builder.setKeysOfRow(1,
+ "~",
+ // U+00A1: "¡" INVERTED EXCLAMATION MARK
+ key("!", moreKey("\u00A1")),
+ "@", "#",
+ customizer.getCurrencyKey(),
+ // U+2030: "‰" PER MILLE SIGN
+ key("%", moreKey("\u2030")),
+ "^", "&",
+ // U+2020: "†" DAGGER
+ // U+2021: "‡" DOUBLE DAGGER
+ // U+2605: "★" BLACK STAR
+ key("*", joinMoreKeys("\u2020", "\u2021", "\u2605")),
+ "(", ")", "_",
+ // U+00B1: "±" PLUS-MINUS SIGN
+ // U+00D7: "×" MULTIPLICATION SIGN
+ // U+00F7: "÷" DIVISION SIGN
+ // U+221A: "√" SQUARE ROOT
+ key("+", joinMoreKeys("\u00B1", "\u00D7", "\u00F7", "\u221A")))
+ .replaceKeyOfLabel(ROW2_11, key("{"))
+ .replaceKeyOfLabel(ROW2_12, key("}"))
+ .replaceKeyOfLabel(ROW2_13, key("|"))
+ .replaceKeyOfLabel(ROW3_10, key(":"))
+ .replaceKeyOfLabel(ROW3_11, key("\"", joinMoreKeys(
+ customizer.getDoubleQuoteMoreKeys(),
+ customizer.getSingleQuoteMoreKeys())))
+ // U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ // U+2264: "≤" LESS-THAN OR EQUAL TO
+ // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ .replaceKeyOfLabel(ROW4_8, key("<", joinMoreKeys("\u2039", "\u2264", "\u00AB")))
+ // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ // U+2265: "≥" GREATER-THAN EQUAL TO
+ // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ .replaceKeyOfLabel(ROW4_9, key(">", joinMoreKeys("\u203A", "\u2265", "\u00BB")))
+ // U+00BF: "¿" INVERTED QUESTION MARK
+ .replaceKeyOfLabel(ROW4_10, key("?", moreKey("\u00BF")));
+ }
+ builder.toUpperCase(getLocale());
+ return builder.build();
+ }
+
+ // Helper method to create alphabet layout by adding special function keys.
+ @Override
+ ExpectedKeyboardBuilder convertCommonLayoutToKeyboard(final ExpectedKeyboardBuilder builder,
+ final boolean isPhone) {
+ final LayoutCustomizer customizer = getCustomizer();
+ builder.setKeysOfRow(5, (Object[])customizer.getSpaceKeys(isPhone));
+ builder.addKeysOnTheLeftOfRow(5, (Object[])customizer.getKeysLeftToSpacebar(isPhone));
+ builder.addKeysOnTheRightOfRow(5, (Object[])customizer.getKeysRightToSpacebar(isPhone));
+ if (isPhone) {
+ builder.addKeysOnTheRightOfRow(3, DELETE_KEY);
+ } else {
+ builder.addKeysOnTheRightOfRow(1, DELETE_KEY)
+ .addKeysOnTheLeftOfRow(2, TAB_KEY)
+ .addKeysOnTheRightOfRow(3, ENTER_KEY);
+ }
+ builder.addKeysOnTheLeftOfRow(4, (Object[])customizer.getLeftShiftKeys(isPhone))
+ .addKeysOnTheRightOfRow(4, (Object[])customizer.getRightShiftKeys(isPhone));
+ return builder;
+ }
+
+ @Override
+ public ExpectedKey[][] getLayout(final boolean isPhone, final int elementId) {
+ if (elementId == KeyboardId.ELEMENT_SYMBOLS
+ || elementId == KeyboardId.ELEMENT_SYMBOLS_SHIFTED) {
+ return null;
+ }
+ return super.getLayout(isPhone, elementId);
+ }
+
+ private static final String ROW1_1 = "ROW1_1";
+ private static final String ROW1_13 = "ROW1_13";
+ private static final String ROW2_11 = "ROW2_11";
+ private static final String ROW2_12 = "ROW2_12";
+ private static final String ROW2_13 = "ROW2_13";
+ private static final String ROW3_10 = "ROW3_10";
+ private static final String ROW3_11 = "ROW3_11";
+ private static final String ROW4_8 = "ROW4_8";
+ private static final String ROW4_9 = "ROW4_9";
+ private static final String ROW4_10 = "ROW4_10";
+
+ private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
+ .setKeysOfRow(1,
+ ROW1_1,
+ // U+00A1: "¡" INVERTED EXCLAMATION MARK
+ // U+00B9: "¹" SUPERSCRIPT ONE
+ // U+00BD: "½" VULGAR FRACTION ONE HALF
+ // U+2153: "⅓" VULGAR FRACTION ONE THIRD
+ // U+00BC: "¼" VULGAR FRACTION ONE QUARTER
+ // U+215B: "⅛" VULGAR FRACTION ONE EIGHTH
+ key("1", joinMoreKeys(
+ "!", "\u00A1", "\u00B9", "\u00BD", "\u2153", "\u00BC", "\u215B")),
+ // U+00B2: "²" SUPERSCRIPT TWO
+ // U+2154: "⅔" VULGAR FRACTION TWO THIRDS
+ key("2", joinMoreKeys("@", "\u00B2", "\u2154")),
+ // U+00B3: "³" SUPERSCRIPT THREE
+ // U+00BE: "¾" VULGAR FRACTION THREE QUARTERS
+ // U+215C: "⅜" VULGAR FRACTION THREE EIGHTHS
+ key("3", joinMoreKeys("#", "\u00B3", "\u00BE", "\u215C")),
+ // U+2074: "⁴" SUPERSCRIPT FOUR
+ key("4", joinMoreKeys("$", "\u2074")),
+ // U+215D: "⅝" VULGAR FRACTION FIVE EIGHTHS
+ key("5", joinMoreKeys("%", "\u215D")),
+ key("6", moreKey("^")),
+ // U+215E: "⅞" VULGAR FRACTION SEVEN EIGHTHS
+ key("7", joinMoreKeys("&", "\u215E")),
+ key("8", moreKey("*")),
+ key("9", moreKey("(")),
+ // U+207F: "ⁿ" SUPERSCRIPT LATIN SMALL LETTER N
+ // U+2205: "∅" EMPTY SET
+ key("0", joinMoreKeys(")", "\u207F", "\u2205")),
+ // U+2013: "–" EN DASH
+ // U+2014: "—" EM DASH
+ // U+00B7: "·" MIDDLE DOT
+ key("-", joinMoreKeys("_", "\u2013", "\u2014", "\u00B7")),
+ ROW1_13)
+ .setKeysOfRow(2, "q", "w", "e", "r", "t", "y", "u", "i", "o", "p",
+ ROW2_11, ROW2_12, ROW2_13)
+ .setKeysOfRow(3, "a", "s", "d", "f", "g", "h", "j", "k", "l", ROW3_10, ROW3_11)
+ .setKeysOfRow(4, "z", "x", "c", "v", "b", "n", "m", ROW4_8, ROW4_9, ROW4_10)
+ .build();
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Qwerty.java b/tests/src/com/android/inputmethod/keyboard/layout/Qwerty.java
index a0da7e37d..d790a1e53 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Qwerty.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Qwerty.java
@@ -37,17 +37,17 @@ public final class Qwerty extends LayoutBase {
private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
.setKeysOfRow(1,
- key("q", moreKey("1")),
- key("w", moreKey("2")),
- key("e", moreKey("3")),
- key("r", moreKey("4")),
- key("t", moreKey("5")),
- key("y", moreKey("6")),
- key("u", moreKey("7")),
- key("i", moreKey("8")),
- key("o", moreKey("9")),
- key("p", moreKey("0")))
- .setLabelsOfRow(2, "a", "s", "d", "f", "g", "h", "j", "k", "l")
- .setLabelsOfRow(3, "z", "x", "c", "v", "b", "n", "m")
+ key("q", additionalMoreKey("1")),
+ key("w", additionalMoreKey("2")),
+ key("e", additionalMoreKey("3")),
+ key("r", additionalMoreKey("4")),
+ key("t", additionalMoreKey("5")),
+ key("y", additionalMoreKey("6")),
+ key("u", additionalMoreKey("7")),
+ key("i", additionalMoreKey("8")),
+ key("o", additionalMoreKey("9")),
+ key("p", additionalMoreKey("0")))
+ .setKeysOfRow(2, "a", "s", "d", "f", "g", "h", "j", "k", "l")
+ .setKeysOfRow(3, "z", "x", "c", "v", "b", "n", "m")
.build();
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Qwertz.java b/tests/src/com/android/inputmethod/keyboard/layout/Qwertz.java
index 25f4734c4..26ba6cffb 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Qwertz.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Qwertz.java
@@ -34,17 +34,17 @@ public final class Qwertz extends LayoutBase {
private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
.setKeysOfRow(1,
- key("q", moreKey("1")),
- key("w", moreKey("2")),
- key("e", moreKey("3")),
- key("r", moreKey("4")),
- key("t", moreKey("5")),
- key("z", moreKey("6")),
- key("u", moreKey("7")),
- key("i", moreKey("8")),
- key("o", moreKey("9")),
- key("p", moreKey("0")))
- .setLabelsOfRow(2, "a", "s", "d", "f", "g", "h", "j", "k", "l")
- .setLabelsOfRow(3, "y", "x", "c", "v", "b", "n", "m")
+ key("q", additionalMoreKey("1")),
+ key("w", additionalMoreKey("2")),
+ key("e", additionalMoreKey("3")),
+ key("r", additionalMoreKey("4")),
+ key("t", additionalMoreKey("5")),
+ key("z", additionalMoreKey("6")),
+ key("u", additionalMoreKey("7")),
+ key("i", additionalMoreKey("8")),
+ key("o", additionalMoreKey("9")),
+ key("p", additionalMoreKey("0")))
+ .setKeysOfRow(2, "a", "s", "d", "f", "g", "h", "j", "k", "l")
+ .setKeysOfRow(3, "y", "x", "c", "v", "b", "n", "m")
.build();
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/SouthSlavic.java b/tests/src/com/android/inputmethod/keyboard/layout/SouthSlavic.java
index ad226ddec..be8b435d4 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/SouthSlavic.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/SouthSlavic.java
@@ -63,47 +63,47 @@ public final class SouthSlavic extends LayoutBase {
private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
.setKeysOfRow(1,
// U+0459: "љ" CYRILLIC SMALL LETTER LJE
- key("\u0459", moreKey("1")),
+ key("\u0459", additionalMoreKey("1")),
// U+045A: "њ" CYRILLIC SMALL LETTER NJE
- key("\u045A", moreKey("2")),
+ key("\u045A", additionalMoreKey("2")),
// U+0435: "е" CYRILLIC SMALL LETTER IE
- key("\u0435", moreKey("3")),
+ key("\u0435", additionalMoreKey("3")),
// U+0440: "р" CYRILLIC SMALL LETTER ER
- key("\u0440", moreKey("4")),
+ key("\u0440", additionalMoreKey("4")),
// U+0442: "т" CYRILLIC SMALL LETTER TE
- key("\u0442", moreKey("5")),
- key(ROW1_6, moreKey("6")),
+ key("\u0442", additionalMoreKey("5")),
+ key(ROW1_6, additionalMoreKey("6")),
// U+0443: "у" CYRILLIC SMALL LETTER U
- key("\u0443", moreKey("7")),
+ key("\u0443", additionalMoreKey("7")),
// U+0438: "и" CYRILLIC SMALL LETTER I
- key("\u0438", moreKey("8")),
+ key("\u0438", additionalMoreKey("8")),
// U+043E: "о" CYRILLIC SMALL LETTER O
- key("\u043E", moreKey("9")),
+ key("\u043E", additionalMoreKey("9")),
// U+043F: "п" CYRILLIC SMALL LETTER PE
- key("\u043F", moreKey("0")),
+ key("\u043F", additionalMoreKey("0")),
// U+0448: "ш" CYRILLIC SMALL LETTER SHA
- key("\u0448"))
- // U+0430: "а" CYRILLIC SMALL LETTER A
- // U+0441: "с" CYRILLIC SMALL LETTER ES
- // U+0434: "д" CYRILLIC SMALL LETTER DE
- // U+0444: "ф" CYRILLIC SMALL LETTER EF
- // U+0433: "г" CYRILLIC SMALL LETTER GHE
- // U+0445: "х" CYRILLIC SMALL LETTER HA
- // U+0458: "ј" CYRILLIC SMALL LETTER JE
- // U+043A: "к" CYRILLIC SMALL LETTER KA
- // U+043B: "л" CYRILLIC SMALL LETTER EL
- // U+0447: "ч" CYRILLIC SMALL LETTER CHE
- .setLabelsOfRow(2,
+ "\u0448")
+ .setKeysOfRow(2,
+ // U+0430: "а" CYRILLIC SMALL LETTER A
+ // U+0441: "с" CYRILLIC SMALL LETTER ES
+ // U+0434: "д" CYRILLIC SMALL LETTER DE
+ // U+0444: "ф" CYRILLIC SMALL LETTER EF
+ // U+0433: "г" CYRILLIC SMALL LETTER GHE
+ // U+0445: "х" CYRILLIC SMALL LETTER HA
+ // U+0458: "ј" CYRILLIC SMALL LETTER JE
+ // U+043A: "к" CYRILLIC SMALL LETTER KA
+ // U+043B: "л" CYRILLIC SMALL LETTER EL
+ // U+0447: "ч" CYRILLIC SMALL LETTER CHE
"\u0430", "\u0441", "\u0434", "\u0444", "\u0433", "\u0445", "\u0458", "\u043A",
"\u043B", "\u0447", ROW2_11)
- // U+045F: "џ" CYRILLIC SMALL LETTER DZHE
- // U+0446: "ц" CYRILLIC SMALL LETTER TSE
- // U+0432: "в" CYRILLIC SMALL LETTER VE
- // U+0431: "б" CYRILLIC SMALL LETTER BE
- // U+043D: "н" CYRILLIC SMALL LETTER EN
- // U+043C: "м" CYRILLIC SMALL LETTER EM
- // U+0436: "ж" CYRILLIC SMALL LETTER ZHE
- .setLabelsOfRow(3,
+ .setKeysOfRow(3,
+ // U+045F: "џ" CYRILLIC SMALL LETTER DZHE
+ // U+0446: "ц" CYRILLIC SMALL LETTER TSE
+ // U+0432: "в" CYRILLIC SMALL LETTER VE
+ // U+0431: "б" CYRILLIC SMALL LETTER BE
+ // U+043D: "н" CYRILLIC SMALL LETTER EN
+ // U+043C: "м" CYRILLIC SMALL LETTER EM
+ // U+0436: "ж" CYRILLIC SMALL LETTER ZHE
ROW3_1, "\u045F", "\u0446", "\u0432", "\u0431", "\u043D", "\u043C", ROW3_8,
"\u0436")
.build();
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Spanish.java b/tests/src/com/android/inputmethod/keyboard/layout/Spanish.java
index 5ccc364ca..225b9f604 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Spanish.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Spanish.java
@@ -36,17 +36,17 @@ public final class Spanish extends LayoutBase {
private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
.setKeysOfRow(1,
- key("q", moreKey("1")),
- key("w", moreKey("2")),
- key("e", moreKey("3")),
- key("r", moreKey("4")),
- key("t", moreKey("5")),
- key("y", moreKey("6")),
- key("u", moreKey("7")),
- key("i", moreKey("8")),
- key("o", moreKey("9")),
- key("p", moreKey("0")))
- .setLabelsOfRow(2, "a", "s", "d", "f", "g", "h", "j", "k", "l", ROW2_10)
- .setLabelsOfRow(3, "z", "x", "c", "v", "b", "n", "m")
+ key("q", additionalMoreKey("1")),
+ key("w", additionalMoreKey("2")),
+ key("e", additionalMoreKey("3")),
+ key("r", additionalMoreKey("4")),
+ key("t", additionalMoreKey("5")),
+ key("y", additionalMoreKey("6")),
+ key("u", additionalMoreKey("7")),
+ key("i", additionalMoreKey("8")),
+ key("o", additionalMoreKey("9")),
+ key("p", additionalMoreKey("0")))
+ .setKeysOfRow(2, "a", "s", "d", "f", "g", "h", "j", "k", "l", ROW2_10)
+ .setKeysOfRow(3, "z", "x", "c", "v", "b", "n", "m")
.build();
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Swiss.java b/tests/src/com/android/inputmethod/keyboard/layout/Swiss.java
index 5bc45d4cb..01a602054 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Swiss.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Swiss.java
@@ -38,18 +38,18 @@ public final class Swiss extends LayoutBase {
private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
.setKeysOfRow(1,
- key("q", moreKey("1")),
- key("w", moreKey("2")),
- key("e", moreKey("3")),
- key("r", moreKey("4")),
- key("t", moreKey("5")),
- key("z", moreKey("6")),
- key("u", moreKey("7")),
- key("i", moreKey("8")),
- key("o", moreKey("9")),
- key("p", moreKey("0")),
- key(ROW1_11))
- .setLabelsOfRow(2, "a", "s", "d", "f", "g", "h", "j", "k", "l", ROW2_10, ROW2_11)
- .setLabelsOfRow(3, "y", "x", "c", "v", "b", "n", "m")
+ key("q", additionalMoreKey("1")),
+ key("w", additionalMoreKey("2")),
+ key("e", additionalMoreKey("3")),
+ key("r", additionalMoreKey("4")),
+ key("t", additionalMoreKey("5")),
+ key("z", additionalMoreKey("6")),
+ key("u", additionalMoreKey("7")),
+ key("i", additionalMoreKey("8")),
+ key("o", additionalMoreKey("9")),
+ key("p", additionalMoreKey("0")),
+ ROW1_11)
+ .setKeysOfRow(2, "a", "s", "d", "f", "g", "h", "j", "k", "l", ROW2_10, ROW2_11)
+ .setKeysOfRow(3, "y", "x", "c", "v", "b", "n", "m")
.build();
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Symbols.java b/tests/src/com/android/inputmethod/keyboard/layout/Symbols.java
index 9ce418770..726fefc68 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Symbols.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Symbols.java
@@ -46,7 +46,7 @@ public class Symbols extends AbstractLayoutBase {
.addKeysOnTheRightOfRow(4, key(ENTER_KEY, EMOJI_KEY));
} else {
// Tablet symbols keyboard has extra two keys at the left edge of the 3rd row.
- builder.addKeysOnTheLeftOfRow(3, joinKeys("\\", "="));
+ builder.addKeysOnTheLeftOfRow(3, (Object[])joinKeys("\\", "="));
builder.addKeysOnTheRightOfRow(1, DELETE_KEY)
.addKeysOnTheRightOfRow(2, ENTER_KEY)
.addKeysOnTheLeftOfRow(3, customizer.getSymbolsShiftKey(isPhone))
@@ -136,11 +136,10 @@ public class Symbols extends AbstractLayoutBase {
key("4", moreKey("\u2074")),
// U+215D: "⅝" VULGAR FRACTION FIVE EIGHTHS
key("5", moreKey("\u215D")),
- key("6"),
+ "6",
// U+215E: "⅞" VULGAR FRACTION SEVEN EIGHTHS
key("7", moreKey("\u215E")),
- key("8"),
- key("9"),
+ "8", "9",
// U+207F: "ⁿ" SUPERSCRIPT LATIN SMALL LETTER N
// U+2205: "∅" EMPTY SET
key("0", joinMoreKeys("\u207F", "\u2205")))
@@ -148,7 +147,7 @@ public class Symbols extends AbstractLayoutBase {
key("@"), key("#"), key(CURRENCY),
// U+2030: "‰" PER MILLE SIGN
key("%", moreKey("\u2030")),
- key("&"),
+ "&",
// U+2013: "–" EN DASH
// U+2014: "—" EM DASH
// U+00B7: "·" MIDDLE DOT
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java b/tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java
index 7cbd2fbb0..f611310af 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java
@@ -34,7 +34,7 @@ public class SymbolsShifted extends AbstractLayoutBase {
public ExpectedKey[][] getLayout(final boolean isPhone) {
final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(SYMBOLS_SHIFTED_COMMON);
final LayoutCustomizer customizer = mCustomizer;
- builder.replaceKeyOfLabel(OTHER_CURRENCIES, customizer.getOtherCurrencyKeys());
+ builder.replaceKeyOfLabel(OTHER_CURRENCIES, (Object[])customizer.getOtherCurrencyKeys());
if (isPhone) {
builder.addKeysOnTheLeftOfRow(3, customizer.getBackToSymbolsKey())
.addKeysOnTheRightOfRow(3, DELETE_KEY)
@@ -44,7 +44,7 @@ public class SymbolsShifted extends AbstractLayoutBase {
// Tablet symbols shifted keyboard has extra two keys at the right edge of the 3rd row.
// U+00BF: "¿" INVERTED QUESTION MARK
// U+00A1: "¡" INVERTED EXCLAMATION MARK
- builder.addKeysOnTheRightOfRow(3, joinKeys("\u00A1", "\u00BF"));
+ builder.addKeysOnTheRightOfRow(3, (Object[])joinKeys("\u00A1", "\u00BF"));
builder.addKeysOnTheRightOfRow(1, DELETE_KEY)
.addKeysOnTheRightOfRow(2, ENTER_KEY)
.addKeysOnTheLeftOfRow(3, customizer.getBackToSymbolsKey())
@@ -72,10 +72,8 @@ public class SymbolsShifted extends AbstractLayoutBase {
// Common symbols shifted keyboard layout.
private static final ExpectedKey[][] SYMBOLS_SHIFTED_COMMON = new ExpectedKeyboardBuilder()
.setKeysOfRow(1,
- key("~"),
// U+0060: "`" GRAVE ACCENT
- key("\u0060"),
- key("|"),
+ "~", "\u0060", "|",
// U+2022: "•" BULLET
// U+266A: "♪" EIGHTH NOTE
// U+2665: "♥" BLACK HEART SUIT
@@ -84,21 +82,20 @@ public class SymbolsShifted extends AbstractLayoutBase {
// U+2663: "♣" BLACK CLUB SUIT
key("\u2022", joinMoreKeys("\u266A", "\u2665", "\u2660", "\u2666", "\u2663")),
// U+221A: "√" SQUARE ROOT
- key("\u221A"),
+ "\u221A",
// U+03C0: "π" GREEK SMALL LETTER PI
// U+03A0: "Π" GREEK CAPITAL LETTER PI
key("\u03C0", moreKey("\u03A0")),
// U+00F7: "÷" DIVISION SIGN
- key("\u00F7"),
// U+00D7: "×" MULTIPLICATION SIGN
- key("\u00D7"),
+ "\u00F7", "\u00D7",
// U+00B6: "¶" PILCROW SIGN
// U+00A7: "§" SECTION SIGN
key("\u00B6", moreKey("\u00A7")),
// U+2206: "∆" INCREMENT
- key("\u2206"))
+ "\u2206")
.setKeysOfRow(2,
- key(OTHER_CURRENCIES),
+ OTHER_CURRENCIES,
// U+2191: "↑" UPWARDS ARROW
// U+2193: "↓" DOWNWARDS ARROW
// U+2190: "←" LEFTWARDS ARROW
@@ -112,9 +109,8 @@ public class SymbolsShifted extends AbstractLayoutBase {
// U+2248: "≈" ALMOST EQUAL TO
// U+221E: "∞" INFINITY
key("=", joinMoreKeys("\u2260", "\u2248", "\u221E")),
- key("{"),
- key("}"))
- .setLabelsOfRow(3,
+ "{", "}")
+ .setKeysOfRow(3,
// U+00A9: "©" COPYRIGHT SIGN
// U+00AE: "®" REGISTERED SIGN
// U+2122: "™" TRADE MARK SIGN
@@ -129,7 +125,7 @@ public class SymbolsShifted extends AbstractLayoutBase {
// U+2265: "≥" GREATER-THAN EQUAL TO
// U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
key(">", joinMoreKeys("\u203A", "\u2265", "\u00BB")),
- SPACE_KEY, key(","),
+ SPACE_KEY, ",",
// U+2026: "…" HORIZONTAL ELLIPSIS
key(".", moreKey("\u2026")))
.build();
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Thai.java b/tests/src/com/android/inputmethod/keyboard/layout/Thai.java
index 64081a138..253c93b83 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Thai.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Thai.java
@@ -69,11 +69,11 @@ public final class Thai extends LayoutBase {
final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(ALPHABET_COMMON);
if (isPhone) {
// U+0E03: "ฃ" THAI CHARACTER KHO KHUAT
- builder.addKeysOnTheRightOfRow(3, key("\u0E03"));
+ builder.addKeysOnTheRightOfRow(3, "\u0E03");
} else {
// U+0E03: "ฃ" THAI CHARACTER KHO KHUAT
- builder.addKeysOnTheRightOfRow(2, key("\u0E03"))
- .addKeysOnTheRightOfRow(4, EXCLAMATION_AND_QUESTION_MARKS);
+ builder.addKeysOnTheRightOfRow(2, "\u0E03")
+ .addKeysOnTheRightOfRow(4, (Object[])EXCLAMATION_AND_QUESTION_MARKS);
}
return builder.build();
}
@@ -88,10 +88,10 @@ public final class Thai extends LayoutBase {
ALPHABET_SHIFTED_COMMON);
if (isPhone) {
// U+0E05: "ฅ" THAI CHARACTER KHO KHON
- builder.addKeysOnTheRightOfRow(3, key("\u0E05"));
+ builder.addKeysOnTheRightOfRow(3, "\u0E05");
} else {
// U+0E05: "ฅ" THAI CHARACTER KHO KHON
- builder.addKeysOnTheRightOfRow(2, key("\u0E05"));
+ builder.addKeysOnTheRightOfRow(2, "\u0E05");
}
return builder.build();
}
@@ -101,11 +101,9 @@ public final class Thai extends LayoutBase {
ExpectedKeyboardBuilder convertCommonLayoutToKeyboard(final ExpectedKeyboardBuilder builder,
final boolean isPhone) {
final LayoutCustomizer customizer = getCustomizer();
- final ExpectedKey[] spacebar = joinKeys(
- customizer.getKeysLeftToSpacebar(isPhone),
- customizer.getSpaceKeys(isPhone),
- customizer.getKeysRightToSpacebar(isPhone));
- builder.setKeysOfRow(5, spacebar);
+ builder.setKeysOfRow(5, (Object[])customizer.getSpaceKeys(isPhone));
+ builder.addKeysOnTheLeftOfRow(5, (Object[])customizer.getKeysLeftToSpacebar(isPhone));
+ builder.addKeysOnTheRightOfRow(5, (Object[])customizer.getKeysRightToSpacebar(isPhone));
if (isPhone) {
builder.addKeysOnTheRightOfRow(4, DELETE_KEY)
.addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey())
@@ -116,15 +114,15 @@ public final class Thai extends LayoutBase {
.addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey(), SETTINGS_KEY)
.addKeysOnTheRightOfRow(5, EMOJI_KEY);
}
- builder.addKeysOnTheLeftOfRow(4, customizer.getLeftShiftKeys(isPhone))
- .addKeysOnTheRightOfRow(4, customizer.getRightShiftKeys(isPhone));
+ builder.addKeysOnTheLeftOfRow(4, (Object[])customizer.getLeftShiftKeys(isPhone))
+ .addKeysOnTheRightOfRow(4, (Object[])customizer.getRightShiftKeys(isPhone));
return builder;
}
private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
.setKeysOfRow(1,
// U+0E45: "ๅ" THAI CHARACTER LAKKHANGYAO
- key("\u0E45"),
+ "\u0E45",
// U+0E51: "๑" THAI DIGIT ONE
key("/", joinMoreKeys("1", "\u0E51")),
// U+0E52: "๒" THAI DIGIT TWO
@@ -159,160 +157,110 @@ public final class Thai extends LayoutBase {
// U+0E50: "๐" THAI DIGIT ZERO
key("\u0E46", joinMoreKeys("0", "\u0E50")),
// U+0E44: "ไ" THAI CHARACTER SARA AI MAIMALAI
- key("\u0E44"),
// U+0E33: "ำ" THAI CHARACTER SARA AM
- key("\u0E33"),
// U+0E1E: "พ" THAI CHARACTER PHO PHAN
- key("\u0E1E"),
// U+0E30: "ะ" THAI CHARACTER SARA A
- key("\u0E30"),
+ "\u0E44", "\u0E33", "\u0E1E", "\u0E30",
// U+0E31: " ั" THAI CHARACTER MAI HAN-AKAT
key(" \u0E31", "\u0E31"),
// U+0E35: " ี" HAI CHARACTER SARA II
key(" \u0E35", "\u0E35"),
// U+0E23: "ร" THAI CHARACTER RO RUA
- key("\u0E23"),
// U+0E19: "น" THAI CHARACTER NO NU
- key("\u0E19"),
// U+0E22: "ย" THAI CHARACTER YO YAK
- key("\u0E22"),
// U+0E1A: "บ" THAI CHARACTER BO BAIMAI
- key("\u0E1A"),
// U+0E25: "ล" THAI CHARACTER LO LING
- key("\u0E25"))
+ "\u0E23", "\u0E19", "\u0E22", "\u0E1A", "\u0E25")
.setKeysOfRow(3,
// U+0E1F: "ฟ" THAI CHARACTER FO FAN
- key("\u0E1F"),
// U+0E2B: "ห" THAI CHARACTER HO HIP
- key("\u0E2B"),
// U+0E01: "ก" THAI CHARACTER KO KAI
- key("\u0E01"),
// U+0E14: "ด" THAI CHARACTER DO DEK
- key("\u0E14"),
// U+0E40: "เ" THAI CHARACTER SARA E
- key("\u0E40"),
+ "\u0E1F", "\u0E2B", "\u0E01", "\u0E14", "\u0E40",
// U+0E49: " ้" THAI CHARACTER MAI THO
key(" \u0E49", "\u0E49"),
// U+0E48: " ่" THAI CHARACTER MAI EK
key(" \u0E48", "\u0E48"),
// U+0E32: "า" THAI CHARACTER SARA AA
- key("\u0E32"),
// U+0E2A: "ส" THAI CHARACTER SO SUA
- key("\u0E2A"),
// U+0E27: "ว" THAI CHARACTER WO WAEN
- key("\u0E27"),
// U+0E07: "ง" THAI CHARACTER NGO NGU
- key("\u0E07"))
+ "\u0E32", "\u0E2A", "\u0E27", "\u0E07")
.setKeysOfRow(4,
// U+0E1C: "ผ" THAI CHARACTER PHO PHUNG
- key("\u0E1C"),
// U+0E1B: "ป" THAI CHARACTER PO PLA
- key("\u0E1B"),
// U+0E41: "แ" THAI CHARACTER SARA AE
- key("\u0E41"),
// U+0E2D: "อ" THAI CHARACTER O ANG
- key("\u0E2D"),
+ "\u0E1C", "\u0E1B", "\u0E41", "\u0E2D",
// U+0E34: " ิ" THAI CHARACTER SARA I
key(" \u0E34", "\u0E34"),
// U+0E37: " ื" THAI CHARACTER SARA UEE
key(" \u0E37", "\u0E37"),
// U+0E17: "ท" THAI CHARACTER THO THAHAN
- key("\u0E17"),
// U+0E21: "ม" THAI CHARACTER MO MA
- key("\u0E21"),
// U+0E43: "ใ" THAI CHARACTER SARA AI MAIMUAN
- key("\u0E43"),
// U+0E1D: "ฝ" THAI CHARACTER FO FA
- key("\u0E1D"))
+ "\u0E17", "\u0E21", "\u0E43", "\u0E1D")
.build();
private static final ExpectedKey[][] ALPHABET_SHIFTED_COMMON = new ExpectedKeyboardBuilder()
.setKeysOfRow(1,
- key("+"),
// U+0E51: "๑" THAI DIGIT ONE
- key("\u0E51"),
// U+0E52: "๒" THAI DIGIT TWO
- key("\u0E52"),
// U+0E53: "๓" THAI DIGIT THREE
- key("\u0E53"),
// U+0E54: "๔" THAI DIGIT FOUR
- key("\u0E54"),
// U+0E39: " ู" THAI CHARACTER SARA UU
+ "+", "\u0E51", "\u0E52", "\u0E53", "\u0E54",
key(" \u0E39", "\u0E39"),
// U+0E3F: "฿" THAI CURRENCY SYMBOL BAHT
- key("\u0E3F"),
// U+0E55: "๕" THAI DIGIT FIVE
- key("\u0E55"),
// U+0E56: "๖" THAI DIGIT SIX
- key("\u0E56"),
// U+0E57: "๗" THAI DIGIT SEVEN
- key("\u0E57"),
// U+0E58: "๘" THAI DIGIT EIGHT
- key("\u0E58"),
// U+0E59: "๙" THAI DIGIT NINE
- key("\u0E59"))
+ "\u0E3F", "\u0E55", "\u0E56", "\u0E57", "\u0E58", "\u0E59")
.setKeysOfRow(2,
// U+0E50: "๐" THAI DIGIT ZERO
- key("\u0E50"),
- key("\""),
// U+0E0E: "ฎ" THAI CHARACTER DO CHADA
- key("\u0E0E"),
// U+0E11: "ฑ" THAI CHARACTER THO NANGMONTHO
- key("\u0E11"),
// U+0E18: "ธ" THAI CHARACTER THO THONG
- key("\u0E18"),
+ "\u0E50", "\"", "\u0E0E", "\u0E11", "\u0E18",
// U+0E4D: " ํ" THAI CHARACTER THANTHAKHAT
key(" \u0E4D", "\u0E4D"),
// U+0E4A: " ๊" THAI CHARACTER MAI TRI
key(" \u0E4A", "\u0E4A"),
// U+0E13: "ณ" THAI CHARACTER NO NEN
- key("\u0E13"),
// U+0E2F: "ฯ" THAI CHARACTER PAIYANNOI
- key("\u0E2F"),
// U+0E0D: "ญ" THAI CHARACTER YO YING
- key("\u0E0D"),
// U+0E10: "ฐ" THAI CHARACTER THO THAN
- key("\u0E10"),
- key(","))
+ "\u0E13", "\u0E2F", "\u0E0D", "\u0E10", ",")
.setKeysOfRow(3,
// U+0E24: "ฤ" THAI CHARACTER RU
- key("\u0E24"),
// U+0E06: "ฆ" THAI CHARACTER KHO RAKHANG
- key("\u0E06"),
// U+0E0F: "ฏ" THAI CHARACTER TO PATAK
- key("\u0E0F"),
// U+0E42: "โ" THAI CHARACTER SARA O
- key("\u0E42"),
// U+0E0C: "ฌ" THAI CHARACTER CHO CHOE
- key("\u0E0C"),
+ "\u0E24", "\u0E06", "\u0E0F", "\u0E42", "\u0E0C",
// U+0E47: " ็" THAI CHARACTER MAITAIKHU
key(" \u0E47", "\u0E47"),
// U+0E4B: " ๋" THAI CHARACTER MAI CHATTAWA
key(" \u0E4B", "\u0E4B"),
// U+0E29: "ษ" THAI CHARACTER SO RUSI
- key("\u0E29"),
// U+0E28: "ศ" THAI CHARACTER SO SALA
- key("\u0E28"),
// U+0E0B: "ซ" THAI CHARACTER SO SO
- key("\u0E0B"),
- key("."))
+ "\u0E29", "\u0E28", "\u0E0B", ".")
.setKeysOfRow(4,
- key("("),
- key(")"),
// U+0E09: "ฉ" THAI CHARACTER CHO CHING
- key("\u0E09"),
// U+0E2E: "ฮ" THAI CHARACTER HO NOKHUK
- key("\u0E2E"),
+ "(", ")", "\u0E09", "\u0E2E",
// U+0E3A: " ฺ" THAI CHARACTER PHINTHU
key(" \u0E3A", "\u0E3A"),
// U+0E4C: " ์" THAI CHARACTER THANTHAKHAT
key(" \u0E4C", "\u0E4C"),
- key("?"),
// U+0E12: "ฒ" THAI CHARACTER THO PHUTHAO
- key("\u0E12"),
// U+0E2C: "ฬ" THAI CHARACTER LO CHULA
- key("\u0E2C"),
// U+0E26: "ฦ" THAI CHARACTER LU
- key("\u0E26"))
+ "?", "\u0E12", "\u0E2C", "\u0E26")
.build();
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/expected/AbstractLayoutBase.java b/tests/src/com/android/inputmethod/keyboard/layout/expected/AbstractLayoutBase.java
index 61cadfcad..6176f6a3e 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/expected/AbstractLayoutBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/expected/AbstractLayoutBase.java
@@ -17,13 +17,10 @@
package com.android.inputmethod.keyboard.layout.expected;
import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey.ExpectedAdditionalMoreKey;
import com.android.inputmethod.latin.Constants;
-import com.android.inputmethod.latin.utils.CollectionUtils;
import com.android.inputmethod.latin.utils.StringUtils;
-import java.util.ArrayList;
-import java.util.Arrays;
-
/**
* Base class to create an expected keyboard for unit test.
*/
@@ -65,6 +62,15 @@ public abstract class AbstractLayoutBase {
return ExpectedKey.newInstance(key.getVisual(), key.getOutput(), moreKeys);
}
+ // Helper method to create an {@link ExpectedAdditionalMoreKey} object for an
+ // "additional more key" that has the label.
+ // The additional more keys can be defined independently from other more keys. The position of
+ // the additional more keys in the long press popup keyboard can be controlled by specifying
+ // special marker "%" in the usual more keys definitions.
+ public static ExpectedAdditionalMoreKey additionalMoreKey(final String label) {
+ return ExpectedAdditionalMoreKey.newInstance(label);
+ }
+
// Helper method to create an {@link ExpectedKey} object for a "more key" that has the label.
public static ExpectedKey moreKey(final String label) {
return ExpectedKey.newInstance(label);
@@ -97,26 +103,20 @@ public abstract class AbstractLayoutBase {
// Helper method to create {@link ExpectedKey} array by joining {@link ExpectedKey},
// {@link ExpectedKey} array, and {@link String}.
public static ExpectedKey[] joinKeys(final Object ... keys) {
- final ArrayList<ExpectedKey> list = CollectionUtils.newArrayList();
- for (final Object key : keys) {
- if (key instanceof ExpectedKey) {
- list.add((ExpectedKey)key);
- } else if (key instanceof ExpectedKey[]) {
- list.addAll(Arrays.asList((ExpectedKey[])key));
- } else if (key instanceof String) {
- list.add(key((String)key));
- } else {
- throw new RuntimeException("Unknown expected key type: " + key);
- }
- }
- return list.toArray(new ExpectedKey[list.size()]);
+ return ExpectedKeyboardBuilder.joinKeys(keys);
}
// Icon ids.
private static final int ICON_DELETE = KeyboardIconsSet.getIconId(
KeyboardIconsSet.NAME_DELETE_KEY);
+ private static final int ICON_TAB = KeyboardIconsSet.getIconId(
+ KeyboardIconsSet.NAME_TAB_KEY);
+ private static final int ICON_SHORTCUT = KeyboardIconsSet.getIconId(
+ KeyboardIconsSet.NAME_SHORTCUT_KEY);
private static final int ICON_SETTINGS = KeyboardIconsSet.getIconId(
KeyboardIconsSet.NAME_SETTINGS_KEY);
+ private static final int ICON_LANGUAGE_SWITCH = KeyboardIconsSet.getIconId(
+ KeyboardIconsSet.NAME_LANGUAGE_SWITCH_KEY);
private static final int ICON_ENTER = KeyboardIconsSet.getIconId(
KeyboardIconsSet.NAME_ENTER_KEY);
private static final int ICON_EMOJI = KeyboardIconsSet.getIconId(
@@ -124,7 +124,11 @@ public abstract class AbstractLayoutBase {
// Functional keys.
public static final ExpectedKey DELETE_KEY = key(ICON_DELETE, Constants.CODE_DELETE);
+ public static final ExpectedKey TAB_KEY = key(ICON_TAB, Constants.CODE_TAB);
+ public static final ExpectedKey SHORTCUT_KEY = key(ICON_SHORTCUT, Constants.CODE_SHORTCUT);
public static final ExpectedKey SETTINGS_KEY = key(ICON_SETTINGS, Constants.CODE_SETTINGS);
+ public static final ExpectedKey LANGUAGE_SWITCH_KEY = key(
+ ICON_LANGUAGE_SWITCH, Constants.CODE_LANGUAGE_SWITCH);
public static final ExpectedKey ENTER_KEY = key(ICON_ENTER, Constants.CODE_ENTER);
public static final ExpectedKey EMOJI_KEY = key(ICON_EMOJI, Constants.CODE_EMOJI);
public static final ExpectedKey SPACE_KEY = key(
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKey.java b/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKey.java
index 98c08aded..ad08ba5a6 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKey.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKey.java
@@ -18,7 +18,9 @@ package com.android.inputmethod.keyboard.layout.expected;
import com.android.inputmethod.keyboard.Key;
import com.android.inputmethod.keyboard.internal.MoreKeySpec;
+import com.android.inputmethod.latin.utils.CollectionUtils;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Locale;
@@ -29,44 +31,73 @@ public class ExpectedKey {
static ExpectedKey EMPTY_KEY = newInstance("");
// A key that has a string label and may have "more keys".
- static ExpectedKey newInstance(final String label, final ExpectedKey ... moreKeys) {
+ static ExpectedKey newInstance(final String label, final ExpectedKey... moreKeys) {
return newInstance(label, label, moreKeys);
}
// A key that has a string label and a different output text and may have "more keys".
static ExpectedKey newInstance(final String label, final String outputText,
- final ExpectedKey ... moreKeys) {
+ final ExpectedKey... moreKeys) {
return newInstance(ExpectedKeyVisual.newInstance(label),
ExpectedKeyOutput.newInstance(outputText), moreKeys);
}
// A key that has a string label and a code point output and may have "more keys".
static ExpectedKey newInstance(final String label, final int code,
- final ExpectedKey ... moreKeys) {
+ final ExpectedKey... moreKeys) {
return newInstance(ExpectedKeyVisual.newInstance(label),
ExpectedKeyOutput.newInstance(code), moreKeys);
}
// A key that has an icon and an output text and may have "more keys".
static ExpectedKey newInstance(final int iconId, final String outputText,
- final ExpectedKey ... moreKeys) {
+ final ExpectedKey... moreKeys) {
return newInstance(ExpectedKeyVisual.newInstance(iconId),
ExpectedKeyOutput.newInstance(outputText), moreKeys);
}
// A key that has an icon and a code point output and may have "more keys".
static ExpectedKey newInstance(final int iconId, final int code,
- final ExpectedKey ... moreKeys) {
+ final ExpectedKey... moreKeys) {
return newInstance(ExpectedKeyVisual.newInstance(iconId),
ExpectedKeyOutput.newInstance(code), moreKeys);
}
static ExpectedKey newInstance(final ExpectedKeyVisual visual, final ExpectedKeyOutput output,
- final ExpectedKey ... moreKeys) {
+ final ExpectedKey... moreKeys) {
if (moreKeys.length == 0) {
return new ExpectedKey(visual, output);
}
- return new ExpectedKeyWithMoreKeys(visual, output, moreKeys);
+ // The more keys are the extra keys that the main keyboard key may have in its long press
+ // popup keyboard.
+ // The additional more keys can be defined independently from other more keys.
+ // The position of the additional more keys in the long press popup keyboard can be
+ // controlled by specifying special marker "%" in the usual more keys definitions.
+ final ArrayList<ExpectedKey> moreKeysList = CollectionUtils.newArrayList();
+ final ArrayList<ExpectedAdditionalMoreKey> additionalMoreKeys =
+ CollectionUtils.newArrayList();
+ int firstAdditionalMoreKeyIndex = -1;
+ for (int index = 0; index < moreKeys.length; index++) {
+ final ExpectedKey moreKey = moreKeys[index];
+ if (moreKey instanceof ExpectedAdditionalMoreKey) {
+ additionalMoreKeys.add((ExpectedAdditionalMoreKey) moreKey);
+ if (firstAdditionalMoreKeyIndex < 0) {
+ firstAdditionalMoreKeyIndex = index;
+ }
+ } else {
+ moreKeysList.add(moreKey);
+ }
+ }
+ if (additionalMoreKeys.isEmpty()) {
+ return new ExpectedKeyWithMoreKeys(visual, output, moreKeys);
+ }
+ final ExpectedKey[] moreKeysArray = moreKeysList.toArray(
+ new ExpectedKey[moreKeysList.size()]);
+ final ExpectedAdditionalMoreKey[] additionalMoreKeysArray = additionalMoreKeys.toArray(
+ new ExpectedAdditionalMoreKey[additionalMoreKeys.size()]);
+ return new ExpectedKeyWithMoreKeysAndAdditionalMoreKeys(
+ visual, output, moreKeysArray, firstAdditionalMoreKeyIndex,
+ additionalMoreKeysArray);
}
private static final ExpectedKey[] EMPTY_KEYS = new ExpectedKey[0];
@@ -89,6 +120,27 @@ public class ExpectedKey {
return EMPTY_KEYS;
}
+ public ExpectedKey setMoreKeys(final ExpectedKey... moreKeys) {
+ return newInstance(mVisual, mOutput, moreKeys);
+ }
+
+ public ExpectedKey setAdditionalMoreKeys(
+ final ExpectedAdditionalMoreKey... additionalMoreKeys) {
+ if (additionalMoreKeys.length == 0) {
+ return this;
+ }
+ return new ExpectedKeyWithMoreKeysAndAdditionalMoreKeys(
+ mVisual, mOutput, EMPTY_KEYS, 0 /* additionalMoreKeysIndex */, additionalMoreKeys);
+ }
+
+ public ExpectedKey setAdditionalMoreKeysIndex(final int additionalMoreKeysIndex) {
+ if (additionalMoreKeysIndex == 0) {
+ return this;
+ }
+ return new ExpectedKeyWithMoreKeysAndAdditionalMoreKeys(
+ mVisual, mOutput, EMPTY_KEYS, additionalMoreKeysIndex);
+ }
+
protected ExpectedKey(final ExpectedKeyVisual visual, final ExpectedKeyOutput output) {
mVisual = visual;
mOutput = output;
@@ -110,14 +162,14 @@ public class ExpectedKey {
@Override
public boolean equals(final Object object) {
if (object instanceof ExpectedKey) {
- final ExpectedKey key = (ExpectedKey)object;
+ final ExpectedKey key = (ExpectedKey) object;
return mVisual.equalsTo(key.mVisual) && mOutput.equalsTo(key.mOutput)
&& Arrays.equals(getMoreKeys(), key.getMoreKeys());
}
return false;
}
- private static int hashCode(final Object ... objects) {
+ private static int hashCode(final Object... objects) {
return Arrays.hashCode(objects);
}
@@ -135,13 +187,42 @@ public class ExpectedKey {
}
/**
+ * This class represents an expected "additional more key".
+ *
+ * The additional more keys can be defined independently from other more keys. The position of
+ * the additional more keys in the long press popup keyboard can be controlled by specifying
+ * special marker "%" in the usual more keys definitions.
+ */
+ public static class ExpectedAdditionalMoreKey extends ExpectedKey {
+ public static ExpectedAdditionalMoreKey newInstance(final String label) {
+ return new ExpectedAdditionalMoreKey(ExpectedKeyVisual.newInstance(label),
+ ExpectedKeyOutput.newInstance(label));
+ }
+
+ public static ExpectedAdditionalMoreKey newInstance(final ExpectedKey key) {
+ return new ExpectedAdditionalMoreKey(key.getVisual(), key.getOutput());
+ }
+
+ ExpectedAdditionalMoreKey(final ExpectedKeyVisual visual, final ExpectedKeyOutput output) {
+ super(visual, output);
+ }
+
+ @Override
+ public ExpectedAdditionalMoreKey toUpperCase(final Locale locale) {
+ final ExpectedKey upperCaseKey = super.toUpperCase(locale);
+ return new ExpectedAdditionalMoreKey(
+ upperCaseKey.getVisual(), upperCaseKey.getOutput());
+ }
+ }
+
+ /**
* This class represents an expected key that has "more keys".
*/
- private static final class ExpectedKeyWithMoreKeys extends ExpectedKey {
+ private static class ExpectedKeyWithMoreKeys extends ExpectedKey {
private final ExpectedKey[] mMoreKeys;
- ExpectedKeyWithMoreKeys(final ExpectedKeyVisual visual,
- final ExpectedKeyOutput output, final ExpectedKey ... moreKeys) {
+ ExpectedKeyWithMoreKeys(final ExpectedKeyVisual visual, final ExpectedKeyOutput output,
+ final ExpectedKey... moreKeys) {
super(visual, output);
mMoreKeys = moreKeys;
}
@@ -162,15 +243,36 @@ public class ExpectedKey {
}
@Override
+ public ExpectedKey setAdditionalMoreKeys(
+ final ExpectedAdditionalMoreKey... additionalMoreKeys) {
+ if (additionalMoreKeys.length == 0) {
+ return this;
+ }
+ return new ExpectedKeyWithMoreKeysAndAdditionalMoreKeys(
+ getVisual(), getOutput(), mMoreKeys, 0 /* additionalMoreKeysIndex */,
+ additionalMoreKeys);
+ }
+
+ @Override
+ public ExpectedKey setAdditionalMoreKeysIndex(final int additionalMoreKeysIndex) {
+ if (additionalMoreKeysIndex == 0) {
+ return this;
+ }
+ return new ExpectedKeyWithMoreKeysAndAdditionalMoreKeys(
+ getVisual(), getOutput(), mMoreKeys, additionalMoreKeysIndex);
+ }
+
+ @Override
public boolean equalsTo(final Key key) {
if (getVisual().equalsTo(key) && getOutput().equalsTo(key)) {
- final MoreKeySpec[] moreKeys = key.getMoreKeys();
+ final MoreKeySpec[] moreKeySpecs = key.getMoreKeys();
+ final ExpectedKey[] moreKeys = getMoreKeys();
// This key should have at least one "more key".
- if (moreKeys == null || moreKeys.length != mMoreKeys.length) {
+ if (moreKeySpecs == null || moreKeySpecs.length != moreKeys.length) {
return false;
}
- for (int index = 0; index < moreKeys.length; index++) {
- if (!mMoreKeys[index].equalsTo(moreKeys[index])) {
+ for (int index = 0; index < moreKeySpecs.length; index++) {
+ if (!moreKeys[index].equalsTo(moreKeySpecs[index])) {
return false;
}
}
@@ -187,7 +289,77 @@ public class ExpectedKey {
@Override
public String toString() {
- return super.toString() + "^" + Arrays.toString(mMoreKeys);
+ return super.toString() + "^" + Arrays.toString(getMoreKeys());
+ }
+ }
+
+ /**
+ * This class represents an expected key that has "more keys" and "additional more keys".
+ */
+ private static final class ExpectedKeyWithMoreKeysAndAdditionalMoreKeys
+ extends ExpectedKeyWithMoreKeys {
+ private final ExpectedAdditionalMoreKey[] mAdditionalMoreKeys;
+ private final int mAdditionalMoreKeysIndex;
+
+ ExpectedKeyWithMoreKeysAndAdditionalMoreKeys(final ExpectedKeyVisual visual,
+ final ExpectedKeyOutput output, final ExpectedKey[] moreKeys,
+ final int additionalMoreKeysIndex,
+ final ExpectedAdditionalMoreKey... additionalMoreKeys) {
+ super(visual, output, moreKeys);
+ mAdditionalMoreKeysIndex = additionalMoreKeysIndex;
+ mAdditionalMoreKeys = additionalMoreKeys;
+ }
+
+ @Override
+ public ExpectedKey setMoreKeys(final ExpectedKey... moreKeys) {
+ return new ExpectedKeyWithMoreKeysAndAdditionalMoreKeys(
+ getVisual(), getOutput(), moreKeys, mAdditionalMoreKeysIndex,
+ mAdditionalMoreKeys);
+ }
+
+ @Override
+ public ExpectedKey setAdditionalMoreKeys(
+ final ExpectedAdditionalMoreKey... additionalMoreKeys) {
+ return new ExpectedKeyWithMoreKeysAndAdditionalMoreKeys(
+ getVisual(), getOutput(), super.getMoreKeys(), mAdditionalMoreKeysIndex,
+ additionalMoreKeys);
+ }
+
+ @Override
+ public ExpectedKey setAdditionalMoreKeysIndex(final int additionalMoreKeysIndex) {
+ return new ExpectedKeyWithMoreKeysAndAdditionalMoreKeys(
+ getVisual(), getOutput(), super.getMoreKeys(), additionalMoreKeysIndex,
+ mAdditionalMoreKeys);
+ }
+
+ @Override
+ public ExpectedKey toUpperCase(final Locale locale) {
+ final ExpectedKey[] moreKeys = super.getMoreKeys();
+ final ExpectedKey[] upperCaseMoreKeys = new ExpectedKey[moreKeys.length];
+ for (int i = 0; i < moreKeys.length; i++) {
+ upperCaseMoreKeys[i] = moreKeys[i].toUpperCase(locale);
+ }
+ final ExpectedAdditionalMoreKey[] upperCaseAdditionalMoreKeys =
+ new ExpectedAdditionalMoreKey[mAdditionalMoreKeys.length];
+ for (int i = 0; i < mAdditionalMoreKeys.length; i++) {
+ upperCaseAdditionalMoreKeys[i] = mAdditionalMoreKeys[i].toUpperCase(locale);
+ }
+ return new ExpectedKeyWithMoreKeysAndAdditionalMoreKeys(
+ getVisual().toUpperCase(locale), getOutput().toUpperCase(locale),
+ upperCaseMoreKeys, mAdditionalMoreKeysIndex, upperCaseAdditionalMoreKeys);
+ }
+
+ @Override
+ public ExpectedKey[] getMoreKeys() {
+ final ExpectedKey[] moreKeys = super.getMoreKeys();
+ final ExpectedKey[] edittedMoreKeys = Arrays.copyOf(
+ moreKeys, moreKeys.length + mAdditionalMoreKeys.length);
+ System.arraycopy(edittedMoreKeys, mAdditionalMoreKeysIndex,
+ edittedMoreKeys, mAdditionalMoreKeysIndex + mAdditionalMoreKeys.length,
+ moreKeys.length - mAdditionalMoreKeysIndex);
+ System.arraycopy(mAdditionalMoreKeys, 0, edittedMoreKeys, mAdditionalMoreKeysIndex,
+ mAdditionalMoreKeys.length);
+ return edittedMoreKeys;
}
}
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKeyboardBuilder.java b/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKeyboardBuilder.java
index 176e0eb92..f068ad11d 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKeyboardBuilder.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKeyboardBuilder.java
@@ -16,6 +16,9 @@
package com.android.inputmethod.keyboard.layout.expected;
+import com.android.inputmethod.latin.utils.CollectionUtils;
+
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Locale;
@@ -105,67 +108,57 @@ public final class ExpectedKeyboardBuilder extends AbstractKeyboardBuilder<Expec
}
}
- /**
- * Set the row with specified keys that have specified labels.
- * @param row the row number to set keys.
- * @param labels the label texts of the keys.
- * @return this builder.
- */
- public ExpectedKeyboardBuilder setLabelsOfRow(final int row, final String ... labels) {
- final ExpectedKey[] keys = new ExpectedKey[labels.length];
- for (int columnIndex = 0; columnIndex < labels.length; columnIndex++) {
- keys[columnIndex] = ExpectedKey.newInstance(labels[columnIndex]);
+ // Helper method to create {@link ExpectedKey} array by joining {@link ExpectedKey},
+ // {@link ExpectedKey} array, and {@link String}.
+ static ExpectedKey[] joinKeys(final Object ... keys) {
+ final ArrayList<ExpectedKey> list = CollectionUtils.newArrayList();
+ for (final Object key : keys) {
+ if (key instanceof ExpectedKey) {
+ list.add((ExpectedKey)key);
+ } else if (key instanceof ExpectedKey[]) {
+ list.addAll(Arrays.asList((ExpectedKey[])key));
+ } else if (key instanceof String) {
+ list.add(ExpectedKey.newInstance((String)key));
+ } else {
+ throw new RuntimeException("Unknown expected key type: " + key);
+ }
}
- setRowAt(row, keys);
- return this;
+ return list.toArray(new ExpectedKey[list.size()]);
}
/**
* Set the row with specified keys.
* @param row the row number to set keys.
- * @param keys the keys to be set at <code>row</code>.
+ * @param keys the keys to be set at <code>row</code>. Each key can be {@link ExpectedKey},
+ * {@link ExpectedKey} array, and {@link String}.
* @return this builder.
*/
- public ExpectedKeyboardBuilder setKeysOfRow(final int row, final ExpectedKey ... keys) {
- setRowAt(row, keys);
+ public ExpectedKeyboardBuilder setKeysOfRow(final int row, final Object ... keys) {
+ setRowAt(row, joinKeys(keys));
return this;
}
/**
* Set the "more keys" of the key that has the specified label.
* @param label the label of the key to set the "more keys".
- * @param moreKeys the array of labels of the "more keys" to be set.
+ * @param moreKeys the array of "more key" to be set. Each "more key" can be
+ * {@link ExpectedKey}, {@link ExpectedKey} array, and {@link String}.
* @return this builder.
*/
- public ExpectedKeyboardBuilder setMoreKeysOf(final String label, final String ... moreKeys) {
- final ExpectedKey[] expectedMoreKeys = new ExpectedKey[moreKeys.length];
- for (int index = 0; index < moreKeys.length; index++) {
- expectedMoreKeys[index] = ExpectedKey.newInstance(moreKeys[index]);
- }
- setMoreKeysOf(label, expectedMoreKeys);
- return this;
- }
-
- /**
- * Set the "more keys" of the key that has the specified label.
- * @param label the label of the key to set the "more keys".
- * @param moreKeys the array of "more key" to be set.
- * @return this builder.
- */
- public ExpectedKeyboardBuilder setMoreKeysOf(final String label,
- final ExpectedKey ... moreKeys) {
- setMoreKeysOf(ExpectedKeyVisual.newInstance(label), moreKeys);
+ public ExpectedKeyboardBuilder setMoreKeysOf(final String label, final Object ... moreKeys) {
+ setMoreKeysOf(ExpectedKeyVisual.newInstance(label), joinKeys(moreKeys));
return this;
}
/**
* Set the "more keys" of the key that has the specified icon.
* @param iconId the icon id of the key to set the "more keys".
- * @param moreKeys the array of "more key" to be set.
+ * @param moreKeys the array of "more key" to be set. Each "more key" can be
+ * {@link ExpectedKey}, {@link ExpectedKey} array, and {@link String}.
* @return this builder.
*/
- public ExpectedKeyboardBuilder setMoreKeysOf(final int iconId, final ExpectedKey ... moreKeys) {
- setMoreKeysOf(ExpectedKeyVisual.newInstance(iconId), moreKeys);
+ public ExpectedKeyboardBuilder setMoreKeysOf(final int iconId, final Object ... moreKeys) {
+ setMoreKeysOf(ExpectedKeyVisual.newInstance(iconId), joinKeys(moreKeys));
return this;
}
@@ -173,8 +166,35 @@ public final class ExpectedKeyboardBuilder extends AbstractKeyboardBuilder<Expec
replaceKeyOf(visual, new ReplaceJob() {
@Override
public ExpectedKey[] replacingKeys(final ExpectedKey oldKey) {
+ return new ExpectedKey[] { oldKey.setMoreKeys(moreKeys) };
+ }
+ @Override
+ public boolean stopAtFirstOccurrence() {
+ return true;
+ }
+ });
+ }
+
+ /**
+ * Set the "additional more keys position" of the key that has the specified label.
+ * @param label the label of the key to set the "additional more keys".
+ * @param additionalMoreKeysPosition the position in the "more keys" where
+ * "additional more keys" will be merged. The position starts from 1.
+ * @return this builder.
+ */
+ public ExpectedKeyboardBuilder setAdditionalMoreKeysPositionOf(final String label,
+ final int additionalMoreKeysPosition) {
+ final int additionalMoreKeysIndex = additionalMoreKeysPosition - 1;
+ if (additionalMoreKeysIndex < 0) {
+ throw new RuntimeException("Illegal additional more keys position: "
+ + additionalMoreKeysPosition);
+ }
+ final ExpectedKeyVisual visual = ExpectedKeyVisual.newInstance(label);
+ replaceKeyOf(visual, new ReplaceJob() {
+ @Override
+ public ExpectedKey[] replacingKeys(final ExpectedKey oldKey) {
return new ExpectedKey[] {
- ExpectedKey.newInstance(oldKey.getVisual(), oldKey.getOutput(), moreKeys)
+ oldKey.setAdditionalMoreKeysIndex(additionalMoreKeysIndex)
};
}
@Override
@@ -182,20 +202,23 @@ public final class ExpectedKeyboardBuilder extends AbstractKeyboardBuilder<Expec
return true;
}
});
+ return this;
}
/**
* Insert the keys at specified position.
* @param row the row number to insert the <code>keys</code>.
* @param column the column number to insert the <code>keys</code>.
- * @param keys the array of keys to insert at <code>row,column</code>.
+ * @param keys the array of keys to insert at <code>row,column</code>. Each key can be
+ * {@link ExpectedKey}, {@link ExpectedKey} array, and {@link String}.
* @return this builder.
* @throws {@link RuntimeException} if <code>row</code> or <code>column</code> is illegal.
*/
public ExpectedKeyboardBuilder insertKeysAtRow(final int row, final int column,
- final ExpectedKey ... keys) {
+ final Object ... keys) {
+ final ExpectedKey[] expectedKeys = joinKeys(keys);
for (int index = 0; index < keys.length; index++) {
- setElementAt(row, column + index, keys[index], true /* insert */);
+ setElementAt(row, column + index, expectedKeys[index], true /* insert */);
}
return this;
}
@@ -203,15 +226,17 @@ public final class ExpectedKeyboardBuilder extends AbstractKeyboardBuilder<Expec
/**
* Add the keys on the left most of the row.
* @param row the row number to add the <code>keys</code>.
- * @param keys the array of keys to add on the left most of the row.
+ * @param keys the array of keys to add on the left most of the row. Each key can be
+ * {@link ExpectedKey}, {@link ExpectedKey} array, and {@link String}.
* @return this builder.
* @throws {@link RuntimeException} if <code>row</code> is illegal.
*/
public ExpectedKeyboardBuilder addKeysOnTheLeftOfRow(final int row,
- final ExpectedKey ... keys) {
+ final Object ... keys) {
+ final ExpectedKey[] expectedKeys = joinKeys(keys);
// Keys should be inserted from the last to preserve the order.
for (int index = keys.length - 1; index >= 0; index--) {
- setElementAt(row, 1, keys[index], true /* insert */);
+ setElementAt(row, 1, expectedKeys[index], true /* insert */);
}
return this;
}
@@ -219,12 +244,13 @@ public final class ExpectedKeyboardBuilder extends AbstractKeyboardBuilder<Expec
/**
* Add the keys on the right most of the row.
* @param row the row number to add the <code>keys</code>.
- * @param keys the array of keys to add on the right most of the row.
+ * @param keys the array of keys to add on the right most of the row. Each key can be
+ * {@link ExpectedKey}, {@link ExpectedKey} array, and {@link String}.
* @return this builder.
* @throws {@link RuntimeException} if <code>row</code> is illegal.
*/
public ExpectedKeyboardBuilder addKeysOnTheRightOfRow(final int row,
- final ExpectedKey ... keys) {
+ final Object ... keys) {
final int rightEnd = getRowAt(row).length + 1;
insertKeysAtRow(row, rightEnd, keys);
return this;
@@ -233,16 +259,17 @@ public final class ExpectedKeyboardBuilder extends AbstractKeyboardBuilder<Expec
/**
* Replace the most top-left key that has the specified label with the new keys.
* @param label the label of the key to set <code>newKeys</code>.
- * @param newKeys the keys to be set.
+ * @param newKeys the keys to be set. Each key can be {@link ExpectedKey}, {@link ExpectedKey}
+ * array, and {@link String}.
* @return this builder.
*/
public ExpectedKeyboardBuilder replaceKeyOfLabel(final String label,
- final ExpectedKey ... newKeys) {
+ final Object ... newKeys) {
final ExpectedKeyVisual visual = ExpectedKeyVisual.newInstance(label);
replaceKeyOf(visual, new ReplaceJob() {
@Override
public ExpectedKey[] replacingKeys(final ExpectedKey oldKey) {
- return newKeys;
+ return joinKeys(newKeys);
}
@Override
public boolean stopAtFirstOccurrence() {
@@ -255,15 +282,16 @@ public final class ExpectedKeyboardBuilder extends AbstractKeyboardBuilder<Expec
/**
* Replace the all specified keys with the new keys.
* @param key the key to be replaced by <code>newKeys</code>.
- * @param newKeys the keys to be set.
+ * @param newKeys the keys to be set. Each key can be {@link ExpectedKey}, {@link ExpectedKey}
+ * array, and {@link String}.
* @return this builder.
*/
public ExpectedKeyboardBuilder replaceKeysOfAll(final ExpectedKey key,
- final ExpectedKey ... newKeys) {
+ final Object ... newKeys) {
replaceKeyOf(key.getVisual(), new ReplaceJob() {
@Override
public ExpectedKey[] replacingKeys(final ExpectedKey oldKey) {
- return newKeys;
+ return joinKeys(newKeys);
}
@Override
public boolean stopAtFirstOccurrence() {
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/EnglishCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/EnglishCustomizer.java
new file mode 100644
index 000000000..29264ff3b
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/EnglishCustomizer.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+class EnglishCustomizer extends LayoutCustomizer {
+ EnglishCustomizer(final Locale locale) { super(locale); }
+
+ @Override
+ public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+ return builder
+ // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+ // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+ // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+ // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+ .setMoreKeysOf("e", "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u0113")
+ // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+ // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+ .setMoreKeysOf("u", "\u00FB", "\u00FC", "\u00F9", "\u00FA", "\u016B")
+ // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+ // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+ // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+ // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ .setMoreKeysOf("i", "\u00EE", "\u00EF", "\u00ED", "\u012B", "\u00EC")
+ // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+ // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+ // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ // U+0153: "œ" LATIN SMALL LIGATURE OE
+ // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+ // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ .setMoreKeysOf("o",
+ "\u00F4", "\u00F6", "\u00F2", "\u00F3", "\u0153", "\u00F8", "\u014D",
+ "\u00F5")
+ // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+ // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+ // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ // U+00E6: "æ" LATIN SMALL LETTER AE
+ // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+ .setMoreKeysOf("a",
+ "\u00E0", "\u00E1", "\u00E2", "\u00E4", "\u00E6", "\u00E3", "\u00E5",
+ "\u0101")
+ // U+00DF: "ß" LATIN SMALL LETTER SHARP S
+ .setMoreKeysOf("s", "\u00DF")
+ // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+ .setMoreKeysOf("c", "\u00E7")
+ // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+ .setMoreKeysOf("n", "\u00F1");
+ }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/FrenchCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/FrenchCustomizer.java
new file mode 100644
index 000000000..ab90267d0
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/FrenchCustomizer.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+class FrenchCustomizer extends LayoutCustomizer {
+ FrenchCustomizer(final Locale locale) { super(locale); }
+
+ @Override
+ public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+ return builder
+ // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+ // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+ // U+00E6: "æ" LATIN SMALL LETTER AE
+ // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+ // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+ // U+00AA: "ª" FEMININE ORDINAL INDICATOR
+ .setAdditionalMoreKeysPositionOf("a", 3)
+ .setMoreKeysOf("a",
+ "\u00E0", "\u00E2", "\u00E6", "\u00E1", "\u00E4", "\u00E3", "\u00E5",
+ "\u0101", "\u00AA")
+ // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+ // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+ // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+ // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+ // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+ .setAdditionalMoreKeysPositionOf("e", 5)
+ .setMoreKeysOf("e",
+ "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0119", "\u0117", "\u0113")
+ // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
+ .setMoreKeysOf("y", "\u00FF")
+ // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+ // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+ .setAdditionalMoreKeysPositionOf("u", 3)
+ .setMoreKeysOf("u", "\u00F9", "\u00FB", "\u00FC", "\u00FA", "\u016B")
+ // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+ // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+ // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+ .setAdditionalMoreKeysPositionOf("i", 2)
+ .setMoreKeysOf("i", "\u00EE", "\u00EF", "\u00EC", "\u00ED", "\u012F", "\u012B")
+ // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+ // U+0153: "œ" LATIN SMALL LIGATURE OE
+ // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+ // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+ // U+00BA: "º" MASCULINE ORDINAL INDICATOR
+ .setAdditionalMoreKeysPositionOf("o", 3)
+ .setMoreKeysOf("o",
+ "\u00F4", "\u0153", "\u00F6", "\u00F2", "\u00F3", "\u00F5", "\u00F8",
+ "\u014D", "\u00BA")
+ // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+ // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+ // U+010D: "č" LATIN SMALL LETTER C WITH CARON
+ .setMoreKeysOf("c", "\u00E7", "\u0107", "\u010D")
+ .setAdditionalMoreKeysPositionOf("c", 2);
+ }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/GermanCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/GermanCustomizer.java
new file mode 100644
index 000000000..cd881406e
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/GermanCustomizer.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+class GermanCustomizer extends LayoutCustomizer {
+ public GermanCustomizer(final Locale locale) { super(locale); }
+
+ @Override
+ public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
+
+ @Override
+ public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_R9L; }
+
+ @Override
+ public ExpectedKey[] getDoubleAngleQuoteKeys() { return Symbols.DOUBLE_ANGLE_QUOTES_RL; }
+
+ @Override
+ public ExpectedKey[] getSingleAngleQuoteKeys() { return Symbols.SINGLE_ANGLE_QUOTES_RL; }
+
+ @Override
+ public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+ return builder
+ // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+ // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+ // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+ // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ .setMoreKeysOf("e", "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0117")
+ // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+ // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+ .setMoreKeysOf("u", "\u00FC", "\u00FB", "\u00F9", "\u00FA", "\u016B")
+ // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+ // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+ // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ // U+0153: "œ" LATIN SMALL LIGATURE OE
+ // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+ .setMoreKeysOf("o",
+ "\u00F6", "\u00F4", "\u00F2", "\u00F3", "\u00F5", "\u0153", "\u00F8",
+ "\u014D")
+ // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+ // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+ // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+ // U+00E6: "æ" LATIN SMALL LETTER AE
+ // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+ .setMoreKeysOf("a",
+ "\u00E4", "\u00E2", "\u00E0", "\u00E1", "\u00E6", "\u00E3", "\u00E5",
+ "\u0101")
+ // U+00DF: "ß" LATIN SMALL LETTER SHARP S
+ // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+ // U+0161: "š" LATIN SMALL LETTER S WITH CARON
+ .setMoreKeysOf("s", "\u00DF", "\u015B", "\u0161")
+ // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+ // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+ .setMoreKeysOf("n", "\u00F1", "\u0144");
+ }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/LayoutTestsBase.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/LayoutTestsBase.java
index c51abc03e..555ec8971 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/LayoutTestsBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/LayoutTestsBase.java
@@ -28,6 +28,7 @@ import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.expected.AbstractLayoutBase;
import com.android.inputmethod.keyboard.layout.expected.ActualKeyboardBuilder;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey.ExpectedAdditionalMoreKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
@@ -72,6 +73,12 @@ abstract class LayoutTestsBase extends KeyboardLayoutSetTestsBase {
return AbstractLayoutBase.key(key, moreKeys);
}
+ // Helper method to create an {@link ExpectedAdditionalMoreKey} object for an
+ // "additional more key" that has the label.
+ public static ExpectedAdditionalMoreKey additionalMoreKey(final String label) {
+ return AbstractLayoutBase.additionalMoreKey(label);
+ }
+
// Helper method to create an {@link ExpectedKey} object for a "more key" that has the label.
static ExpectedKey moreKey(final String label) {
return AbstractLayoutBase.moreKey(label);
@@ -150,7 +157,7 @@ abstract class LayoutTestsBase extends KeyboardLayoutSetTestsBase {
Log.d(tag, "actual =\n" + ActualKeyboardBuilder.toString(actualKeyboard));
// Test both keyboards have the same number of rows.
assertEquals(tag + " labels"
- + "\nexpected=" + Arrays.deepToString(expectedKeyboard)
+ + "\nexpected=" + ExpectedKeyboardBuilder.toString(expectedKeyboard)
+ "\nactual =" + ActualKeyboardBuilder.toString(actualKeyboard),
expectedKeyboard.length, actualKeyboard.length);
for (int r = 0; r < actualKeyboard.length; r++) {
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/NoLanguageCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/NoLanguageCustomizer.java
new file mode 100644
index 000000000..9edbcab69
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/NoLanguageCustomizer.java
@@ -0,0 +1,159 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+class NoLanguageCustomizer extends LayoutCustomizer {
+ NoLanguageCustomizer(final Locale locale) { super(locale); }
+
+ @Override
+ public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+ return builder
+ // U+0175: "ŵ" LATIN SMALL LETTER W WITH CIRCUMFLEX
+ .setMoreKeysOf("w", "\u0175")
+ // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+ // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+ // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+ // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+ // U+0115: "ĕ" LATIN SMALL LETTER E WITH BREVE
+ // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+ // U+011B: "ě" LATIN SMALL LETTER E WITH CARON
+ .setMoreKeysOf("e",
+ "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u0113", "\u0115", "\u0117",
+ "\u0119", "\u011B")
+ // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
+ // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
+ // U+0159: "ř" LATIN SMALL LETTER R WITH CARON
+ .setMoreKeysOf("r", "\u0155", "\u0157", "\u0159")
+ // U+00FE: "þ" LATIN SMALL LETTER THORN
+ // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
+ // U+0165: "ť" LATIN SMALL LETTER T WITH CARON
+ // U+0167: "ŧ" LATIN SMALL LETTER T WITH STROKE
+ .setMoreKeysOf("t", "\u00FE", "\u0163", "\u0165", "\u0167")
+ // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
+ // U+0177: "ŷ" LATIN SMALL LETTER Y WITH CIRCUMFLEX
+ // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
+ // U+0133: "ij" LATIN SMALL LIGATURE IJ
+ .setMoreKeysOf("y", "\u00FD", "\u0177", "\u00FF", "\u0133")
+ // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+ // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ // U+0169: "ũ" LATIN SMALL LETTER U WITH TILDE
+ // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+ // U+016D: "ŭ" LATIN SMALL LETTER U WITH BREVE
+ // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
+ // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
+ // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
+ .setMoreKeysOf("u",
+ "\u00F9", "\u00FA", "\u00FB", "\u00FC", "\u0169", "\u016B", "\u016D",
+ "\u016F", "\u0171", "\u0173")
+ // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+ // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+ // U+0129: "ĩ" LATIN SMALL LETTER I WITH TILDE
+ // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+ // U+012D: "ĭ" LATIN SMALL LETTER I WITH BREVE
+ // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
+ // U+0133: "ij" LATIN SMALL LIGATURE IJ
+ .setMoreKeysOf("i",
+ "\u00EC", "\u00ED", "\u00EE", "\u00EF", "\u0129", "\u012B", "\u012D",
+ "\u012F", "\u0131", "\u0133")
+ // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+ // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+ // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+ // U+014F: "ŏ" LATIN SMALL LETTER O WITH BREVE
+ // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
+ // U+0153: "œ" LATIN SMALL LIGATURE OE
+ // U+00BA: "º" MASCULINE ORDINAL INDICATOR
+ .setMoreKeysOf("o",
+ "\u00F2", "\u00F3", "\u00F4", "\u00F5", "\u00F6", "\u00F8", "\u014D",
+ "\u014F", "\u0151", "\u0153", "\u00BA")
+ // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+ // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+ // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+ // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ // U+00E6: "æ" LATIN SMALL LETTER AE
+ // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+ // U+0103: "ă" LATIN SMALL LETTER A WITH BREVE
+ // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
+ // U+00AA: "ª" FEMININE ORDINAL INDICATOR
+ .setMoreKeysOf("a",
+ "\u00E0", "\u00E1", "\u00E2", "\u00E3", "\u00E4", "\u00E5", "\u00E6",
+ "\u0101", "\u0103", "\u0105", "\u00AA")
+ // U+00DF: "ß" LATIN SMALL LETTER SHARP S
+ // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+ // U+015D: "ŝ" LATIN SMALL LETTER S WITH CIRCUMFLEX
+ // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
+ // U+0161: "š" LATIN SMALL LETTER S WITH CARON
+ // U+017F: "ſ" LATIN SMALL LETTER LONG S
+ .setMoreKeysOf("s", "\u00DF", "\u015B", "\u015D", "\u015F", "\u0161", "\u017F")
+ // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
+ // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
+ // U+00F0: "ð" LATIN SMALL LETTER ETH
+ .setMoreKeysOf("d", "\u010F", "\u0111", "\u00F0")
+ // U+011D: "ĝ" LATIN SMALL LETTER G WITH CIRCUMFLEX
+ // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
+ // U+0121: "ġ" LATIN SMALL LETTER G WITH DOT ABOVE
+ // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
+ .setMoreKeysOf("g", "\u011D", "\u011F", "\u0121", "\u0123")
+ // U+0125: "ĥ" LATIN SMALL LETTER H WITH CIRCUMFLEX
+ .setMoreKeysOf("h", "\u0125")
+ // U+0135: "ĵ" LATIN SMALL LETTER J WITH CIRCUMFLEX
+ .setMoreKeysOf("j", "\u0135")
+ // U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA
+ // U+0138: "ĸ" LATIN SMALL LETTER KRA
+ .setMoreKeysOf("k", "\u0137", "\u0138")
+ // U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE
+ // U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA
+ // U+013E: "ľ" LATIN SMALL LETTER L WITH CARON
+ // U+0140: "ŀ" LATIN SMALL LETTER L WITH MIDDLE DOT
+ // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
+ .setMoreKeysOf("l", "\u013A", "\u013C", "\u013E", "\u0140", "\u0142")
+ // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
+ // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
+ // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
+ .setMoreKeysOf("z", "\u017A", "\u017C", "\u017E")
+ // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+ // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+ // U+0109: "ĉ" LATIN SMALL LETTER C WITH CIRCUMFLEX
+ // U+010B: "ċ" LATIN SMALL LETTER C WITH DOT ABOVE
+ // U+010D: "č" LATIN SMALL LETTER C WITH CARON
+ .setMoreKeysOf("c", "\u00E7", "\u0107", "\u0109", "\u010B", "\u010D")
+ // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+ // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+ // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
+ // U+0148: "ň" LATIN SMALL LETTER N WITH CARON
+ // U+0149: "ʼn" LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+ // U+014B: "ŋ" LATIN SMALL LETTER ENG
+ .setMoreKeysOf("n", "\u00F1", "\u0144", "\u0146", "\u0148", "\u0149", "\u014B");
+ }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/PortugueseCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/PortugueseCustomizer.java
new file mode 100644
index 000000000..629e8cb8b
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/PortugueseCustomizer.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+class PortugueseCustomizer extends LayoutCustomizer {
+ PortugueseCustomizer(final Locale locale) { super(locale); }
+
+ @Override
+ public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+ return builder
+ // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+ // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+ // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+ // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+ // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+ .setMoreKeysOf("e",
+ "\u00E9", "\u00EA", "\u00E8", "\u0119", "\u0117", "\u0113", "\u00EB")
+ // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+ // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+ .setMoreKeysOf("u", "\u00FA", "\u00FC", "\u00F9", "\u00FB", "\u016B")
+ // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+ // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+ // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+ .setMoreKeysOf("i", "\u00ED", "\u00EE", "\u00EC", "\u00EF", "\u012F", "\u012B")
+ // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+ // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+ // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ // U+0153: "œ" LATIN SMALL LIGATURE OE
+ // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+ // U+00BA: "º" MASCULINE ORDINAL INDICATOR
+ .setMoreKeysOf("o",
+ "\u00F3", "\u00F5", "\u00F4", "\u00F2", "\u00F6", "\u0153", "\u00F8",
+ "\u014D", "\u00BA")
+ // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+ // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+ // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+ // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ // U+00E6: "æ" LATIN SMALL LETTER AE
+ // U+00AA: "ª" FEMININE ORDINAL INDICATOR
+ .setMoreKeysOf("a",
+ "\u00E1", "\u00E3", "\u00E0", "\u00E2", "\u00E4", "\u00E5", "\u00E6",
+ "\u00AA")
+ // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+ // U+010D: "č" LATIN SMALL LETTER C WITH CARON
+ // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+ .setMoreKeysOf("c", "\u00E7", "\u010D", "\u0107");
+ }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/SpanishCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/SpanishCustomizer.java
new file mode 100644
index 000000000..8974ad6ec
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/SpanishCustomizer.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.Spanish;
+import com.android.inputmethod.keyboard.layout.expected.AbstractLayoutBase;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+class SpanishCustomizer extends LayoutCustomizer {
+ SpanishCustomizer(final Locale locale) { super(locale); }
+
+ @Override
+ public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
+ return isPhone ? PHONE_PUNCTUATION_MORE_KEYS
+ : LayoutBase.TABLET_PUNCTUATION_MORE_KEYS;
+ }
+
+ // Punctuation more keys for phone form factor.
+ private static final ExpectedKey[] PHONE_PUNCTUATION_MORE_KEYS = AbstractLayoutBase.joinKeys(
+ // U+00A1: "¡" INVERTED EXCLAMATION MARK
+ // U+00BF: "¿" INVERTED QUESTION MARK
+ ",", "?", "!", "#", ")", "(", "/", ";", "\u00A1",
+ "'", "@", ":", "-", "\"", "+", "%", "&", "\u00BF");
+
+ @Override
+ public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+ return builder
+ // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+ // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+ // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+ // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+ // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+ .setMoreKeysOf("e",
+ "\u00E9", "\u00E8", "\u00EB", "\u00EA", "\u0119", "\u0117", "\u0113")
+ // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+ // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+ .setMoreKeysOf("u", "\u00FA", "\u00FC", "\u00F9", "\u00FB", "\u016B")
+ // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+ // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+ // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+ .setMoreKeysOf("i", "\u00ED", "\u00EF", "\u00EC", "\u00EE", "\u012F", "\u012B")
+ // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+ // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+ // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ // U+0153: "œ" LATIN SMALL LIGATURE OE
+ // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+ // U+00BA: "º" MASCULINE ORDINAL INDICATOR
+ .setMoreKeysOf("o",
+ "\u00F3", "\u00F2", "\u00F6", "\u00F4", "\u00F5", "\u00F8", "\u0153",
+ "\u014D", "\u00BA")
+ // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+ // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+ // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+ // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
+ // U+00E6: "æ" LATIN SMALL LETTER AE
+ // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+ // U+00AA: "ª" FEMININE ORDINAL INDICATOR
+ .setMoreKeysOf("a",
+ "\u00E1", "\u00E0", "\u00E4", "\u00E2", "\u00E3", "\u00E5", "\u0105",
+ "\u00E6", "\u0101", "\u00AA")
+ // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+ .replaceKeyOfLabel(Spanish.ROW2_10, "\u00F1")
+ // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+ // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+ // U+010D: "č" LATIN SMALL LETTER C WITH CARON
+ .setMoreKeysOf("c", "\u00E7", "\u0107", "\u010D")
+ // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+ // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+ .setMoreKeysOf("n", "\u00F1", "\u0144");
+ }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsAfrikaans.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsAfrikaans.java
index c98b4a5a9..cd2259888 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsAfrikaans.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsAfrikaans.java
@@ -50,17 +50,16 @@ public final class TestsAfrikaans extends LayoutTestsBase {
// U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
// U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
.setMoreKeysOf("e",
- "3", "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0119", "\u0117",
- "\u0113")
+ "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0119", "\u0117", "\u0113")
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "7", "\u00FA", "\u00FB", "\u00FC", "\u00F9", "\u016B")
+ .setMoreKeysOf("u", "\u00FA", "\u00FB", "\u00FC", "\u00F9", "\u016B")
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+0133: "ij" LATIN SMALL LIGATURE IJ
- .setMoreKeysOf("y", "6", "\u00FD", "\u0133")
+ .setMoreKeysOf("y", "\u00FD", "\u0133")
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
@@ -69,8 +68,7 @@ public final class TestsAfrikaans extends LayoutTestsBase {
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
// U+0133: "ij" LATIN SMALL LIGATURE IJ
.setMoreKeysOf("i",
- "8", "\u00ED", "\u00EC", "\u00EF", "\u00EE", "\u012F", "\u012B",
- "\u0133")
+ "\u00ED", "\u00EC", "\u00EF", "\u00EE", "\u012F", "\u012B", "\u0133")
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
@@ -80,8 +78,8 @@ public final class TestsAfrikaans extends LayoutTestsBase {
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o",
- "9", "\u00F3", "\u00F4", "\u00F6", "\u00F2", "\u00F5", "\u0153",
- "\u00F8", "\u014D")
+ "\u00F3", "\u00F4", "\u00F6", "\u00F2", "\u00F5", "\u0153", "\u00F8",
+ "\u014D")
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsArmenianAMPhonetic.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsArmenianAMPhonetic.java
new file mode 100644
index 000000000..327e9438f
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsArmenianAMPhonetic.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.ArmenianPhonetic;
+import com.android.inputmethod.keyboard.layout.ArmenianPhonetic.ArmenianPhoneticCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+
+import java.util.Locale;
+
+/**
+ * hy_AM: Armenian (Armenia) Phonetic/armenian_phonetic
+ */
+@SmallTest
+public final class TestsArmenianAMPhonetic extends LayoutTestsBase {
+ private static final Locale LOCALE = new Locale("hy", "AM");
+ private static final LayoutBase LAYOUT = new ArmenianPhonetic(
+ new ArmenianPhoneticCustomizer(LOCALE));
+
+ @Override
+ LayoutBase getLayout() { return LAYOUT; }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsAzerbaijaniAZ.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsAzerbaijaniAZ.java
index 84d5a3627..f5317e269 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsAzerbaijaniAZ.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsAzerbaijaniAZ.java
@@ -43,13 +43,13 @@ public final class TestsAzerbaijaniAZ extends LayoutTestsBase {
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
return builder
// U+0259: "ə" LATIN SMALL LETTER SCHWA
- .setMoreKeysOf("e", "3", "\u0259")
+ .setMoreKeysOf("e", "\u0259")
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "7", "\u00FC", "\u00FB", "\u00F9", "\u00FA", "\u016B")
+ .setMoreKeysOf("u", "\u00FC", "\u00FB", "\u00F9", "\u00FA", "\u016B")
// U+0131: "ı" LATIN SMALL LETTER DOTLESS I
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
@@ -58,8 +58,7 @@ public final class TestsAzerbaijaniAZ extends LayoutTestsBase {
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
.setMoreKeysOf("i",
- "8", "\u0131", "\u00EE", "\u00EF", "\u00EC", "\u00ED", "\u012F",
- "\u012B")
+ "\u0131", "\u00EE", "\u00EF", "\u00EC", "\u00ED", "\u012F", "\u012B")
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+0153: "œ" LATIN SMALL LIGATURE OE
@@ -69,8 +68,8 @@ public final class TestsAzerbaijaniAZ extends LayoutTestsBase {
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o",
- "9", "\u00F6", "\u00F4", "\u0153", "\u00F2", "\u00F3", "\u00F5",
- "\u00F8", "\u014D")
+ "\u00F6", "\u00F4", "\u0153", "\u00F2", "\u00F3", "\u00F5", "\u00F8",
+ "\u014D")
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
.setMoreKeysOf("a", "\u00E2")
// U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBasqueES.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBasqueES.java
new file mode 100644
index 000000000..bef18c5d5
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBasqueES.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
+import com.android.inputmethod.keyboard.layout.Spanish;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+/**
+ * eu_ES: Basque (Spain)/spanish
+ */
+@SmallTest
+public class TestsBasqueES extends LayoutTestsBase {
+ private static final Locale LOCALE = new Locale("eu", "ES");
+ private static final LayoutBase LAYOUT = new Spanish(new BasqueESCustomizer(LOCALE));
+
+ @Override
+ LayoutBase getLayout() { return LAYOUT; }
+
+ private static class BasqueESCustomizer extends EuroCustomizer {
+ private final SpanishCustomizer mSpanishCustomizer;
+
+ public BasqueESCustomizer(final Locale locale) {
+ super(locale);
+ mSpanishCustomizer = new SpanishCustomizer(locale);
+ }
+
+ @Override
+ public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+ return mSpanishCustomizer.setAccentedLetters(builder);
+ }
+ }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBelarusianBY.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBelarusianBY.java
index 476841c23..c5238d54f 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBelarusianBY.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBelarusianBY.java
@@ -56,15 +56,15 @@ public final class TestsBelarusianBY extends LayoutTestsBase {
return builder
// U+0435: "е" CYRILLIC SMALL LETTER IE
// U+0451: "ё" CYRILLIC SMALL LETTER IO
- .setMoreKeysOf("\u0435", "5", "\u0451")
+ .setMoreKeysOf("\u0435", "\u0451")
// U+045E: "ў" CYRILLIC SMALL LETTER SHORT U
- .replaceKeyOfLabel(EastSlavic.ROW1_9, key("\u045E", moreKey("9")))
+ .replaceKeyOfLabel(EastSlavic.ROW1_9, key("\u045E", additionalMoreKey("9")))
// U+044B: "ы" CYRILLIC SMALL LETTER YERU
- .replaceKeyOfLabel(EastSlavic.ROW2_2, key("\u044B"))
+ .replaceKeyOfLabel(EastSlavic.ROW2_2, "\u044B")
// U+044D: "э" CYRILLIC SMALL LETTER E
- .replaceKeyOfLabel(EastSlavic.ROW2_11, key("\u044D"))
+ .replaceKeyOfLabel(EastSlavic.ROW2_11, "\u044D")
// U+0456: "і" CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
- .replaceKeyOfLabel(EastSlavic.ROW3_5, key("\u0456"))
+ .replaceKeyOfLabel(EastSlavic.ROW3_5, "\u0456")
// U+044C: "ь" CYRILLIC SMALL LETTER SOFT SIGN
// U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN
.setMoreKeysOf("\u044C", "\u044A");
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCatalan.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCatalan.java
index ec03f0d92..151a0a627 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCatalan.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCatalan.java
@@ -19,7 +19,7 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroLayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.Spanish;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
@@ -37,7 +37,7 @@ public class TestsCatalan extends LayoutTestsBase {
@Override
LayoutBase getLayout() { return LAYOUT; }
- private static class CatalanCustomizer extends EuroLayoutCustomizer {
+ private static class CatalanCustomizer extends EuroCustomizer {
public CatalanCustomizer(final Locale locale) { super(locale); }
@Override
@@ -48,12 +48,12 @@ public class TestsCatalan extends LayoutTestsBase {
// U+00B7: "·" MIDDLE DOT
private static final ExpectedKey[] PHONE_PUNCTUATION_MORE_KEYS = joinKeys(
- ";", "/", "(", ")", "#", "\u00B7", "!", ",", "?",
- "&", "%", "+", "\"", "-", ":", "'", "@");
+ ",", "?", "!", "\u00B7", "#", ")", "(", "/", ";",
+ "'", "@", ":", "-", "\"", "+", "%", "&");
private static final ExpectedKey[] TABLET_PUNCTUATION_MORE_KEYS = joinKeys(
- ";", "/", "(", ")", "#", "\u00B7", "'", ",",
- "&", "%", "+", "\"", "-", ":", "@");
+ ",", "'", "\u00B7", "#", ")", "(", "/", ";",
+ "@", ":", "-", "\"", "+", "%", "&");
@Override
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
@@ -66,22 +66,20 @@ public class TestsCatalan extends LayoutTestsBase {
// U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
// U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
.setMoreKeysOf("e",
- "3", "\u00E8", "\u00E9", "\u00EB", "\u00EA", "\u0119", "\u0117",
- "\u0113")
+ "\u00E8", "\u00E9", "\u00EB", "\u00EA", "\u0119", "\u0117", "\u0113")
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "7", "\u00FA", "\u00FC", "\u00F9", "\u00FB", "\u016B")
+ .setMoreKeysOf("u", "\u00FA", "\u00FC", "\u00F9", "\u00FB", "\u016B")
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
- .setMoreKeysOf("i",
- "8", "\u00ED", "\u00EF", "\u00EC", "\u00EE", "\u012F", "\u012B")
+ .setMoreKeysOf("i", "\u00ED", "\u00EF", "\u00EC", "\u00EE", "\u012F", "\u012B")
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
@@ -92,8 +90,8 @@ public class TestsCatalan extends LayoutTestsBase {
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
// U+00BA: "º" MASCULINE ORDINAL INDICATOR
.setMoreKeysOf("o",
- "9", "\u00F2", "\u00F3", "\u00F6", "\u00F4", "\u00F5", "\u00F8",
- "\u0153", "\u014D", "\u00BA")
+ "\u00F2", "\u00F3", "\u00F6", "\u00F4", "\u00F5", "\u00F8", "\u0153",
+ "\u014D", "\u00BA")
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
@@ -111,7 +109,7 @@ public class TestsCatalan extends LayoutTestsBase {
// U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
.setMoreKeysOf("l", "l\u00B7l", "\u0142")
// U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
- .replaceKeyOfLabel(Spanish.ROW2_10, key("\u00E7"))
+ .replaceKeyOfLabel(Spanish.ROW2_10, "\u00E7")
// U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
// U+010D: "č" LATIN SMALL LETTER C WITH CARON
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCroatian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCroatian.java
index cf76de52e..8575ef219 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCroatian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCroatian.java
@@ -59,7 +59,7 @@ public final class TestsCroatian extends LayoutTestsBase {
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
- .setMoreKeysOf("z", "6", "\u017E", "\u017A", "\u017C")
+ .setMoreKeysOf("z", "\u017E", "\u017A", "\u017C")
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCzech.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCzech.java
index 5cf47401d..f4794707f 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCzech.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCzech.java
@@ -65,32 +65,30 @@ public final class TestsCzech extends LayoutTestsBase {
// U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
// U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
.setMoreKeysOf("e",
- "3", "\u00E9", "\u011B", "\u00E8", "\u00EA", "\u00EB", "\u0119",
- "\u0117", "\u0113")
+ "\u00E9", "\u011B", "\u00E8", "\u00EA", "\u00EB", "\u0119", "\u0117",
+ "\u0113")
// U+0159: "ř" LATIN SMALL LETTER R WITH CARON
- .setMoreKeysOf("r", "4", "\u0159")
+ .setMoreKeysOf("r", "\u0159")
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
- .setMoreKeysOf("t", "5", "\u0165")
+ .setMoreKeysOf("t", "\u0165")
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
- .setMoreKeysOf("z", "6", "\u017E", "\u017A", "\u017C")
+ .setMoreKeysOf("z", "\u017E", "\u017A", "\u017C")
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u",
- "7", "\u00FA", "\u016F", "\u00FB", "\u00FC", "\u00F9", "\u016B")
+ .setMoreKeysOf("u", "\u00FA", "\u016F", "\u00FB", "\u00FC", "\u00F9", "\u016B")
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
- .setMoreKeysOf("i",
- "8", "\u00ED", "\u00EE", "\u00EF", "\u00EC", "\u012F", "\u012B")
+ .setMoreKeysOf("i", "\u00ED", "\u00EE", "\u00EF", "\u00EC", "\u012F", "\u012B")
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
@@ -100,8 +98,8 @@ public final class TestsCzech extends LayoutTestsBase {
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o",
- "9", "\u00F3", "\u00F6", "\u00F4", "\u00F2", "\u00F5", "\u0153",
- "\u00F8", "\u014D")
+ "\u00F3", "\u00F6", "\u00F4", "\u00F2", "\u00F5", "\u0153", "\u00F8",
+ "\u014D")
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDanish.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDanish.java
index 050a0c472..85c63a128 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDanish.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDanish.java
@@ -19,7 +19,7 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroLayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.Nordic;
import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
@@ -38,7 +38,7 @@ public final class TestsDanish extends LayoutTestsBase {
@Override
LayoutBase getLayout() { return LAYOUT; }
- private static class DanishCustomizer extends EuroLayoutCustomizer {
+ private static class DanishCustomizer extends EuroCustomizer {
public DanishCustomizer(final Locale locale) { super(locale); }
@Override
@@ -58,29 +58,28 @@ public final class TestsDanish extends LayoutTestsBase {
return builder
// U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
// U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
- .setMoreKeysOf("e", "3", "\u00E9", "\u00EB")
+ .setMoreKeysOf("e", "\u00E9", "\u00EB")
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
- .setMoreKeysOf("y", "6", "\u00FD", "\u00FF")
+ .setMoreKeysOf("y", "\u00FD", "\u00FF")
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "7", "\u00FA", "\u00FC", "\u00FB", "\u00F9", "\u016B")
+ .setMoreKeysOf("u", "\u00FA", "\u00FC", "\u00FB", "\u00F9", "\u016B")
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
- .setMoreKeysOf("i", "8", "\u00ED", "\u00EF")
+ .setMoreKeysOf("i", "\u00ED", "\u00EF")
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+0153: "œ" LATIN SMALL LIGATURE OE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
- .setMoreKeysOf("o",
- "9", "\u00F3", "\u00F4", "\u00F2", "\u00F5", "\u0153", "\u014D")
+ .setMoreKeysOf("o", "\u00F3", "\u00F4", "\u00F2", "\u00F5", "\u0153", "\u014D")
// U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
- .replaceKeyOfLabel(Nordic.ROW1_11, key("\u00E5"))
+ .replaceKeyOfLabel(Nordic.ROW1_11, "\u00E5")
// U+00E6: "æ" LATIN SMALL LETTER AE
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
.replaceKeyOfLabel(Nordic.ROW2_10, key("\u00E6", moreKey("\u00E4")))
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDutch.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDutch.java
index e6e3378a3..1730f66be 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDutch.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDutch.java
@@ -19,7 +19,7 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroLayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.Qwerty;
import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
@@ -38,7 +38,7 @@ public final class TestsDutch extends LayoutTestsBase {
@Override
LayoutBase getLayout() { return LAYOUT; }
- private static class DutchCustomizer extends EuroLayoutCustomizer {
+ static class DutchCustomizer extends EuroCustomizer {
public DutchCustomizer(final Locale locale) { super(locale); }
@Override
@@ -50,6 +50,17 @@ public final class TestsDutch extends LayoutTestsBase {
@Override
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
return builder
+ // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+ // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+ // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+ // U+00E6: "æ" LATIN SMALL LETTER AE
+ // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+ .setMoreKeysOf("a",
+ "\u00E1", "\u00E4", "\u00E2", "\u00E0", "\u00E6", "\u00E3", "\u00E5",
+ "\u0101")
// U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
// U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
// U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
@@ -58,16 +69,15 @@ public final class TestsDutch extends LayoutTestsBase {
// U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
// U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
.setMoreKeysOf("e",
- "3", "\u00E9", "\u00EB", "\u00EA", "\u00E8", "\u0119", "\u0117",
- "\u0113")
+ "\u00E9", "\u00EB", "\u00EA", "\u00E8", "\u0119", "\u0117", "\u0113")
// U+0133: "ij" LATIN SMALL LIGATURE IJ
- .setMoreKeysOf("y", "6", "\u0133")
+ .setMoreKeysOf("y", "\u0133")
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "7", "\u00FA", "\u00FC", "\u00FB", "\u00F9", "\u016B")
+ .setMoreKeysOf("u", "\u00FA", "\u00FC", "\u00FB", "\u00F9", "\u016B")
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -76,8 +86,7 @@ public final class TestsDutch extends LayoutTestsBase {
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
// U+0133: "ij" LATIN SMALL LIGATURE IJ
.setMoreKeysOf("i",
- "8", "\u00ED", "\u00EF", "\u00EC", "\u00EE", "\u012F", "\u012B",
- "\u0133")
+ "\u00ED", "\u00EF", "\u00EC", "\u00EE", "\u012F", "\u012B", "\u0133")
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
@@ -87,19 +96,8 @@ public final class TestsDutch extends LayoutTestsBase {
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o",
- "9", "\u00F3", "\u00F6", "\u00F4", "\u00F2", "\u00F5", "\u0153",
- "\u00F8", "\u014D")
- // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
- // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
- // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
- // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
- // U+00E6: "æ" LATIN SMALL LETTER AE
- // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
- // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
- // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
- .setMoreKeysOf("a",
- "\u00E1", "\u00E4", "\u00E2", "\u00E0", "\u00E6", "\u00E3", "\u00E5",
- "\u0101")
+ "\u00F3", "\u00F6", "\u00F4", "\u00F2", "\u00F5", "\u0153", "\u00F8",
+ "\u014D")
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
.setMoreKeysOf("n", "\u00F1", "\u0144");
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDutchBE.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDutchBE.java
index aa706f601..31adf7a8d 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDutchBE.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDutchBE.java
@@ -20,10 +20,7 @@ import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.Azerty;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroLayoutCustomizer;
-import com.android.inputmethod.keyboard.layout.Symbols;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.keyboard.layout.tests.TestsDutch.DutchCustomizer;
import java.util.Locale;
@@ -33,76 +30,8 @@ import java.util.Locale;
@SmallTest
public final class TestsDutchBE extends LayoutTestsBase {
private static final Locale LOCALE = new Locale("nl", "BE");
- private static final LayoutBase LAYOUT = new Azerty(new DutchBECustomizer(LOCALE));
+ private static final LayoutBase LAYOUT = new Azerty(new DutchCustomizer(LOCALE));
@Override
LayoutBase getLayout() { return LAYOUT; }
-
- private static class DutchBECustomizer extends EuroLayoutCustomizer {
- public DutchBECustomizer(final Locale locale) { super(locale); }
-
- @Override
- public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_L9R; }
-
- @Override
- public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_L9R; }
-
- @Override
- public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
- return builder
- // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
- // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
- // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
- // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
- // U+00E6: "æ" LATIN SMALL LETTER AE
- // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
- // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
- // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
- .setMoreKeysOf("a",
- "1", "\u00E1", "\u00E4", "\u00E2", "\u00E0", "\u00E6", "\u00E3",
- "\u00E5", "\u0101")
- // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
- // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
- // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
- // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
- // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
- // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
- // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
- .setMoreKeysOf("e",
- "3", "\u00E9", "\u00EB", "\u00EA", "\u00E8", "\u0119", "\u0117",
- "\u0113")
- // U+0133: "ij" LATIN SMALL LIGATURE IJ
- .setMoreKeysOf("y", "6", "\u0133")
- // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
- // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
- // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
- // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
- // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "7", "\u00FA", "\u00FC", "\u00FB", "\u00F9", "\u016B")
- // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
- // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
- // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
- // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
- // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
- // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
- // U+0133: "ij" LATIN SMALL LIGATURE IJ
- .setMoreKeysOf("i",
- "8", "\u00ED", "\u00EF", "\u00EC", "\u00EE", "\u012F", "\u012B",
- "\u0133")
- // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
- // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
- // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
- // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
- // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
- // U+0153: "œ" LATIN SMALL LIGATURE OE
- // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
- // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
- .setMoreKeysOf("o",
- "9", "\u00F3", "\u00F6", "\u00F4", "\u00F2", "\u00F5", "\u0153",
- "\u00F8", "\u014D")
- // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
- // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
- .setMoreKeysOf("n", "\u00F1", "\u0144");
- }
- }
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishDvorak.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishDvorak.java
new file mode 100644
index 000000000..a05269312
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishDvorak.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.Dvorak;
+import com.android.inputmethod.keyboard.layout.Dvorak.DvorakCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+/**
+ * en_US: English (United States)/dvorak
+ */
+@SmallTest
+public class TestsEnglishDvorak extends LayoutTestsBase {
+ private static final Locale LOCALE = new Locale("en", "US");
+ private static final LayoutBase LAYOUT = new Dvorak(new EnglishDvorakCustomizer(LOCALE));
+
+ @Override
+ LayoutBase getLayout() { return LAYOUT; }
+
+ private static class EnglishDvorakCustomizer extends DvorakCustomizer {
+ private final EnglishCustomizer mEnglishCustomizer;
+
+ EnglishDvorakCustomizer(final Locale locale) {
+ super(locale);
+ mEnglishCustomizer = new EnglishCustomizer(locale);
+ }
+
+ @Override
+ public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+ return mEnglishCustomizer.setAccentedLetters(builder);
+ }
+ }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishUK.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishUK.java
index 4789507d8..c0dcbdc06 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishUK.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishUK.java
@@ -36,7 +36,7 @@ public final class TestsEnglishUK extends TestsEnglishUS {
@Override
LayoutBase getLayout() { return LAYOUT; }
- private static class EnglishUKCustomizer extends EnglishUSCustomizer {
+ private static class EnglishUKCustomizer extends EnglishCustomizer {
public EnglishUKCustomizer(final Locale locale) { super(locale); }
@Override
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishUS.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishUS.java
index 991187aab..6ea8f6000 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishUS.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishUS.java
@@ -19,9 +19,7 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.Qwerty;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
@@ -31,63 +29,8 @@ import java.util.Locale;
@SmallTest
public class TestsEnglishUS extends LayoutTestsBase {
private static final Locale LOCALE = new Locale("en", "US");
- private static final LayoutBase LAYOUT = new Qwerty(new EnglishUSCustomizer(LOCALE));
+ private static final LayoutBase LAYOUT = new Qwerty(new EnglishCustomizer(LOCALE));
@Override
LayoutBase getLayout() { return LAYOUT; }
-
- // TODO: Make this as generic English customizer.
- static class EnglishUSCustomizer extends LayoutCustomizer {
- public EnglishUSCustomizer(final Locale locale) { super(locale); }
-
- @Override
- public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
- return builder
- // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
- // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
- // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
- // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
- // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
- .setMoreKeysOf("e", "3", "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u0113")
- // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
- // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
- // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
- // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
- // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "7", "\u00FB", "\u00FC", "\u00F9", "\u00FA", "\u016B")
- // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
- // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
- // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
- // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
- // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
- .setMoreKeysOf("i", "8", "\u00EE", "\u00EF", "\u00ED", "\u012B", "\u00EC")
- // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
- // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
- // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
- // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
- // U+0153: "œ" LATIN SMALL LIGATURE OE
- // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
- // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
- // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
- .setMoreKeysOf("o",
- "9", "\u00F4", "\u00F6", "\u00F2", "\u00F3", "\u0153", "\u00F8",
- "\u014D", "\u00F5")
- // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
- // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
- // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
- // U+00E6: "æ" LATIN SMALL LETTER AE
- // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
- // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
- // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
- .setMoreKeysOf("a",
- "\u00E0", "\u00E1", "\u00E2", "\u00E4", "\u00E6", "\u00E3", "\u00E5",
- "\u0101")
- // U+00DF: "ß" LATIN SMALL LETTER SHARP S
- .setMoreKeysOf("s", "\u00DF")
- // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
- .setMoreKeysOf("c", "\u00E7")
- // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
- .setMoreKeysOf("n", "\u00F1");
- }
- }
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEsperanto.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEsperanto.java
index a54601b6b..6a44187c9 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEsperanto.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEsperanto.java
@@ -43,11 +43,12 @@ public class TestsEsperanto extends LayoutTestsBase {
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
return builder
// U+015D: "ŝ" LATIN SMALL LETTER S WITH CIRCUMFLEX
- .replaceKeyOfLabel("q", key("\u015D", moreKey("1"), moreKey("q")))
+ .replaceKeyOfLabel("q", key("\u015D", joinMoreKeys(
+ additionalMoreKey("1"), "q")))
// U+011D: "ĝ" LATIN SMALL LETTER G WITH CIRCUMFLEX
// U+0175: "ŵ" LATIN SMALL LETTER W WITH CIRCUMFLEX
- .replaceKeyOfLabel("w", key("\u011D",
- moreKey("2"), moreKey("w"), moreKey("\u0175")))
+ .replaceKeyOfLabel("w", key("\u011D", joinMoreKeys(
+ additionalMoreKey("2"), "w", "\u0175")))
// U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
// U+011B: "ě" LATIN SMALL LETTER E WITH CARON
// U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
@@ -57,25 +58,24 @@ public class TestsEsperanto extends LayoutTestsBase {
// U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
// U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
.setMoreKeysOf("e",
- "3", "\u00E9", "\u011B", "\u00E8", "\u00EA", "\u00EB", "\u0119",
- "\u0117", "\u0113")
+ "\u00E9", "\u011B", "\u00E8", "\u00EA", "\u00EB", "\u0119", "\u0117",
+ "\u0113")
// U+0159: "ř" LATIN SMALL LETTER R WITH CARON
// U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
// U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
- .setMoreKeysOf("r", "4", "\u0159", "\u0155", "\u0157")
+ .setMoreKeysOf("r", "\u0159", "\u0155", "\u0157")
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
// U+021B: "ț" LATIN SMALL LETTER T WITH COMMA BELOW
// U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
// U+0167: "ŧ" LATIN SMALL LETTER T WITH STROKE
- .setMoreKeysOf("t", "5", "\u0165", "\u021B", "\u0163", "\u0167")
+ .setMoreKeysOf("t", "\u0165", "\u021B", "\u0163", "\u0167")
// U+016D: "ŭ" LATIN SMALL LETTER U WITH BREVE
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+0177: "ŷ" LATIN SMALL LETTER Y WITH CIRCUMFLEX
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
// U+00FE: "þ" LATIN SMALL LETTER THORN
- .replaceKeyOfLabel("y", key("\u016D",
- moreKey("6"), moreKey("y"), moreKey("\u00FD"), moreKey("\u0177"),
- moreKey("\u00FF"), moreKey("\u00FE")))
+ .replaceKeyOfLabel("y", key("\u016D", joinMoreKeys(
+ additionalMoreKey("6"), "y", "\u00FD", "\u0177", "\u00FF", "\u00FE")))
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
@@ -87,8 +87,8 @@ public class TestsEsperanto extends LayoutTestsBase {
// U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
// U+00B5: "µ" MICRO SIGN
.setMoreKeysOf("u",
- "7", "\u00FA", "\u016F", "\u00FB", "\u00FC", "\u00F9", "\u016B",
- "\u0169", "\u0171", "\u0173", "\u00B5")
+ "\u00FA", "\u016F", "\u00FB", "\u00FC", "\u00F9", "\u016B", "\u0169",
+ "\u0171", "\u0173", "\u00B5")
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
@@ -99,8 +99,8 @@ public class TestsEsperanto extends LayoutTestsBase {
// U+0131: "ı" LATIN SMALL LETTER DOTLESS I
// U+0133: "ij" LATIN SMALL LIGATURE IJ
.setMoreKeysOf("i",
- "8", "\u00ED", "\u00EE", "\u00EF", "\u0129", "\u00EC", "\u012F",
- "\u012B", "\u0131", "\u0133")
+ "\u00ED", "\u00EE", "\u00EF", "\u0129", "\u00EC", "\u012F", "\u012B",
+ "\u0131", "\u0133")
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
@@ -112,8 +112,8 @@ public class TestsEsperanto extends LayoutTestsBase {
// U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
// U+00BA: "º" MASCULINE ORDINAL INDICATOR
.setMoreKeysOf("o",
- "9", "\u00F3", "\u00F6", "\u00F4", "\u00F2", "\u00F5", "\u0153",
- "\u00F8", "\u014D", "\u0151", "\u00BA")
+ "\u00F3", "\u00F6", "\u00F4", "\u00F2", "\u00F5", "\u0153", "\u00F8",
+ "\u014D", "\u0151", "\u00BA")
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
@@ -162,7 +162,7 @@ public class TestsEsperanto extends LayoutTestsBase {
// U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
.setMoreKeysOf("l", "\u013A", "\u013C", "\u013E", "\u0140", "\u0142")
// U+0135: "ĵ" LATIN SMALL LETTER J WITH CIRCUMFLEX
- .replaceKeyOfLabel(Spanish.ROW2_10, key("\u0135"))
+ .replaceKeyOfLabel(Spanish.ROW2_10, "\u0135")
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEstonianEE.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEstonianEE.java
index be3786a32..865e9ea17 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEstonianEE.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEstonianEE.java
@@ -19,7 +19,7 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroLayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.Nordic;
import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
@@ -38,7 +38,7 @@ public final class TestsEstonianEE extends LayoutTestsBase {
@Override
LayoutBase getLayout() { return LAYOUT; }
- private static class EstonianEECustomizer extends EuroLayoutCustomizer {
+ private static class EstonianEECustomizer extends EuroCustomizer {
public EstonianEECustomizer(final Locale locale) {
super(locale);
}
@@ -61,18 +61,18 @@ public final class TestsEstonianEE extends LayoutTestsBase {
// U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
// U+011B: "ě" LATIN SMALL LETTER E WITH CARON
.setMoreKeysOf("e",
- "3", "\u0113", "\u00E8", "\u0117", "\u00E9", "\u00EA", "\u00EB",
- "\u0119", "\u011B")
+ "\u0113", "\u00E8", "\u0117", "\u00E9", "\u00EA", "\u00EB", "\u0119",
+ "\u011B")
// U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
// U+0159: "ř" LATIN SMALL LETTER R WITH CARON
// U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
- .setMoreKeysOf("r", "4", "\u0157", "\u0159", "\u0155")
+ .setMoreKeysOf("r", "\u0157", "\u0159", "\u0155")
// U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
- .setMoreKeysOf("t", "5", "\u0163", "\u0165")
+ .setMoreKeysOf("t", "\u0163", "\u0165")
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
- .setMoreKeysOf("y", "6", "\u00FD", "\u00FF")
+ .setMoreKeysOf("y", "\u00FD", "\u00FF")
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
// U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
@@ -82,8 +82,8 @@ public final class TestsEstonianEE extends LayoutTestsBase {
// U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
// U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
.setMoreKeysOf("u",
- "7", "\u00FC", "\u016B", "\u0173", "\u00F9", "\u00FA", "\u00FB",
- "\u016F", "\u0171")
+ "\u00FC", "\u016B", "\u0173", "\u00F9", "\u00FA", "\u00FB", "\u016F",
+ "\u0171")
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
@@ -92,8 +92,7 @@ public final class TestsEstonianEE extends LayoutTestsBase {
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+0131: "ı" LATIN SMALL LETTER DOTLESS I
.setMoreKeysOf("i",
- "8", "\u012B", "\u00EC", "\u012F", "\u00ED", "\u00EE", "\u00EF",
- "\u0131")
+ "\u012B", "\u00EC", "\u012F", "\u00ED", "\u00EE", "\u00EF", "\u0131")
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
@@ -103,15 +102,15 @@ public final class TestsEstonianEE extends LayoutTestsBase {
// U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
.setMoreKeysOf("o",
- "9", "\u00F6", "\u00F5", "\u00F2", "\u00F3", "\u00F4", "\u0153",
- "\u0151", "\u00F8")
+ "\u00F6", "\u00F5", "\u00F2", "\u00F3", "\u00F4", "\u0153", "\u0151",
+ "\u00F8")
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
- .replaceKeyOfLabel(Nordic.ROW1_11, key("\u00FC"))
+ .replaceKeyOfLabel(Nordic.ROW1_11, "\u00FC")
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
.replaceKeyOfLabel(Nordic.ROW2_10, key("\u00F6", moreKey("\u00F5")))
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
- .replaceKeyOfLabel(Nordic.ROW2_11, key("\u00E4"))
+ .replaceKeyOfLabel(Nordic.ROW2_11, "\u00E4")
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFinnish.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFinnish.java
index 20ecd5164..ff32da117 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFinnish.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFinnish.java
@@ -19,7 +19,7 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroLayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.Nordic;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
@@ -36,14 +36,14 @@ public final class TestsFinnish extends LayoutTestsBase {
@Override
LayoutBase getLayout() { return LAYOUT; }
- private static class FinnishCustomizer extends EuroLayoutCustomizer {
+ private static class FinnishCustomizer extends EuroCustomizer {
public FinnishCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
return builder
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
- .setMoreKeysOf("u", "7", "\u00FC")
+ .setMoreKeysOf("u", "\u00FC")
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
@@ -52,10 +52,9 @@ public final class TestsFinnish extends LayoutTestsBase {
// U+0153: "œ" LATIN SMALL LIGATURE OE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o",
- "9", "\u00F8", "\u00F4", "\u00F2", "\u00F3", "\u00F5", "\u0153",
- "\u014D")
+ "\u00F8", "\u00F4", "\u00F2", "\u00F3", "\u00F5", "\u0153", "\u014D")
// U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
- .replaceKeyOfLabel(Nordic.ROW1_11, key("\u00E5"))
+ .replaceKeyOfLabel(Nordic.ROW1_11, "\u00E5")
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
.replaceKeyOfLabel(Nordic.ROW2_10, key("\u00F6", moreKey("\u00F8")))
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrench.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrench.java
index 5f8ecd6e1..7ced1fb7b 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrench.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrench.java
@@ -20,8 +20,8 @@ import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.Azerty;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroLayoutCustomizer;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import java.util.Locale;
@@ -31,71 +31,25 @@ import java.util.Locale;
@SmallTest
public final class TestsFrench extends LayoutTestsBase {
private static final Locale LOCALE = new Locale("fr");
- private static final LayoutBase LAYOUT = new Azerty(new FrenchCustomizer(LOCALE));
+ private static final LayoutBase LAYOUT = new Azerty(new FrenchEuroCustomizer(LOCALE));
@Override
LayoutBase getLayout() { return LAYOUT; }
- private static class FrenchCustomizer extends EuroLayoutCustomizer {
- public FrenchCustomizer(final Locale locale) { super(locale); }
+ static final class FrenchEuroCustomizer extends FrenchCustomizer {
+ private final EuroCustomizer mEuroCustomizer;
+
+ public FrenchEuroCustomizer(final Locale locale) {
+ super(locale);
+ mEuroCustomizer = new EuroCustomizer(locale);
+ }
+
+ @Override
+ public final ExpectedKey getCurrencyKey() { return mEuroCustomizer.getCurrencyKey(); }
@Override
- public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
- return builder
- // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
- // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
- // U+00E6: "æ" LATIN SMALL LETTER AE
- // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
- // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
- // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
- // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
- // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
- // U+00AA: "ª" FEMININE ORDINAL INDICATOR
- .setMoreKeysOf("a",
- "\u00E0", "\u00E2", "1", "\u00E6", "\u00E1", "\u00E4", "\u00E3",
- "\u00E5", "\u0101", "\u00AA")
- // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
- // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
- // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
- // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
- // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
- // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
- // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
- .setMoreKeysOf("e",
- "\u00E9", "\u00E8", "\u00EA", "\u00EB", "3", "\u0119", "\u0117",
- "\u0113")
- // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
- .setMoreKeysOf("y", "6", "\u00FF")
- // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
- // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
- // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
- // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
- // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "\u00F9", "\u00FB", "7", "\u00FC", "\u00FA", "\u016B")
- // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
- // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
- // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
- // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
- // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
- // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
- .setMoreKeysOf("i", "\u00EE", "8", "\u00EF", "\u00EC", "\u00ED", "\u012F",
- "\u012B")
- // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
- // U+0153: "œ" LATIN SMALL LIGATURE OE
- // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
- // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
- // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
- // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
- // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
- // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
- // U+00BA: "º" MASCULINE ORDINAL INDICATOR
- .setMoreKeysOf("o",
- "\u00F4", "\u0153", "9", "\u00F6", "\u00F2", "\u00F3", "\u00F5",
- "\u00F8", "\u014D", "\u00BA")
- // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
- // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
- // U+010D: "č" LATIN SMALL LETTER C WITH CARON
- .setMoreKeysOf("c", "\u00E7", "\u0107", "\u010D");
+ public final ExpectedKey[] getOtherCurrencyKeys() {
+ return mEuroCustomizer.getOtherCurrencyKeys();
}
}
} \ No newline at end of file
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchCA.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchCA.java
index d6babc841..9b3cd1ee2 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchCA.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchCA.java
@@ -19,9 +19,7 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.Qwerty;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
@@ -31,71 +29,8 @@ import java.util.Locale;
@SmallTest
public final class TestsFrenchCA extends LayoutTestsBase {
private static final Locale LOCALE = new Locale("fr", "CA");
- private static final LayoutBase LAYOUT = new Qwerty(new FrenchCACustomizer(LOCALE));
+ private static final LayoutBase LAYOUT = new Qwerty(new FrenchCustomizer(LOCALE));
@Override
LayoutBase getLayout() { return LAYOUT; }
-
- private static class FrenchCACustomizer extends LayoutCustomizer {
- public FrenchCACustomizer(final Locale locale) { super(locale); }
-
- @Override
- public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
- return builder
- // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
- // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
- // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
- // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
- // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
- // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
- // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
- .setMoreKeysOf("e",
- "\u00E9", "\u00E8", "\u00EA", "\u00EB", "3", "\u0119", "\u0117",
- "\u0113")
- // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
- .setMoreKeysOf("y", "6", "\u00FF")
- // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
- // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
- // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
- // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
- // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "\u00F9", "\u00FB", "7", "\u00FC", "\u00FA", "\u016B")
- // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
- // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
- // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
- // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
- // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
- // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
- .setMoreKeysOf("i", "\u00EE", "8", "\u00EF", "\u00EC", "\u00ED", "\u012F",
- "\u012B")
- // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
- // U+0153: "œ" LATIN SMALL LIGATURE OE
- // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
- // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
- // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
- // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
- // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
- // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
- // U+00BA: "º" MASCULINE ORDINAL INDICATOR
- .setMoreKeysOf("o",
- "\u00F4", "\u0153", "9", "\u00F6", "\u00F2", "\u00F3", "\u00F5",
- "\u00F8", "\u014D", "\u00BA")
- // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
- // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
- // U+00E6: "æ" LATIN SMALL LETTER AE
- // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
- // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
- // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
- // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
- // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
- // U+00AA: "ª" FEMININE ORDINAL INDICATOR
- .setMoreKeysOf("a",
- "\u00E0", "\u00E2", "\u00E6", "\u00E1", "\u00E4", "\u00E3", "\u00E5",
- "\u0101", "\u00AA")
- // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
- // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
- // U+010D: "č" LATIN SMALL LETTER C WITH CARON
- .setMoreKeysOf("c", "\u00E7", "\u0107", "\u010D");
- }
- }
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchCH.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchCH.java
index 5a56ad1d4..2598aa3bf 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchCH.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchCH.java
@@ -19,7 +19,6 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.Swiss;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
@@ -36,75 +35,22 @@ public final class TestsFrenchCH extends LayoutTestsBase {
@Override
LayoutBase getLayout() { return LAYOUT; }
- private static class FrenchCHCustomizer extends LayoutCustomizer {
+ private static class FrenchCHCustomizer extends FrenchCustomizer {
public FrenchCHCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+ super.setAccentedLetters(builder);
return builder
- // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
- // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
- // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
- // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
- // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
- // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
- // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
- .setMoreKeysOf("e",
- "\u00E9", "\u00E8", "\u00EA", "\u00EB", "3", "\u0119", "\u0117",
- "\u0113")
- // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
- // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
- // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
- // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
- // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "\u00F9", "\u00FB", "7", "\u00FC", "\u00FA", "\u016B")
- // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
- // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
- // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
- // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
- // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
- // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
- .setMoreKeysOf("i", "\u00EE", "8", "\u00EF", "\u00EC", "\u00ED", "\u012F",
- "\u012B")
- // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
- // U+0153: "œ" LATIN SMALL LIGATURE OE
- // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
- // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
- // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
- // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
- // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
- // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
- // U+00BA: "º" MASCULINE ORDINAL INDICATOR
- .setMoreKeysOf("o",
- "\u00F4", "\u0153", "9", "\u00F6", "\u00F2", "\u00F3", "\u00F5",
- "\u00F8", "\u014D", "\u00BA")
// U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
.replaceKeyOfLabel(Swiss.ROW1_11, key("\u00E8", moreKey("\u00FC")))
- // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
- // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
- // U+00E6: "æ" LATIN SMALL LETTER AE
- // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
- // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
- // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
- // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
- // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
- // U+00AA: "ª" FEMININE ORDINAL INDICATOR
- .setMoreKeysOf("a",
- "\u00E0", "\u00E2", "\u00E6", "\u00E1", "\u00E4", "\u00E3", "\u00E5",
- "\u0101", "\u00AA")
// U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
.replaceKeyOfLabel(Swiss.ROW2_10, key("\u00E9", moreKey("\u00F6")))
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
- .replaceKeyOfLabel(Swiss.ROW2_11, key("\u00E0", moreKey("\u00E4")))
- // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
- .setMoreKeysOf("y", "\u00FF")
- // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
- // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
- // U+010D: "č" LATIN SMALL LETTER C WITH CARON
- .setMoreKeysOf("c", "\u00E7", "\u0107", "\u010D");
+ .replaceKeyOfLabel(Swiss.ROW2_11, key("\u00E0", moreKey("\u00E4")));
}
}
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchDvorak.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchDvorak.java
new file mode 100644
index 000000000..33d1445a4
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchDvorak.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.Dvorak;
+import com.android.inputmethod.keyboard.layout.Dvorak.DvorakCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.keyboard.layout.tests.TestsFrench.FrenchEuroCustomizer;
+
+import java.util.Locale;
+
+/**
+ * fr: French/dvorak
+ */
+@SmallTest
+public final class TestsFrenchDvorak extends LayoutTestsBase {
+ private static final Locale LOCALE = new Locale("fr");
+ private static final LayoutBase LAYOUT = new Dvorak(new FrenchDvorakCustomizer(LOCALE));
+
+ @Override
+ LayoutBase getLayout() { return LAYOUT; }
+
+ private static class FrenchDvorakCustomizer extends DvorakCustomizer {
+ private final FrenchEuroCustomizer mFrenchEuroCustomizer;
+
+ public FrenchDvorakCustomizer(final Locale locale) {
+ super(locale);
+ mFrenchEuroCustomizer = new FrenchEuroCustomizer(locale);
+ }
+
+ @Override
+ public ExpectedKey getCurrencyKey() { return mFrenchEuroCustomizer.getCurrencyKey(); }
+
+ @Override
+ public ExpectedKey[] getOtherCurrencyKeys() {
+ return mFrenchEuroCustomizer.getOtherCurrencyKeys();
+ }
+
+ @Override
+ public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+ return mFrenchEuroCustomizer.setAccentedLetters(builder);
+ }
+ }
+} \ No newline at end of file
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchQwertz.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchQwertz.java
index 0582b0cf0..6ab28704a 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchQwertz.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchQwertz.java
@@ -19,9 +19,8 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroLayoutCustomizer;
import com.android.inputmethod.keyboard.layout.Qwertz;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.keyboard.layout.tests.TestsFrench.FrenchEuroCustomizer;
import java.util.Locale;
@@ -31,71 +30,8 @@ import java.util.Locale;
@SmallTest
public final class TestsFrenchQwertz extends LayoutTestsBase {
private static final Locale LOCALE = new Locale("fr");
- private static final LayoutBase LAYOUT = new Qwertz(new FrenchQwertzCustomizer(LOCALE));
+ private static final LayoutBase LAYOUT = new Qwertz(new FrenchEuroCustomizer(LOCALE));
@Override
LayoutBase getLayout() { return LAYOUT; }
-
- private static class FrenchQwertzCustomizer extends EuroLayoutCustomizer {
- public FrenchQwertzCustomizer(final Locale locale) { super(locale); }
-
- @Override
- public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
- return builder
- // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
- // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
- // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
- // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
- // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
- // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
- // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
- .setMoreKeysOf("e",
- "\u00E9", "\u00E8", "\u00EA", "\u00EB", "3", "\u0119", "\u0117",
- "\u0113")
- // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
- // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
- // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
- // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
- // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "\u00F9", "\u00FB", "7", "\u00FC", "\u00FA", "\u016B")
- // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
- // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
- // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
- // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
- // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
- // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
- .setMoreKeysOf("i", "\u00EE", "8", "\u00EF", "\u00EC", "\u00ED", "\u012F",
- "\u012B")
- // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
- // U+0153: "œ" LATIN SMALL LIGATURE OE
- // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
- // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
- // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
- // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
- // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
- // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
- // U+00BA: "º" MASCULINE ORDINAL INDICATOR
- .setMoreKeysOf("o",
- "\u00F4", "\u0153", "9", "\u00F6", "\u00F2", "\u00F3", "\u00F5",
- "\u00F8", "\u014D", "\u00BA")
- // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
- // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
- // U+00E6: "æ" LATIN SMALL LETTER AE
- // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
- // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
- // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
- // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
- // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
- // U+00AA: "ª" FEMININE ORDINAL INDICATOR
- .setMoreKeysOf("a",
- "\u00E0", "\u00E2", "\u00E6", "\u00E1", "\u00E4", "\u00E3", "\u00E5",
- "\u0101", "\u00AA")
- // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
- .setMoreKeysOf("y", "\u00FF")
- // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
- // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
- // U+010D: "č" LATIN SMALL LETTER C WITH CARON
- .setMoreKeysOf("c", "\u00E7", "\u0107", "\u010D");
- }
- }
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGalicianES.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGalicianES.java
new file mode 100644
index 000000000..1472828a4
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGalicianES.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
+import com.android.inputmethod.keyboard.layout.Spanish;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+/**
+ * gl_ES: Galician (Spain)/spanish
+ */
+@SmallTest
+public class TestsGalicianES extends LayoutTestsBase {
+ private static final Locale LOCALE = new Locale("gl", "ES");
+ private static final LayoutBase LAYOUT = new Spanish(new GalicianESCustomizer(LOCALE));
+
+ @Override
+ LayoutBase getLayout() { return LAYOUT; }
+
+ private static class GalicianESCustomizer extends EuroCustomizer {
+ private final SpanishCustomizer mSpanishCustomizer;
+
+ public GalicianESCustomizer(final Locale locale) {
+ super(locale);
+ mSpanishCustomizer = new SpanishCustomizer(locale);
+ }
+
+ @Override
+ public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+ return mSpanishCustomizer.setAccentedLetters(builder);
+ }
+ }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGerman.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGerman.java
index 7c12b37de..6f7571197 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGerman.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGerman.java
@@ -19,11 +19,9 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroLayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.Qwertz;
-import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
@@ -33,70 +31,25 @@ import java.util.Locale;
@SmallTest
public final class TestsGerman extends LayoutTestsBase {
private static final Locale LOCALE = new Locale("de");
- private static final LayoutBase LAYOUT = new Qwertz(new GermanCustomizer(LOCALE));
+ private static final LayoutBase LAYOUT = new Qwertz(new GermanEuroCustomizer(LOCALE));
@Override
LayoutBase getLayout() { return LAYOUT; }
- private static class GermanCustomizer extends EuroLayoutCustomizer {
- public GermanCustomizer(final Locale locale) { super(locale); }
+ static class GermanEuroCustomizer extends GermanCustomizer {
+ final EuroCustomizer mEuroCustomizer;
- @Override
- public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
-
- @Override
- public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_R9L; }
-
- @Override
- public ExpectedKey[] getDoubleAngleQuoteKeys() { return Symbols.DOUBLE_ANGLE_QUOTES_RL; }
+ public GermanEuroCustomizer(final Locale locale) {
+ super(locale);
+ mEuroCustomizer = new EuroCustomizer(locale);
+ }
@Override
- public ExpectedKey[] getSingleAngleQuoteKeys() { return Symbols.SINGLE_ANGLE_QUOTES_RL; }
+ public ExpectedKey getCurrencyKey() { return mEuroCustomizer.getCurrencyKey(); }
@Override
- public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
- return builder
- // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
- // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
- // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
- // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
- // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
- .setMoreKeysOf("e", "3", "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0117")
- // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
- // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
- // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
- // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
- // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "7", "\u00FC", "\u00FB", "\u00F9", "\u00FA", "\u016B")
- // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
- // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
- // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
- // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
- // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
- // U+0153: "œ" LATIN SMALL LIGATURE OE
- // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
- // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
- .setMoreKeysOf("o",
- "9", "\u00F6", "\u00F4", "\u00F2", "\u00F3", "\u00F5", "\u0153",
- "\u00F8", "\u014D")
- // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
- // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
- // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
- // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
- // U+00E6: "æ" LATIN SMALL LETTER AE
- // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
- // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
- // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
- .setMoreKeysOf("a",
- "\u00E4", "\u00E2", "\u00E0", "\u00E1", "\u00E6", "\u00E3", "\u00E5",
- "\u0101")
- // U+00DF: "ß" LATIN SMALL LETTER SHARP S
- // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
- // U+0161: "š" LATIN SMALL LETTER S WITH CARON
- .setMoreKeysOf("s", "\u00DF", "\u015B", "\u0161")
- // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
- // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
- .setMoreKeysOf("n", "\u00F1", "\u0144");
+ public ExpectedKey[] getOtherCurrencyKeys() {
+ return mEuroCustomizer.getOtherCurrencyKeys();
}
}
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanCH.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanCH.java
index 001c3c40a..7deb00bb4 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanCH.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanCH.java
@@ -19,10 +19,7 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.Swiss;
-import com.android.inputmethod.keyboard.layout.Symbols;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
@@ -38,74 +35,22 @@ public final class TestsGermanCH extends LayoutTestsBase {
@Override
LayoutBase getLayout() { return LAYOUT; }
- private static class GermanCHCustomizer extends LayoutCustomizer {
+ private static class GermanCHCustomizer extends GermanCustomizer {
public GermanCHCustomizer(final Locale locale) { super(locale); }
@Override
- public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
-
- @Override
- public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_R9L; }
-
- @Override
- public ExpectedKey[] getDoubleAngleQuoteKeys() { return Symbols.DOUBLE_ANGLE_QUOTES_RL; }
-
- @Override
- public ExpectedKey[] getSingleAngleQuoteKeys() { return Symbols.SINGLE_ANGLE_QUOTES_RL; }
-
- @Override
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+ super.setAccentedLetters(builder);
return builder
- // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
- // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
- // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
- // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
- // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
- .setMoreKeysOf("e", "3", "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0117")
- // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
- // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
- // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
- // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
- // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "7", "\u00FC", "\u00FB", "\u00F9", "\u00FA", "\u016B")
- // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
- // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
- // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
- // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
- // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
- // U+0153: "œ" LATIN SMALL LIGATURE OE
- // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
- // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
- .setMoreKeysOf("o",
- "9", "\u00F6", "\u00F4", "\u00F2", "\u00F3", "\u00F5", "\u0153",
- "\u00F8", "\u014D")
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
// U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
.replaceKeyOfLabel(Swiss.ROW1_11, key("\u00FC", moreKey("\u00E8")))
- // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
- // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
- // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
- // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
- // U+00E6: "æ" LATIN SMALL LETTER AE
- // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
- // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
- // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
- .setMoreKeysOf("a",
- "\u00E4", "\u00E2", "\u00E0", "\u00E1", "\u00E6", "\u00E3", "\u00E5",
- "\u0101")
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
.replaceKeyOfLabel(Swiss.ROW2_10, key("\u00F6", moreKey("\u00E9")))
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
- .replaceKeyOfLabel(Swiss.ROW2_11, key("\u00E4", moreKey("\u00E0")))
- // U+00DF: "ß" LATIN SMALL LETTER SHARP S
- // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
- // U+0161: "š" LATIN SMALL LETTER S WITH CARON
- .setMoreKeysOf("s", "\u00DF", "\u015B", "\u0161")
- // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
- // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
- .setMoreKeysOf("n", "\u00F1", "\u0144");
+ .replaceKeyOfLabel(Swiss.ROW2_11, key("\u00E4", moreKey("\u00E0")));
}
}
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanDvorak.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanDvorak.java
new file mode 100644
index 000000000..b28d5cfcf
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanDvorak.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.Dvorak;
+import com.android.inputmethod.keyboard.layout.Dvorak.DvorakCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.SymbolsShifted;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+/**
+ * de: German/dvorak
+ */
+@SmallTest
+public final class TestsGermanDvorak extends LayoutTestsBase {
+ private static final Locale LOCALE = new Locale("de");
+ private static final LayoutBase LAYOUT = new Dvorak(new GermanDvorakCustomizer(LOCALE));
+
+ @Override
+ LayoutBase getLayout() { return LAYOUT; }
+
+ static class GermanDvorakCustomizer extends DvorakCustomizer {
+ final GermanCustomizer mGermanCustomizer;
+
+ public GermanDvorakCustomizer(final Locale locale) {
+ super(locale);
+ mGermanCustomizer = new GermanCustomizer(locale);
+ }
+
+ @Override
+ public ExpectedKey getCurrencyKey() { return Symbols.CURRENCY_EURO; }
+
+ @Override
+ public ExpectedKey[] getOtherCurrencyKeys() {
+ return SymbolsShifted.CURRENCIES_OTHER_THAN_EURO;
+ }
+
+ @Override
+ public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
+
+ @Override
+ public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_R9L; }
+
+ @Override
+ public ExpectedKey[] getDoubleAngleQuoteKeys() { return Symbols.DOUBLE_ANGLE_QUOTES_RL; }
+
+ @Override
+ public ExpectedKey[] getSingleAngleQuoteKeys() { return Symbols.SINGLE_ANGLE_QUOTES_RL; }
+
+ @Override
+ public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+ return mGermanCustomizer.setAccentedLetters(builder);
+ }
+ }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanQwerty.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanQwerty.java
index 618485dba..19ae5a3f5 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanQwerty.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanQwerty.java
@@ -19,11 +19,8 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroLayoutCustomizer;
import com.android.inputmethod.keyboard.layout.Qwerty;
-import com.android.inputmethod.keyboard.layout.Symbols;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.keyboard.layout.tests.TestsGerman.GermanEuroCustomizer;
import java.util.Locale;
@@ -33,70 +30,8 @@ import java.util.Locale;
@SmallTest
public final class TestsGermanQwerty extends LayoutTestsBase {
private static final Locale LOCALE = new Locale("de");
- private static final LayoutBase LAYOUT = new Qwerty(new GermanQwertyCustomizer(LOCALE));
+ private static final LayoutBase LAYOUT = new Qwerty(new GermanEuroCustomizer(LOCALE));
@Override
LayoutBase getLayout() { return LAYOUT; }
-
- private static class GermanQwertyCustomizer extends EuroLayoutCustomizer {
- public GermanQwertyCustomizer(final Locale locale) { super(locale); }
-
- @Override
- public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
-
- @Override
- public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_R9L; }
-
- @Override
- public ExpectedKey[] getDoubleAngleQuoteKeys() { return Symbols.DOUBLE_ANGLE_QUOTES_RL; }
-
- @Override
- public ExpectedKey[] getSingleAngleQuoteKeys() { return Symbols.SINGLE_ANGLE_QUOTES_RL; }
-
- @Override
- public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
- return builder
- // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
- // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
- // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
- // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
- // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
- .setMoreKeysOf("e", "3", "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0117")
- // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
- // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
- // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
- // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
- // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "7", "\u00FC", "\u00FB", "\u00F9", "\u00FA", "\u016B")
- // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
- // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
- // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
- // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
- // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
- // U+0153: "œ" LATIN SMALL LIGATURE OE
- // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
- // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
- .setMoreKeysOf("o",
- "9", "\u00F6", "\u00F4", "\u00F2", "\u00F3", "\u00F5", "\u0153",
- "\u00F8", "\u014D")
- // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
- // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
- // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
- // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
- // U+00E6: "æ" LATIN SMALL LETTER AE
- // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
- // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
- // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
- .setMoreKeysOf("a",
- "\u00E4", "\u00E2", "\u00E0", "\u00E1", "\u00E6", "\u00E3", "\u00E5",
- "\u0101")
- // U+00DF: "ß" LATIN SMALL LETTER SHARP S
- // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
- // U+0161: "š" LATIN SMALL LETTER S WITH CARON
- .setMoreKeysOf("s", "\u00DF", "\u015B", "\u0161")
- // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
- // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
- .setMoreKeysOf("n", "\u00F1", "\u0144");
- }
- }
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHungarian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHungarian.java
index 942c07a2a..efc95dcf9 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHungarian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHungarian.java
@@ -64,24 +64,21 @@ public final class TestsHungarian extends LayoutTestsBase {
// U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
// U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
.setMoreKeysOf("e",
- "3", "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0119", "\u0117",
- "\u0113")
+ "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0119", "\u0117", "\u0113")
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
// U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "7", "\u00FA", "\u00FC", "\u0171", "\u00FB", "\u00F9",
- "\u016B")
+ .setMoreKeysOf("u", "\u00FA", "\u00FC", "\u0171", "\u00FB", "\u00F9", "\u016B")
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
- .setMoreKeysOf("i", "8", "\u00ED", "\u00EE", "\u00EF", "\u00EC", "\u012F",
- "\u012B")
+ .setMoreKeysOf("i", "\u00ED", "\u00EE", "\u00EF", "\u00EC", "\u012F", "\u012B")
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
@@ -92,8 +89,8 @@ public final class TestsHungarian extends LayoutTestsBase {
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o",
- "9", "\u00F3", "\u00F6", "\u0151", "\u00F4", "\u00F2", "\u00F5",
- "\u0153", "\u00F8", "\u014D")
+ "\u00F3", "\u00F6", "\u0151", "\u00F4", "\u00F2", "\u00F5", "\u0153",
+ "\u00F8", "\u014D")
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsIcelandic.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsIcelandic.java
index c10c1a905..62b111e6a 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsIcelandic.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsIcelandic.java
@@ -58,27 +58,25 @@ public final class TestsIcelandic extends LayoutTestsBase {
// U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
// U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
.setMoreKeysOf("e",
- "3", "\u00E9", "\u00EB", "\u00E8", "\u00EA", "\u0119", "\u0117",
- "\u0113")
+ "\u00E9", "\u00EB", "\u00E8", "\u00EA", "\u0119", "\u0117", "\u0113")
// U+00FE: "þ" LATIN SMALL LETTER THORN
- .setMoreKeysOf("t", "5", "\u00FE")
+ .setMoreKeysOf("t", "\u00FE")
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
- .setMoreKeysOf("y", "6", "\u00FD", "\u00FF")
+ .setMoreKeysOf("y", "\u00FD", "\u00FF")
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "7", "\u00FA", "\u00FC", "\u00FB", "\u00F9", "\u016B")
+ .setMoreKeysOf("u", "\u00FA", "\u00FC", "\u00FB", "\u00F9", "\u016B")
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
- .setMoreKeysOf("i", "8", "\u00ED", "\u00EF", "\u00EE", "\u00EC", "\u012F",
- "\u012B")
+ .setMoreKeysOf("i", "\u00ED", "\u00EF", "\u00EE", "\u00EC", "\u012F", "\u012B")
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
@@ -88,8 +86,8 @@ public final class TestsIcelandic extends LayoutTestsBase {
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o",
- "9", "\u00F3", "\u00F6", "\u00F4", "\u00F2", "\u00F5", "\u0153",
- "\u00F8", "\u014D")
+ "\u00F3", "\u00F6", "\u00F4", "\u00F2", "\u00F5", "\u0153", "\u00F8",
+ "\u014D")
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+00E6: "æ" LATIN SMALL LETTER AE
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsItalian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsItalian.java
index 1ba54b1e3..4a2200364 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsItalian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsItalian.java
@@ -19,7 +19,7 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroLayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.Qwerty;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
@@ -36,7 +36,7 @@ public final class TestsItalian extends LayoutTestsBase {
@Override
LayoutBase getLayout() { return LAYOUT; }
- private static class ItalianCustomizer extends EuroLayoutCustomizer {
+ private static class ItalianCustomizer extends EuroCustomizer {
public ItalianCustomizer(final Locale locale) { super(locale); }
@Override
@@ -50,22 +50,20 @@ public final class TestsItalian extends LayoutTestsBase {
// U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
// U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
.setMoreKeysOf("e",
- "3", "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u0119", "\u0117",
- "\u0113")
+ "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u0119", "\u0117", "\u0113")
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "7", "\u00F9", "\u00FA", "\u00FB", "\u00FC", "\u016B")
+ .setMoreKeysOf("u", "\u00F9", "\u00FA", "\u00FB", "\u00FC", "\u016B")
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
- .setMoreKeysOf("i", "8", "\u00EC", "\u00ED", "\u00EE", "\u00EF", "\u012F",
- "\u012B")
+ .setMoreKeysOf("i", "\u00EC", "\u00ED", "\u00EE", "\u00EF", "\u012F", "\u012B")
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
@@ -76,8 +74,8 @@ public final class TestsItalian extends LayoutTestsBase {
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
// U+00BA: "º" MASCULINE ORDINAL INDICATOR
.setMoreKeysOf("o",
- "9", "\u00F2", "\u00F3", "\u00F4", "\u00F6", "\u00F5", "\u0153",
- "\u00F8", "\u014D", "\u00BA")
+ "\u00F2", "\u00F3", "\u00F4", "\u00F6", "\u00F5", "\u0153", "\u00F8",
+ "\u014D", "\u00BA")
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKazakh.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKazakh.java
index ec08a5a04..d255a0fa9 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKazakh.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKazakh.java
@@ -45,21 +45,21 @@ public final class TestsKazakh extends LayoutTestsBase {
// U+0443: "у" CYRILLIC SMALL LETTER U
// U+04AF: "ү" CYRILLIC SMALL LETTER STRAIGHT U
// U+04B1: "ұ" CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
- .setMoreKeysOf("\u0443", "3", "\u04AF", "\u04B1")
+ .setMoreKeysOf("\u0443", "\u04AF", "\u04B1")
// U+043A: "к" CYRILLIC SMALL LETTER KA
// U+049B: "қ" CYRILLIC SMALL LETTER KA WITH DESCENDER
- .setMoreKeysOf("\u043A", "4", "\u049B")
+ .setMoreKeysOf("\u043A", "\u049B")
// U+0435: "е" CYRILLIC SMALL LETTER IE
// U+0451: "ё" CYRILLIC SMALL LETTER IO
- .setMoreKeysOf("\u0435", "5", "\u0451")
+ .setMoreKeysOf("\u0435", "\u0451")
// U+043D: "н" CYRILLIC SMALL LETTER EN
// U+04A3: "ң" CYRILLIC SMALL LETTER EN WITH DESCENDER
- .setMoreKeysOf("\u043D", "6", "\u04A3")
+ .setMoreKeysOf("\u043D", "\u04A3")
// U+0433: "г" CYRILLIC SMALL LETTER GHE
// U+0493: "ғ" CYRILLIC SMALL LETTER GHE WITH STROKE
- .setMoreKeysOf("\u0433", "7", "\u0493")
+ .setMoreKeysOf("\u0433", "\u0493")
// U+0449: "щ" CYRILLIC SMALL LETTER SHCHA
- .replaceKeyOfLabel(EastSlavic.ROW1_9, key("\u0449", moreKey("9")))
+ .replaceKeyOfLabel(EastSlavic.ROW1_9, key("\u0449", additionalMoreKey("9")))
// U+044B: "ы" CYRILLIC SMALL LETTER YERU
// U+0456: "і" CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
.replaceKeyOfLabel(EastSlavic.ROW2_2, key("\u044B", moreKey("\u0456")))
@@ -73,7 +73,7 @@ public final class TestsKazakh extends LayoutTestsBase {
// U+04BB: "һ" CYRILLIC SMALL LETTER SHHA
.replaceKeyOfLabel(EastSlavic.ROW2_11, key("\u044D", moreKey("\u04BB")))
// U+0438: "и" CYRILLIC SMALL LETTER I
- .replaceKeyOfLabel(EastSlavic.ROW3_5, key("\u0438"))
+ .replaceKeyOfLabel(EastSlavic.ROW3_5, "\u0438")
// U+044C: "ь" CYRILLIC SMALL LETTER SOFT SIGN
// U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN
.setMoreKeysOf("\u044C", "\u044A");
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKyrgyz.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKyrgyz.java
index ccacf3f06..9797b4ba9 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKyrgyz.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKyrgyz.java
@@ -44,24 +44,24 @@ public final class TestsKyrgyz extends LayoutTestsBase {
return builder
// U+0443: "у" CYRILLIC SMALL LETTER U
// U+04AF: "ү" CYRILLIC SMALL LETTER STRAIGHT U
- .setMoreKeysOf("\u0443", "3", "\u04AF")
+ .setMoreKeysOf("\u0443", "\u04AF")
// U+0435: "е" CYRILLIC SMALL LETTER IE
// U+0451: "ё" CYRILLIC SMALL LETTER IO
- .setMoreKeysOf("\u0435", "5", "\u0451")
+ .setMoreKeysOf("\u0435", "\u0451")
// U+043D: "н" CYRILLIC SMALL LETTER EN
// U+04A3: "ң" CYRILLIC SMALL LETTER EN WITH DESCENDER
- .setMoreKeysOf("\u043D", "6", "\u04A3")
+ .setMoreKeysOf("\u043D", "\u04A3")
// U+0449: "щ" CYRILLIC SMALL LETTER SHCHA
- .replaceKeyOfLabel(EastSlavic.ROW1_9, key("\u0449", moreKey("9")))
+ .replaceKeyOfLabel(EastSlavic.ROW1_9, key("\u0449", additionalMoreKey("9")))
// U+044B: "ы" CYRILLIC SMALL LETTER YERU
- .replaceKeyOfLabel(EastSlavic.ROW2_2, key("\u044B"))
+ .replaceKeyOfLabel(EastSlavic.ROW2_2, "\u044B")
// U+043E: "о" CYRILLIC SMALL LETTER O
// U+04E9: "ө" CYRILLIC SMALL LETTER BARRED O
.setMoreKeysOf("\u043E", "\u04E9")
// U+044D: "э" CYRILLIC SMALL LETTER E
- .replaceKeyOfLabel(EastSlavic.ROW2_11, key("\u044D"))
+ .replaceKeyOfLabel(EastSlavic.ROW2_11, "\u044D")
// U+0438: "и" CYRILLIC SMALL LETTER I
- .replaceKeyOfLabel(EastSlavic.ROW3_5, key("\u0438"))
+ .replaceKeyOfLabel(EastSlavic.ROW3_5, "\u0438")
// U+044C: "ь" CYRILLIC SMALL LETTER SOFT SIGN
// U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN
.setMoreKeysOf("\u044C", "\u044A");
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLatvian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLatvian.java
index 0f0785440..dc1736c6d 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLatvian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLatvian.java
@@ -59,18 +59,18 @@ public final class TestsLatvian extends LayoutTestsBase {
// U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
// U+011B: "ě" LATIN SMALL LETTER E WITH CARON
.setMoreKeysOf("e",
- "3", "\u0113", "\u0117", "\u00E8", "\u00E9", "\u00EA", "\u00EB",
- "\u0119", "\u011B")
+ "\u0113", "\u0117", "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u0119",
+ "\u011B")
// U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
// U+0159: "ř" LATIN SMALL LETTER R WITH CARON
// U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
- .setMoreKeysOf("r", "4", "\u0157", "\u0159", "\u0155")
+ .setMoreKeysOf("r", "\u0157", "\u0159", "\u0155")
// U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
- .setMoreKeysOf("t", "5", "\u0163", "\u0165")
+ .setMoreKeysOf("t", "\u0163", "\u0165")
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
- .setMoreKeysOf("y", "6", "\u00FD", "\u00FF")
+ .setMoreKeysOf("y", "\u00FD", "\u00FF")
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
// U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
@@ -80,8 +80,8 @@ public final class TestsLatvian extends LayoutTestsBase {
// U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
// U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
.setMoreKeysOf("u",
- "7", "\u016B", "\u0173", "\u00F9", "\u00FA", "\u00FB", "\u00FC",
- "\u016F", "\u0171")
+ "\u016B", "\u0173", "\u00F9", "\u00FA", "\u00FB", "\u00FC", "\u016F",
+ "\u0171")
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -90,8 +90,7 @@ public final class TestsLatvian extends LayoutTestsBase {
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+0131: "ı" LATIN SMALL LETTER DOTLESS I
.setMoreKeysOf("i",
- "8", "\u012B", "\u012F", "\u00EC", "\u00ED", "\u00EE", "\u00EF",
- "\u0131")
+ "\u012B", "\u012F", "\u00EC", "\u00ED", "\u00EE", "\u00EF", "\u0131")
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
@@ -101,8 +100,8 @@ public final class TestsLatvian extends LayoutTestsBase {
// U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
.setMoreKeysOf("o",
- "9", "\u00F2", "\u00F3", "\u00F4", "\u00F5", "\u00F6", "\u0153",
- "\u0151", "\u00F8")
+ "\u00F2", "\u00F3", "\u00F4", "\u00F5", "\u00F6", "\u0153", "\u0151",
+ "\u00F8")
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLithuanian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLithuanian.java
index 9094db91a..55ac37a37 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLithuanian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLithuanian.java
@@ -59,18 +59,18 @@ public final class TestsLithuanian extends LayoutTestsBase {
// U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
// U+011B: "ě" LATIN SMALL LETTER E WITH CARON
.setMoreKeysOf("e",
- "3", "\u0117", "\u0119", "\u0113", "\u00E8", "\u00E9", "\u00EA",
- "\u00EB", "\u011B")
+ "\u0117", "\u0119", "\u0113", "\u00E8", "\u00E9", "\u00EA", "\u00EB",
+ "\u011B")
// U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
// U+0159: "ř" LATIN SMALL LETTER R WITH CARON
// U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
- .setMoreKeysOf("r", "4", "\u0157", "\u0159", "\u0155")
+ .setMoreKeysOf("r", "\u0157", "\u0159", "\u0155")
// U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
- .setMoreKeysOf("t", "5", "\u0163", "\u0165")
+ .setMoreKeysOf("t", "\u0163", "\u0165")
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
- .setMoreKeysOf("y", "6", "\u00FD", "\u00FF")
+ .setMoreKeysOf("y", "\u00FD", "\u00FF")
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
// U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
@@ -81,8 +81,8 @@ public final class TestsLithuanian extends LayoutTestsBase {
// U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
// U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
.setMoreKeysOf("u",
- "7", "\u016B", "\u0173", "\u00FC", "\u016B", "\u00F9", "\u00FA",
- "\u00FB", "\u016F", "\u0171")
+ "\u016B", "\u0173", "\u00FC", "\u016B", "\u00F9", "\u00FA", "\u00FB",
+ "\u016F", "\u0171")
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -91,8 +91,7 @@ public final class TestsLithuanian extends LayoutTestsBase {
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+0131: "ı" LATIN SMALL LETTER DOTLESS I
.setMoreKeysOf("i",
- "8", "\u012F", "\u012B", "\u00EC", "\u00ED", "\u00EE", "\u00EF",
- "\u0131")
+ "\u012F", "\u012B", "\u00EC", "\u00ED", "\u00EE", "\u00EF", "\u0131")
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
@@ -102,8 +101,8 @@ public final class TestsLithuanian extends LayoutTestsBase {
// U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
.setMoreKeysOf("o",
- "9", "\u00F6", "\u00F5", "\u00F2", "\u00F3", "\u00F4", "\u0153",
- "\u0151", "\u00F8")
+ "\u00F6", "\u00F5", "\u00F2", "\u00F3", "\u00F4", "\u0153", "\u0151",
+ "\u00F8")
// U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMacedonian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMacedonian.java
index 520269830..1d7d85650 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMacedonian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMacedonian.java
@@ -52,18 +52,18 @@ public final class TestsMacedonian extends LayoutTestsBase {
return builder
// U+0435: "е" CYRILLIC SMALL LETTER IE
// U+0450: "ѐ" CYRILLIC SMALL LETTER IE WITH GRAVE
- .setMoreKeysOf("\u0435", "3", "\u0450")
+ .setMoreKeysOf("\u0435", "\u0450")
// U+0455: "ѕ" CYRILLIC SMALL LETTER DZE
- .replaceKeyOfLabel(SouthSlavic.ROW1_6, key("\u0455", moreKey("6")))
+ .replaceKeyOfLabel(SouthSlavic.ROW1_6, key("\u0455", additionalMoreKey("6")))
// U+0438: "и" CYRILLIC SMALL LETTER I
// U+045D: "ѝ" CYRILLIC SMALL LETTER I WITH GRAVE
- .setMoreKeysOf("\u0438", "8", "\u045D")
+ .setMoreKeysOf("\u0438", "\u045D")
// U+045C: "ќ" CYRILLIC SMALL LETTER KJE
- .replaceKeyOfLabel(SouthSlavic.ROW2_11, key("\u045C"))
+ .replaceKeyOfLabel(SouthSlavic.ROW2_11, "\u045C")
// U+0437: "з" CYRILLIC SMALL LETTER ZE
- .replaceKeyOfLabel(SouthSlavic.ROW3_1, key("\u0437"))
+ .replaceKeyOfLabel(SouthSlavic.ROW3_1, "\u0437")
// U+0453: "ѓ" CYRILLIC SMALL LETTER GJE
- .replaceKeyOfLabel(SouthSlavic.ROW3_8, key("\u0453"));
+ .replaceKeyOfLabel(SouthSlavic.ROW3_8, "\u0453");
}
}
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguage.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguage.java
index 76a3d4df4..3ed63153a 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguage.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguage.java
@@ -19,14 +19,12 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.Qwerty;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
/**
- * zz: QWERTY/qwerty
+ * zz: Alphabet/qwerty
*/
@SmallTest
public final class TestsNoLanguage extends LayoutTestsBase {
@@ -35,141 +33,4 @@ public final class TestsNoLanguage extends LayoutTestsBase {
@Override
LayoutBase getLayout() { return LAYOUT; }
-
- private static class NoLanguageCustomizer extends LayoutCustomizer {
- public NoLanguageCustomizer(final Locale locale) { super(locale); }
-
- @Override
- public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
- return builder
- // U+0175: "ŵ" LATIN SMALL LETTER W WITH CIRCUMFLEX
- .setMoreKeysOf("w", "2", "\u0175")
- // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
- // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
- // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
- // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
- // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
- // U+0115: "ĕ" LATIN SMALL LETTER E WITH BREVE
- // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
- // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
- // U+011B: "ě" LATIN SMALL LETTER E WITH CARON
- .setMoreKeysOf("e",
- "3", "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u0113", "\u0115",
- "\u0117", "\u0119", "\u011B")
- // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
- // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
- // U+0159: "ř" LATIN SMALL LETTER R WITH CARON
- .setMoreKeysOf("r", "4", "\u0155", "\u0157", "\u0159")
- // U+00FE: "þ" LATIN SMALL LETTER THORN
- // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
- // U+0165: "ť" LATIN SMALL LETTER T WITH CARON
- // U+0167: "ŧ" LATIN SMALL LETTER T WITH STROKE
- .setMoreKeysOf("t", "5", "\u00FE", "\u0163", "\u0165", "\u0167")
- // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
- // U+0177: "ŷ" LATIN SMALL LETTER Y WITH CIRCUMFLEX
- // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
- // U+0133: "ij" LATIN SMALL LIGATURE IJ
- .setMoreKeysOf("y", "6", "\u00FD", "\u0177", "\u00FF", "\u0133")
- // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
- // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
- // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
- // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
- // U+0169: "ũ" LATIN SMALL LETTER U WITH TILDE
- // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- // U+016D: "ŭ" LATIN SMALL LETTER U WITH BREVE
- // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
- // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
- // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
- .setMoreKeysOf("u",
- "7", "\u00F9", "\u00FA", "\u00FB", "\u00FC", "\u0169", "\u016B",
- "\u016D", "\u016F", "\u0171", "\u0173")
- // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
- // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
- // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
- // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
- // U+0129: "ĩ" LATIN SMALL LETTER I WITH TILDE
- // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
- // U+012D: "ĭ" LATIN SMALL LETTER I WITH BREVE
- // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
- // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
- // U+0133: "ij" LATIN SMALL LIGATURE IJ
- .setMoreKeysOf("i",
- "8", "\u00EC", "\u00ED", "\u00EE", "\u00EF", "\u0129", "\u012B",
- "\u012D", "\u012F", "\u0131", "\u0133")
- // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
- // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
- // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
- // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
- // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
- // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
- // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
- // U+014F: "ŏ" LATIN SMALL LETTER O WITH BREVE
- // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
- // U+0153: "œ" LATIN SMALL LIGATURE OE
- // U+00BA: "º" MASCULINE ORDINAL INDICATOR
- .setMoreKeysOf("o",
- "9", "\u00F2", "\u00F3", "\u00F4", "\u00F5", "\u00F6", "\u00F8",
- "\u014D", "\u014F", "\u0151", "\u0153", "\u00BA")
- // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
- // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
- // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
- // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
- // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
- // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
- // U+00E6: "æ" LATIN SMALL LETTER AE
- // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
- // U+0103: "ă" LATIN SMALL LETTER A WITH BREVE
- // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
- // U+00AA: "ª" FEMININE ORDINAL INDICATOR
- .setMoreKeysOf("a",
- "\u00E0", "\u00E1", "\u00E2", "\u00E3", "\u00E4", "\u00E5", "\u00E6",
- "\u0101", "\u0103", "\u0105", "\u00AA")
- // U+00DF: "ß" LATIN SMALL LETTER SHARP S
- // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
- // U+015D: "ŝ" LATIN SMALL LETTER S WITH CIRCUMFLEX
- // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
- // U+0161: "š" LATIN SMALL LETTER S WITH CARON
- // U+017F: "ſ" LATIN SMALL LETTER LONG S
- .setMoreKeysOf("s", "\u00DF", "\u015B", "\u015D", "\u015F", "\u0161", "\u017F")
- // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
- // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
- // U+00F0: "ð" LATIN SMALL LETTER ETH
- .setMoreKeysOf("d", "\u010F", "\u0111", "\u00F0")
- // U+011D: "ĝ" LATIN SMALL LETTER G WITH CIRCUMFLEX
- // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
- // U+0121: "ġ" LATIN SMALL LETTER G WITH DOT ABOVE
- // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
- .setMoreKeysOf("g", "\u011D", "\u011F", "\u0121", "\u0123")
- // U+0125: "ĥ" LATIN SMALL LETTER H WITH CIRCUMFLEX
- .setMoreKeysOf("h", "\u0125")
- // U+0135: "ĵ" LATIN SMALL LETTER J WITH CIRCUMFLEX
- .setMoreKeysOf("j", "\u0135")
- // U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA
- // U+0138: "ĸ" LATIN SMALL LETTER KRA
- .setMoreKeysOf("k", "\u0137", "\u0138")
- // U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE
- // U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA
- // U+013E: "ľ" LATIN SMALL LETTER L WITH CARON
- // U+0140: "ŀ" LATIN SMALL LETTER L WITH MIDDLE DOT
- // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
- .setMoreKeysOf("l", "\u013A", "\u013C", "\u013E", "\u0140", "\u0142")
- // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
- // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
- // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
- .setMoreKeysOf("z", "\u017A", "\u017C", "\u017E")
- // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
- // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
- // U+0109: "ĉ" LATIN SMALL LETTER C WITH CIRCUMFLEX
- // U+010B: "ċ" LATIN SMALL LETTER C WITH DOT ABOVE
- // U+010D: "č" LATIN SMALL LETTER C WITH CARON
- .setMoreKeysOf("c", "\u00E7", "\u0107", "\u0109", "\u010B", "\u010D")
- // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
- // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
- // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
- // U+0148: "ň" LATIN SMALL LETTER N WITH CARON
- // U+0149: "ʼn" LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
- // U+014B: "ŋ" LATIN SMALL LETTER ENG
- .setMoreKeysOf("n", "\u00F1", "\u0144", "\u0146", "\u0148", "\u0149", "\u014B");
- }
- }
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguageColemak.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguageColemak.java
new file mode 100644
index 000000000..8d627e3b4
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguageColemak.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.Colemak;
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+/**
+ * zz: Alphabet/colemak
+ */
+@SmallTest
+public final class TestsNoLanguageColemak extends LayoutTestsBase {
+ private static final Locale LOCALE = new Locale("zz");
+ private static final LayoutBase LAYOUT = new Colemak(new NoLanguageColemakCustomizer(LOCALE));
+
+ @Override
+ LayoutBase getLayout() { return LAYOUT; }
+
+ private static class NoLanguageColemakCustomizer extends LayoutCustomizer {
+ private final NoLanguageCustomizer mNoLanguageCustomizer;
+
+ public NoLanguageColemakCustomizer(final Locale locale) {
+ super(locale);
+ mNoLanguageCustomizer = new NoLanguageCustomizer(locale);
+ }
+
+ @Override
+ public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+ return mNoLanguageCustomizer.setAccentedLetters(builder);
+ }
+ }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguageDvorak.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguageDvorak.java
new file mode 100644
index 000000000..9bf47ed42
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguageDvorak.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.Dvorak;
+import com.android.inputmethod.keyboard.layout.Dvorak.DvorakCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+/**
+ * zz: Alphabet/dvorak
+ */
+@SmallTest
+public final class TestsNoLanguageDvorak extends LayoutTestsBase {
+ private static final Locale LOCALE = new Locale("zz");
+ private static final LayoutBase LAYOUT = new Dvorak(new NoLanguageDvorakCustomizer(LOCALE));
+
+ @Override
+ LayoutBase getLayout() { return LAYOUT; }
+
+ private static class NoLanguageDvorakCustomizer extends DvorakCustomizer {
+ private final NoLanguageCustomizer mNoLanguageCustomizer;
+
+ public NoLanguageDvorakCustomizer(final Locale locale) {
+ super(locale);
+ mNoLanguageCustomizer = new NoLanguageCustomizer(locale);
+ }
+
+ @Override
+ public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+ return mNoLanguageCustomizer.setAccentedLetters(builder);
+ }
+ }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguagePcQwerty.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguagePcQwerty.java
new file mode 100644
index 000000000..cd8d43ca8
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguagePcQwerty.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.PcQwerty;
+import com.android.inputmethod.keyboard.layout.PcQwerty.PcQwertyCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+/**
+ * zz: Alphabet/pcqwerty
+ */
+@SmallTest
+public final class TestsNoLanguagePcQwerty extends LayoutTestsBase {
+ private static final Locale LOCALE = new Locale("zz");
+ private static final LayoutBase LAYOUT = new PcQwerty(new NoLanguagePcQwertyCustomizer(LOCALE));
+
+ @Override
+ LayoutBase getLayout() { return LAYOUT; }
+
+ private static class NoLanguagePcQwertyCustomizer extends PcQwertyCustomizer {
+ private final NoLanguageCustomizer mNoLanguageCustomizer;
+
+ public NoLanguagePcQwertyCustomizer(final Locale locale) {
+ super(locale);
+ mNoLanguageCustomizer = new NoLanguageCustomizer(locale);
+ }
+
+ @Override
+ public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+ return mNoLanguageCustomizer.setAccentedLetters(builder);
+ }
+ }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNorwegian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNorwegian.java
index d5b904c5f..5d220dfa1 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNorwegian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNorwegian.java
@@ -58,14 +58,13 @@ public final class TestsNorwegian extends LayoutTestsBase {
// U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
// U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
.setMoreKeysOf("e",
- "3", "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0119", "\u0117",
- "\u0113")
+ "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0119", "\u0117", "\u0113")
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "7", "\u00FC", "\u00FB", "\u00F9", "\u00FA", "\u016B")
+ .setMoreKeysOf("u", "\u00FC", "\u00FB", "\u00F9", "\u00FA", "\u016B")
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
@@ -74,10 +73,9 @@ public final class TestsNorwegian extends LayoutTestsBase {
// U+0153: "œ" LATIN SMALL LIGATURE OE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o",
- "9", "\u00F4", "\u00F2", "\u00F3", "\u00F6", "\u00F5", "\u0153",
- "\u014D")
+ "\u00F4", "\u00F2", "\u00F3", "\u00F6", "\u00F5", "\u0153", "\u014D")
// U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
- .replaceKeyOfLabel(Nordic.ROW1_11, key("\u00E5"))
+ .replaceKeyOfLabel(Nordic.ROW1_11, "\u00E5")
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
.replaceKeyOfLabel(Nordic.ROW2_10, key("\u00F8", moreKey("\u00F6")))
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPolish.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPolish.java
index 7d8f62963..04f88c3fc 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPolish.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPolish.java
@@ -58,8 +58,7 @@ public final class TestsPolish extends LayoutTestsBase {
// U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
// U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
.setMoreKeysOf("e",
- "3", "\u0119", "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u0117",
- "\u0113")
+ "\u0119", "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u0117", "\u0113")
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
@@ -69,8 +68,8 @@ public final class TestsPolish extends LayoutTestsBase {
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o",
- "9", "\u00F3", "\u00F6", "\u00F4", "\u00F2", "\u00F5", "\u0153",
- "\u00F8", "\u014D")
+ "\u00F3", "\u00F6", "\u00F4", "\u00F2", "\u00F5", "\u0153", "\u00F8",
+ "\u014D")
// U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPortugueseBR.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPortugueseBR.java
index 00ee6981f..8a984a765 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPortugueseBR.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPortugueseBR.java
@@ -19,9 +19,7 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.Qwerty;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
@@ -31,69 +29,8 @@ import java.util.Locale;
@SmallTest
public class TestsPortugueseBR extends LayoutTestsBase {
private static final Locale LOCALE = new Locale("pt", "BR");
- private static final LayoutBase LAYOUT = new Qwerty(new PortugueseBRCustomizer(LOCALE));
+ private static final LayoutBase LAYOUT = new Qwerty(new PortugueseCustomizer(LOCALE));
@Override
LayoutBase getLayout() { return LAYOUT; }
-
- // TODO: Make this as generic Portuguese customizer.
- static class PortugueseBRCustomizer extends LayoutCustomizer {
- public PortugueseBRCustomizer(final Locale locale) { super(locale); }
-
- @Override
- public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
- return builder
- // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
- // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
- // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
- // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
- // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
- // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
- // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
- .setMoreKeysOf("e",
- "3", "\u00E9", "\u00EA", "\u00E8", "\u0119", "\u0117", "\u0113",
- "\u00EB")
- // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
- // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
- // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
- // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
- // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "7", "\u00FA", "\u00FC", "\u00F9", "\u00FB", "\u016B")
- // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
- // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
- // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
- // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
- // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
- // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
- .setMoreKeysOf("i", "8", "\u00ED", "\u00EE", "\u00EC", "\u00EF", "\u012F",
- "\u012B")
- // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
- // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
- // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
- // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
- // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
- // U+0153: "œ" LATIN SMALL LIGATURE OE
- // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
- // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
- // U+00BA: "º" MASCULINE ORDINAL INDICATOR
- .setMoreKeysOf("o",
- "9", "\u00F3", "\u00F5", "\u00F4", "\u00F2", "\u00F6", "\u0153",
- "\u00F8", "\u014D", "\u00BA")
- // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
- // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
- // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
- // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
- // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
- // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
- // U+00E6: "æ" LATIN SMALL LETTER AE
- // U+00AA: "ª" FEMININE ORDINAL INDICATOR
- .setMoreKeysOf("a",
- "\u00E1", "\u00E3", "\u00E0", "\u00E2", "\u00E4", "\u00E5", "\u00E6",
- "\u00AA")
- // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
- // U+010D: "č" LATIN SMALL LETTER C WITH CARON
- // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
- .setMoreKeysOf("c", "\u00E7", "\u010D", "\u0107");
- }
- }
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPortuguesePT.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPortuguesePT.java
index 836542ea9..e15e811db 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPortuguesePT.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPortuguesePT.java
@@ -19,9 +19,9 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroLayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.Qwerty;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import java.util.Locale;
@@ -36,17 +36,20 @@ public final class TestsPortuguesePT extends TestsPortugueseBR {
@Override
LayoutBase getLayout() { return LAYOUT; }
- private static class PortuguesePTCustomizer extends EuroLayoutCustomizer {
- private final PortugueseBRCustomizer mPortugueseCustomizer;
+ private static class PortuguesePTCustomizer extends PortugueseCustomizer {
+ private final EuroCustomizer mEuroCustomizer;
public PortuguesePTCustomizer(final Locale locale) {
super(locale);
- mPortugueseCustomizer = new PortugueseBRCustomizer(locale);
+ mEuroCustomizer = new EuroCustomizer(locale);
}
@Override
- public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
- return mPortugueseCustomizer.setAccentedLetters(builder);
+ public ExpectedKey getCurrencyKey() { return mEuroCustomizer.getCurrencyKey(); }
+
+ @Override
+ public ExpectedKey[] getOtherCurrencyKeys() {
+ return mEuroCustomizer.getOtherCurrencyKeys();
}
}
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsRomanian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsRomanian.java
index 59b328d07..0207f1c22 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsRomanian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsRomanian.java
@@ -51,15 +51,14 @@ public final class TestsRomanian extends LayoutTestsBase {
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
return builder
// U+021B: "ț" LATIN SMALL LETTER T WITH COMMA BELOW
- .setMoreKeysOf("t", "5", "\u021B")
+ .setMoreKeysOf("t", "\u021B")
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
- .setMoreKeysOf("i", "8", "\u00EE", "\u00EF", "\u00EC", "\u00ED", "\u012F",
- "\u012B")
+ .setMoreKeysOf("i", "\u00EE", "\u00EF", "\u00EC", "\u00ED", "\u012F", "\u012B")
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
// U+0103: "ă" LATIN SMALL LETTER A WITH BREVE
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsRussian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsRussian.java
index 14f950160..9919207ed 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsRussian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsRussian.java
@@ -52,15 +52,15 @@ public final class TestsRussian extends LayoutTestsBase {
return builder
// U+0435: "е" CYRILLIC SMALL LETTER IE
// U+0451: "ё" CYRILLIC SMALL LETTER IO
- .setMoreKeysOf("\u0435", "5", "\u0451")
+ .setMoreKeysOf("\u0435", "\u0451")
// U+0449: "щ" CYRILLIC SMALL LETTER SHCHA
- .replaceKeyOfLabel(EastSlavic.ROW1_9, key("\u0449", moreKey("9")))
+ .replaceKeyOfLabel(EastSlavic.ROW1_9, key("\u0449", additionalMoreKey("9")))
// U+044B: "ы" CYRILLIC SMALL LETTER YERU
- .replaceKeyOfLabel(EastSlavic.ROW2_2, key("\u044B"))
+ .replaceKeyOfLabel(EastSlavic.ROW2_2, "\u044B")
// U+044D: "э" CYRILLIC SMALL LETTER E
- .replaceKeyOfLabel(EastSlavic.ROW2_11, key("\u044D"))
+ .replaceKeyOfLabel(EastSlavic.ROW2_11, "\u044D")
// U+0438: "и" CYRILLIC SMALL LETTER I
- .replaceKeyOfLabel(EastSlavic.ROW3_5, key("\u0438"))
+ .replaceKeyOfLabel(EastSlavic.ROW3_5, "\u0438")
// U+044C: "ь" CYRILLIC SMALL LETTER SOFT SIGN
// U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN
.setMoreKeysOf("\u044C", "\u044A");
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSerbian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSerbian.java
index 119ea142c..41f1690f3 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSerbian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSerbian.java
@@ -58,18 +58,18 @@ public final class TestsSerbian extends LayoutTestsBase {
return builder
// U+0435: "е" CYRILLIC SMALL LETTER IE
// U+0450: "ѐ" CYRILLIC SMALL LETTER IE WITH GRAVE
- .setMoreKeysOf("\u0435", "3", "\u0450")
+ .setMoreKeysOf("\u0435", "\u0450")
// U+0437: "з" CYRILLIC SMALL LETTER ZE
- .replaceKeyOfLabel(SouthSlavic.ROW1_6, key("\u0437", moreKey("6")))
+ .replaceKeyOfLabel(SouthSlavic.ROW1_6, key("\u0437", additionalMoreKey("6")))
// U+0438: "и" CYRILLIC SMALL LETTER I
// U+045D: "ѝ" CYRILLIC SMALL LETTER I WITH GRAVE
- .setMoreKeysOf("\u0438", "8", "\u045D")
+ .setMoreKeysOf("\u0438", "\u045D")
// U+045B: "ћ" CYRILLIC SMALL LETTER TSHE
- .replaceKeyOfLabel(SouthSlavic.ROW2_11, key("\u045B"))
+ .replaceKeyOfLabel(SouthSlavic.ROW2_11, "\u045B")
// U+0455: "ѕ" CYRILLIC SMALL LETTER DZE
- .replaceKeyOfLabel(SouthSlavic.ROW3_1, key("\u0455"))
+ .replaceKeyOfLabel(SouthSlavic.ROW3_1, "\u0455")
// U+0452: "ђ" CYRILLIC SMALL LETTER DJE
- .replaceKeyOfLabel(SouthSlavic.ROW3_8, key("\u0452"));
+ .replaceKeyOfLabel(SouthSlavic.ROW3_8, "\u0452");
}
}
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSlovak.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSlovak.java
index 3d7825b13..bdaf0cad1 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSlovak.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSlovak.java
@@ -19,7 +19,7 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroLayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.Qwerty;
import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
@@ -38,7 +38,7 @@ public final class TestsSlovak extends LayoutTestsBase {
@Override
LayoutBase getLayout() { return LAYOUT; }
- private static class SlovakCustomizer extends EuroLayoutCustomizer {
+ private static class SlovakCustomizer extends EuroCustomizer {
public SlovakCustomizer(final Locale locale) { super(locale); }
@Override
@@ -65,18 +65,18 @@ public final class TestsSlovak extends LayoutTestsBase {
// U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
// U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
.setMoreKeysOf("e",
- "3", "\u00E9", "\u011B", "\u0113", "\u0117", "\u00E8", "\u00EA",
- "\u00EB", "\u0119")
+ "\u00E9", "\u011B", "\u0113", "\u0117", "\u00E8", "\u00EA", "\u00EB",
+ "\u0119")
// U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
// U+0159: "ř" LATIN SMALL LETTER R WITH CARON
// U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
- .setMoreKeysOf("r", "4", "\u0155", "\u0159", "\u0157")
+ .setMoreKeysOf("r", "\u0155", "\u0159", "\u0157")
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
// U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
- .setMoreKeysOf("t", "5", "\u0165", "\u0163")
+ .setMoreKeysOf("t", "\u0165", "\u0163")
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
- .setMoreKeysOf("y", "6", "\u00FD", "\u00FF")
+ .setMoreKeysOf("y", "\u00FD", "\u00FF")
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
@@ -86,8 +86,8 @@ public final class TestsSlovak extends LayoutTestsBase {
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
.setMoreKeysOf("u",
- "7", "\u00FA", "\u016F", "\u00FC", "\u016B", "\u0173", "\u00F9",
- "\u00FB", "\u0171")
+ "\u00FA", "\u016F", "\u00FC", "\u016B", "\u0173", "\u00F9", "\u00FB",
+ "\u0171")
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
@@ -96,8 +96,7 @@ public final class TestsSlovak extends LayoutTestsBase {
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+0131: "ı" LATIN SMALL LETTER DOTLESS I
.setMoreKeysOf("i",
- "8", "\u00ED", "\u012B", "\u012F", "\u00EC", "\u00EE", "\u00EF",
- "\u0131")
+ "\u00ED", "\u012B", "\u012F", "\u00EC", "\u00EE", "\u00EF", "\u0131")
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
@@ -107,8 +106,8 @@ public final class TestsSlovak extends LayoutTestsBase {
// U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
.setMoreKeysOf("o",
- "9", "\u00F4", "\u00F3", "\u00F6", "\u00F2", "\u00F5", "\u0153",
- "\u0151", "\u00F8")
+ "\u00F4", "\u00F3", "\u00F6", "\u00F2", "\u00F5", "\u0153", "\u0151",
+ "\u00F8")
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSlovenian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSlovenian.java
index 88a23ba07..cdb1beeba 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSlovenian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSlovenian.java
@@ -19,7 +19,7 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroLayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.Qwerty;
import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
@@ -38,7 +38,7 @@ public final class TestsSlovenian extends LayoutTestsBase {
@Override
LayoutBase getLayout() { return LAYOUT; }
- private static class SlovenianCustomizer extends EuroLayoutCustomizer {
+ private static class SlovenianCustomizer extends EuroCustomizer {
public SlovenianCustomizer(final Locale locale) { super(locale); }
@Override
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanish.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanish.java
index cc5a64c69..12e8676ae 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanish.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanish.java
@@ -19,11 +19,9 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroLayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.Spanish;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.keyboard.layout.tests.TestsSpanishUS.SpanishUSCustomizer;
import java.util.Locale;
@@ -38,22 +36,20 @@ public class TestsSpanish extends LayoutTestsBase {
@Override
LayoutBase getLayout() { return LAYOUT; }
- private static class SpanishESCustomizer extends EuroLayoutCustomizer {
- private final SpanishUSCustomizer mSpanishUSCustomizer;
+ private static class SpanishESCustomizer extends SpanishCustomizer {
+ private final EuroCustomizer mEuroCustomizer;
public SpanishESCustomizer(final Locale locale) {
super(locale);
- mSpanishUSCustomizer = new SpanishUSCustomizer(locale);
+ mEuroCustomizer = new EuroCustomizer(locale);
}
@Override
- public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
- return mSpanishUSCustomizer.getPunctuationMoreKeys(isPhone);
- }
+ public ExpectedKey getCurrencyKey() { return mEuroCustomizer.getCurrencyKey(); }
@Override
- public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
- return mSpanishUSCustomizer.setAccentedLetters(builder);
+ public ExpectedKey[] getOtherCurrencyKeys() {
+ return mEuroCustomizer.getOtherCurrencyKeys();
}
}
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanishUS.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanishUS.java
index 517db9d9f..c3ac0a0c0 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanishUS.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanishUS.java
@@ -19,10 +19,7 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.Spanish;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
@@ -32,89 +29,8 @@ import java.util.Locale;
@SmallTest
public class TestsSpanishUS extends TestsSpanish {
private static final Locale LOCALE = new Locale("es", "US");
- private static final LayoutBase LAYOUT = new Spanish(new SpanishUSCustomizer(LOCALE));
+ private static final LayoutBase LAYOUT = new Spanish(new SpanishCustomizer(LOCALE));
@Override
LayoutBase getLayout() { return LAYOUT; }
-
- // Make this as generic Spanish customizer.
- static class SpanishUSCustomizer extends LayoutCustomizer {
- public SpanishUSCustomizer(final Locale locale) { super(locale); }
-
- @Override
- public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
- return isPhone ? PHONE_PUNCTUATION_MORE_KEYS
- : LayoutBase.TABLET_PUNCTUATION_MORE_KEYS;
- }
-
- // Punctuation more keys for phone form factor.
- private static final ExpectedKey[] PHONE_PUNCTUATION_MORE_KEYS = joinKeys(
- // U+00A1: "¡" INVERTED EXCLAMATION MARK
- // U+00BF: "¿" INVERTED QUESTION MARK
- "\u00A1", ";", "/", "(", ")", "#", "!", ",", "?",
- "\u00BF", "&", "%", "+", "\"", "-", ":", "'", "@");
-
- @Override
- public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
- return builder
- // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
- // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
- // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
- // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
- // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
- // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
- // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
- .setMoreKeysOf("e",
- "3", "\u00E9", "\u00E8", "\u00EB", "\u00EA", "\u0119", "\u0117",
- "\u0113")
- // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
- // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
- // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
- // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
- // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "7", "\u00FA", "\u00FC", "\u00F9", "\u00FB", "\u016B")
- // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
- // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
- // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
- // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
- // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
- // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
- .setMoreKeysOf("i", "8", "\u00ED", "\u00EF", "\u00EC", "\u00EE", "\u012F",
- "\u012B")
- // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
- // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
- // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
- // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
- // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
- // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
- // U+0153: "œ" LATIN SMALL LIGATURE OE
- // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
- // U+00BA: "º" MASCULINE ORDINAL INDICATOR
- .setMoreKeysOf("o",
- "9", "\u00F3", "\u00F2", "\u00F6", "\u00F4", "\u00F5", "\u00F8",
- "\u0153", "\u014D", "\u00BA")
- // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
- // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
- // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
- // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
- // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
- // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
- // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
- // U+00E6: "æ" LATIN SMALL LETTER AE
- // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
- // U+00AA: "ª" FEMININE ORDINAL INDICATOR
- .setMoreKeysOf("a",
- "\u00E1", "\u00E0", "\u00E4", "\u00E2", "\u00E3", "\u00E5", "\u0105",
- "\u00E6", "\u0101", "\u00AA")
- // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
- .replaceKeyOfLabel(Spanish.ROW2_10, key("\u00F1"))
- // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
- // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
- // U+010D: "č" LATIN SMALL LETTER C WITH CARON
- .setMoreKeysOf("c", "\u00E7", "\u0107", "\u010D")
- // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
- // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
- .setMoreKeysOf("n", "\u00F1", "\u0144");
- }
- }
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwahili.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwahili.java
index 49e1912ee..13b974194 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwahili.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwahili.java
@@ -47,19 +47,19 @@ public final class TestsSwahili extends LayoutTestsBase {
// U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
// U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
// U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
- .setMoreKeysOf("e", "3", "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u0113")
+ .setMoreKeysOf("e", "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u0113")
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "7", "\u00FB", "\u00FC", "\u00F9", "\u00FA", "\u016B")
+ .setMoreKeysOf("u", "\u00FB", "\u00FC", "\u00F9", "\u00FA", "\u016B")
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
- .setMoreKeysOf("i", "8", "\u00EE", "\u00EF", "\u00ED", "\u012B", "\u00EC")
+ .setMoreKeysOf("i", "\u00EE", "\u00EF", "\u00ED", "\u012B", "\u00EC")
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
@@ -69,8 +69,8 @@ public final class TestsSwahili extends LayoutTestsBase {
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
.setMoreKeysOf("o",
- "9", "\u00F4", "\u00F6", "\u00F2", "\u00F3", "\u0153", "\u00F8",
- "\u014D", "\u00F5")
+ "\u00F4", "\u00F6", "\u00F2", "\u00F3", "\u0153", "\u00F8", "\u014D",
+ "\u00F5")
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwedish.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwedish.java
index 14155cb0e..9b58914a2 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwedish.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwedish.java
@@ -19,7 +19,7 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroLayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.Nordic;
import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
@@ -38,7 +38,7 @@ public final class TestsSwedish extends LayoutTestsBase {
@Override
LayoutBase getLayout() { return LAYOUT; }
- private static class SwedishCustomizer extends EuroLayoutCustomizer {
+ private static class SwedishCustomizer extends EuroCustomizer {
public SwedishCustomizer(final Locale locale) { super(locale); }
@Override
@@ -55,39 +55,39 @@ public final class TestsSwedish extends LayoutTestsBase {
// U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
// U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
// U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
- .setMoreKeysOf("e", "3", "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0119")
+ .setMoreKeysOf("e", "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0119")
// U+0159: "ř" LATIN SMALL LETTER R WITH CARON
- .setMoreKeysOf("r", "4", "\u0159")
+ .setMoreKeysOf("r", "\u0159")
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
// U+00FE: "þ" LATIN SMALL LETTER THORN
- .setMoreKeysOf("t", "5", "\u0165", "\u00FE")
+ .setMoreKeysOf("t", "\u0165", "\u00FE")
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
- .setMoreKeysOf("y", "6", "\u00FD", "\u00FF")
+ .setMoreKeysOf("y", "\u00FD", "\u00FF")
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "7", "\u00FC", "\u00FA", "\u00F9", "\u00FB", "\u016B")
+ .setMoreKeysOf("u", "\u00FC", "\u00FA", "\u00F9", "\u00FB", "\u016B")
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
- .setMoreKeysOf("i", "8", "\u00ED", "\u00EC", "\u00EE", "\u00EF")
+ .setMoreKeysOf("i", "\u00ED", "\u00EC", "\u00EE", "\u00EF")
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
- .setMoreKeysOf("o", "9", "\u00F3", "\u00F2", "\u00F4", "\u00F5", "\u014D")
+ .setMoreKeysOf("o", "\u00F3", "\u00F2", "\u00F4", "\u00F5", "\u014D")
// U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
- .replaceKeyOfLabel(Nordic.ROW1_11, key("\u00E5"))
+ .replaceKeyOfLabel(Nordic.ROW1_11, "\u00E5")
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+0153: "œ" LATIN SMALL LIGATURE OE
- .replaceKeyOfLabel(Nordic.ROW2_10, key("\u00F6",
- moreKey("\u00F8"), moreKey("\u0153")))
+ .replaceKeyOfLabel(Nordic.ROW2_10,
+ key("\u00F6", joinMoreKeys("\u00F8", "\u0153")))
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+00E6: "æ" LATIN SMALL LETTER AE
.replaceKeyOfLabel(Nordic.ROW2_11, key("\u00E4", moreKey("\u00E6")))
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTagalog.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTagalog.java
index 72e435a24..38d5364e5 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTagalog.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTagalog.java
@@ -19,10 +19,8 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.Spanish;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.keyboard.layout.tests.TestsSpanishUS.SpanishUSCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import java.util.Locale;
@@ -37,17 +35,16 @@ public class TestsTagalog extends TestsSpanish {
@Override
LayoutBase getLayout() { return LAYOUT; }
- private static class TagalogCustomizer extends LayoutCustomizer {
- private final SpanishUSCustomizer mSpanishUSCustomizer;
+ private static class TagalogCustomizer extends SpanishCustomizer {
public TagalogCustomizer(final Locale locale) {
super(locale);
- mSpanishUSCustomizer = new SpanishUSCustomizer(locale);
}
@Override
- public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
- return mSpanishUSCustomizer.setAccentedLetters(builder);
+ public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
+ return isPhone ? LayoutBase.PHONE_PUNCTUATION_MORE_KEYS
+ : LayoutBase.TABLET_PUNCTUATION_MORE_KEYS;
}
}
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTurkish.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTurkish.java
index ab67ae90d..b35f8850a 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTurkish.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTurkish.java
@@ -19,7 +19,7 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroLayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.Qwerty;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
@@ -36,7 +36,7 @@ public final class TestsTurkish extends LayoutTestsBase {
@Override
LayoutBase getLayout() { return LAYOUT; }
- private static class TurkishCustomizer extends EuroLayoutCustomizer {
+ private static class TurkishCustomizer extends EuroCustomizer {
public TurkishCustomizer(final Locale locale) { super(locale); }
@Override
@@ -47,7 +47,7 @@ public final class TestsTurkish extends LayoutTestsBase {
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- .setMoreKeysOf("u", "7", "\u00FC", "\u00FB", "\u00F9", "\u00FA", "\u016B")
+ .setMoreKeysOf("u", "\u00FC", "\u00FB", "\u00F9", "\u00FA", "\u016B")
// U+0131: "ı" LATIN SMALL LETTER DOTLESS I
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
@@ -55,7 +55,7 @@ public final class TestsTurkish extends LayoutTestsBase {
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
- .setMoreKeysOf("i", "8",
+ .setMoreKeysOf("i",
"\u0131", "\u00EE", "\u00EF", "\u00EC", "\u00ED", "\u012F", "\u012B")
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
@@ -66,8 +66,8 @@ public final class TestsTurkish extends LayoutTestsBase {
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o",
- "9", "\u00F6", "\u00F4", "\u0153", "\u00F2", "\u00F3", "\u00F5",
- "\u00F8", "\u014D")
+ "\u00F6", "\u00F4", "\u0153", "\u00F2", "\u00F3", "\u00F5", "\u00F8",
+ "\u014D")
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
.setMoreKeysOf("a", "\u00E2")
// U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsUkrainian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsUkrainian.java
index 27893fe9b..a6bcacc9e 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsUkrainian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsUkrainian.java
@@ -65,16 +65,16 @@ public final class TestsUkrainian extends LayoutTestsBase {
return builder
// U+0433: "г" CYRILLIC SMALL LETTER GHE
// U+0491: "ґ" CYRILLIC SMALL LETTER GHE WITH UPTURN
- .setMoreKeysOf("\u0433", "7", "\u0491")
+ .setMoreKeysOf("\u0433", "\u0491")
// U+0449: "щ" CYRILLIC SMALL LETTER SHCHA
- .replaceKeyOfLabel(EastSlavic.ROW1_9, key("\u0449", moreKey("9")))
+ .replaceKeyOfLabel(EastSlavic.ROW1_9, key("\u0449", additionalMoreKey("9")))
// U+0456: "і" CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
// U+0457: "ї" CYRILLIC SMALL LETTER YI
.replaceKeyOfLabel(EastSlavic.ROW2_2, key("\u0456", moreKey("\u0457")))
// U+0454: "є" CYRILLIC SMALL LETTER UKRAINIAN IE
- .replaceKeyOfLabel(EastSlavic.ROW2_11, key("\u0454"))
+ .replaceKeyOfLabel(EastSlavic.ROW2_11, "\u0454")
// U+0438: "и" CYRILLIC SMALL LETTER I
- .replaceKeyOfLabel(EastSlavic.ROW3_5, key("\u0438"))
+ .replaceKeyOfLabel(EastSlavic.ROW3_5, "\u0438")
// U+044C: "ь" CYRILLIC SMALL LETTER SOFT SIGN
// U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN
.setMoreKeysOf("\u044C", "\u044A");
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsVietnamese.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsVietnamese.java
index 96ae38a9c..83d86ac4d 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsVietnamese.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsVietnamese.java
@@ -71,14 +71,14 @@ public final class TestsVietnamese extends LayoutTestsBase {
// U+1EC5: "ễ" LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
// U+1EC7: "ệ" LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
.setMoreKeysOf("e",
- "3", "\u00E8", "\u00E9", "\u1EBB", "\u1EBD", "\u1EB9", "\u00EA",
- "\u1EC1", "\u1EBF", "\u1EC3", "\u1EC5", "\u1EC7")
+ "\u00E8", "\u00E9", "\u1EBB", "\u1EBD", "\u1EB9", "\u00EA", "\u1EC1",
+ "\u1EBF", "\u1EC3", "\u1EC5", "\u1EC7")
// U+1EF3: "ỳ" LATIN SMALL LETTER Y WITH GRAVE
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+1EF7: "ỷ" LATIN SMALL LETTER Y WITH HOOK ABOVE
// U+1EF9: "ỹ" LATIN SMALL LETTER Y WITH TILDE
// U+1EF5: "ỵ" LATIN SMALL LETTER Y WITH DOT BELOW
- .setMoreKeysOf("y", "6", "\u1EF3", "\u00FD", "\u1EF7", "\u1EF9", "\u1EF5")
+ .setMoreKeysOf("y", "\u1EF3", "\u00FD", "\u1EF7", "\u1EF9", "\u1EF5")
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+1EE7: "ủ" LATIN SMALL LETTER U WITH HOOK ABOVE
@@ -91,14 +91,14 @@ public final class TestsVietnamese extends LayoutTestsBase {
// U+1EEF: "ữ" LATIN SMALL LETTER U WITH HORN AND TILDE
// U+1EF1: "ự" LATIN SMALL LETTER U WITH HORN AND DOT BELOW
.setMoreKeysOf("u",
- "7", "\u00F9", "\u00FA", "\u1EE7", "\u0169", "\u1EE5", "\u01B0",
- "\u1EEB", "\u1EE9", "\u1EED", "\u1EEF", "\u1EF1")
+ "\u00F9", "\u00FA", "\u1EE7", "\u0169", "\u1EE5", "\u01B0", "\u1EEB",
+ "\u1EE9", "\u1EED", "\u1EEF", "\u1EF1")
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+1EC9: "ỉ" LATIN SMALL LETTER I WITH HOOK ABOVE
// U+0129: "ĩ" LATIN SMALL LETTER I WITH TILDE
// U+1ECB: "ị" LATIN SMALL LETTER I WITH DOT BELOW
- .setMoreKeysOf("i", "8", "\u00EC", "\u00ED", "\u1EC9", "\u0129", "\u1ECB")
+ .setMoreKeysOf("i", "\u00EC", "\u00ED", "\u1EC9", "\u0129", "\u1ECB")
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+1ECF: "ỏ" LATIN SMALL LETTER O WITH HOOK ABOVE
@@ -117,9 +117,9 @@ public final class TestsVietnamese extends LayoutTestsBase {
// U+1EE1: "ỡ" LATIN SMALL LETTER O WITH HORN AND TILDE
// U+1EE3: "ợ" LATIN SMALL LETTER O WITH HORN AND DOT BELOW
.setMoreKeysOf("o",
- "9", "\u00F2", "\u00F3", "\u1ECF", "\u00F5", "\u1ECD", "\u00F4",
- "\u1ED3", "\u1ED1", "\u1ED5", "\u1ED7", "\u1ED9", "\u01A1", "\u1EDD",
- "\u1EDB", "\u1EDF", "\u1EE1", "\u1EE3")
+ "\u00F2", "\u00F3", "\u1ECF", "\u00F5", "\u1ECD", "\u00F4", "\u1ED3",
+ "\u1ED1", "\u1ED5", "\u1ED7", "\u1ED9", "\u01A1", "\u1EDD", "\u1EDB",
+ "\u1EDF", "\u1EE1", "\u1EE3")
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+1EA3: "ả" LATIN SMALL LETTER A WITH HOOK ABOVE
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsZulu.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsZulu.java
index 04e89be55..e048e92c2 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsZulu.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsZulu.java
@@ -29,7 +29,7 @@ import java.util.Locale;
@SmallTest
public final class TestsZulu extends TestsEnglishUS {
private static final Locale LOCALE = new Locale("zu");
- private static final LayoutBase LAYOUT = new Qwerty(new EnglishUSCustomizer(LOCALE));
+ private static final LayoutBase LAYOUT = new Qwerty(new EnglishCustomizer(LOCALE));
@Override
LayoutBase getLayout() { return LAYOUT; }