Merge "Refactor keyboard layout unit tests"

main
Tadashi G. Takaoka 2014-10-03 04:03:03 +00:00 committed by Android (Google) Code Review
commit 72ee0bdf18
172 changed files with 1203 additions and 987 deletions

View File

@ -18,6 +18,7 @@ package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.Symbols.RtlSymbols;
import com.android.inputmethod.keyboard.layout.SymbolsShifted.RtlSymbolsShifted;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import com.android.inputmethod.latin.Constants;
@ -27,17 +28,15 @@ import java.util.Locale;
public final class Arabic extends LayoutBase {
private static final String LAYOUT_NAME = "arabic";
public Arabic(final LayoutCustomizer customizer) {
super(customizer, ArabicSymbols.class, ArabicSymbolsShifted.class);
public Arabic(final Locale locale) {
super(new ArabicCustomizer(locale), ArabicSymbols.class, ArabicSymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class ArabicCustomizer extends LayoutCustomizer {
public ArabicCustomizer(final Locale locale) {
super(locale);
}
private static class ArabicCustomizer extends LayoutCustomizer {
ArabicCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey getAlphabetKey() { return ARABIC_ALPHABET_KEY; }
@ -141,12 +140,11 @@ public final class Arabic extends LayoutBase {
ExpectedKey[][] getCommonAlphabetLayout(final boolean isPhone) {
if (isPhone) {
return ALPHABET_COMMON;
} else {
final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(ALPHABET_COMMON);
// U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE
builder.insertKeysAtRow(3, 2, "\u0626");
return builder.build();
}
final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(ALPHABET_COMMON);
// U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE
builder.insertKeysAtRow(3, 2, "\u0626");
return builder.build();
}
@Override

View File

@ -16,6 +16,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import com.android.inputmethod.latin.Constants;
@ -28,15 +29,16 @@ import java.util.Locale;
public final class ArmenianPhonetic extends LayoutBase {
private static final String LAYOUT_NAME = "armenian_phonetic";
public ArmenianPhonetic(final LayoutCustomizer customizer) {
super(customizer, ArmenianSymbols.class, ArmenianSymbolsShifted.class);
public ArmenianPhonetic(final Locale locale) {
super(new ArmenianPhoneticCustomizer(locale), ArmenianSymbols.class,
ArmenianSymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class ArmenianPhoneticCustomizer extends LayoutCustomizer {
public ArmenianPhoneticCustomizer(final Locale locale) { super(locale); }
private static class ArmenianPhoneticCustomizer extends LayoutCustomizer {
ArmenianPhoneticCustomizer(final Locale locale) { super(locale); }
@Override
public int getNumberOfRows() { return 5; }

View File

@ -17,6 +17,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;

View File

@ -16,6 +16,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;

View File

@ -17,6 +17,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;

View File

@ -16,7 +16,8 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.EastSlavic.EastSlavicCustomizer;
import com.android.inputmethod.keyboard.layout.customizer.EastSlavicCustomizer;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
@ -25,17 +26,17 @@ import java.util.Locale;
public final class Bulgarian extends LayoutBase {
private static final String LAYOUT_NAME = "bulgarian";
public Bulgarian(final LayoutCustomizer customizer) {
super(customizer, Symbols.class, SymbolsShifted.class);
public Bulgarian(final Locale locale) {
super(new BulgarianCustomizer(locale), Symbols.class, SymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class BulgarianCustomizer extends LayoutCustomizer {
private static class BulgarianCustomizer extends LayoutCustomizer {
private final EastSlavicCustomizer mEastSlavicCustomizer;
public BulgarianCustomizer(final Locale locale) {
BulgarianCustomizer(final Locale locale) {
super(locale);
mEastSlavicCustomizer = new EastSlavicCustomizer(locale);
}

View File

@ -16,7 +16,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.EastSlavic.EastSlavicCustomizer;
import com.android.inputmethod.keyboard.layout.customizer.EastSlavicCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
@ -25,15 +25,15 @@ import java.util.Locale;
public final class BulgarianBds extends LayoutBase {
private static final String LAYOUT_NAME = "bulgarian_bds";
public BulgarianBds(final LayoutCustomizer customizer) {
super(customizer, Symbols.class, SymbolsShifted.class);
public BulgarianBds(final Locale locale) {
super(new BulgarianBdsCustomizer(locale), Symbols.class, SymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class BulgarianBdsCustomizer extends EastSlavicCustomizer {
public BulgarianBdsCustomizer(final Locale locale) { super(locale); }
private static class BulgarianBdsCustomizer extends EastSlavicCustomizer {
BulgarianBdsCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }

View File

@ -17,6 +17,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;

View File

@ -17,12 +17,10 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
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 java.util.Locale;
/**
* The Dvorak alphabet keyboard.
*/
@ -36,52 +34,17 @@ public class Dvorak extends LayoutBase {
@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) {
// U+00A1: "¡" INVERTED EXCLAMATION MARK
return isPhone ? joinKeys(key("q", SETTINGS_KEY))
: joinKeys(key("!", joinMoreKeys("\u00A1", SETTINGS_KEY)));
}
@Override
public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
final ExpectedAdditionalMoreKey[] punctuationMoreKeys =
convertToAdditionalMoreKeys(getPunctuationMoreKeys(isPhone));
// U+00BF: "¿" INVERTED QUESTION MARK
return isPhone
? joinKeys(key("z", punctuationMoreKeys))
: joinKeys(key("?", joinMoreKeys(punctuationMoreKeys, "\u00BF")));
}
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
public ExpectedKey[][] getCommonAlphabetLayout(final boolean isPhone) {
return ALPHABET_COMMON;
}
/**
* Get the left most key of the first row.
* @param isPhone true if requesting phone's keys.
* @param elementId the element id of the requesting shifted mode.
* @return the left most key of the first row.
*/
protected ExpectedKey getRow1_1Key(final boolean isPhone, final int elementId) {
if (elementId == KeyboardId.ELEMENT_ALPHABET
|| elementId == KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED) {
@ -90,6 +53,12 @@ public class Dvorak extends LayoutBase {
return key("\"", additionalMoreKey("1"));
}
/**
* Get the 2nd left key of the first row.
* @param isPhone true if requesting phone's keys.
* @param elementId the element id of the requesting shifted mode.
* @return the 2nd left key of the first row.
*/
protected ExpectedKey getRow1_2Key(final boolean isPhone, final int elementId) {
if (elementId == KeyboardId.ELEMENT_ALPHABET
|| elementId == KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED) {
@ -98,6 +67,12 @@ public class Dvorak extends LayoutBase {
return key("<", additionalMoreKey("2"));
}
/**
* Get the 3rd left key of the first row.
* @param isPhone true if requesting phone's keys.
* @param elementId the element id of the requesting shifted mode.
* @return the 3rd left key of the first row.
*/
protected ExpectedKey getRow1_3Key(final boolean isPhone, final int elementId) {
if (elementId == KeyboardId.ELEMENT_ALPHABET
|| elementId == KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED) {

View File

@ -16,11 +16,9 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
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;
public final class EastSlavic extends LayoutBase {
private static final String LAYOUT_NAME = "east_slavic";
@ -32,26 +30,6 @@ public final class EastSlavic extends LayoutBase {
@Override
public String getName() { return LAYOUT_NAME; }
public static class EastSlavicCustomizer extends LayoutCustomizer {
public EastSlavicCustomizer(final Locale locale) {
super(locale);
}
@Override
public final ExpectedKey getAlphabetKey() { return EAST_SLAVIC_ALPHABET_KEY; }
@Override
public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
}
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
private static final ExpectedKey EAST_SLAVIC_ALPHABET_KEY = key(
"\u0410\u0411\u0412", Constants.CODE_SWITCH_ALPHA_SYMBOL);
}
@Override
ExpectedKey[][] getCommonAlphabetLayout(final boolean isPhone) { return ALPHABET_COMMON; }

View File

@ -18,6 +18,7 @@ package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.Symbols.RtlSymbols;
import com.android.inputmethod.keyboard.layout.SymbolsShifted.RtlSymbolsShifted;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import com.android.inputmethod.latin.Constants;
@ -27,17 +28,15 @@ import java.util.Locale;
public final class Farsi extends LayoutBase {
private static final String LAYOUT_NAME = "farsi";
public Farsi(final LayoutCustomizer customizer) {
super(customizer, FarsiSymbols.class, FarsiSymbolsShifted.class);
public Farsi(final Locale locale) {
super(new FarsiCustomizer(locale), FarsiSymbols.class, FarsiSymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class FarsiCustomizer extends LayoutCustomizer {
public FarsiCustomizer(final Locale locale) {
super(locale);
}
private static class FarsiCustomizer extends LayoutCustomizer {
FarsiCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey getAlphabetKey() { return FARSI_ALPHABET_KEY; }

View File

@ -17,6 +17,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import com.android.inputmethod.latin.Constants;
@ -29,15 +30,15 @@ import java.util.Locale;
public final class Georgian extends LayoutBase {
private static final String LAYOUT_NAME = "georgian";
public Georgian(final LayoutCustomizer customizer) {
super(customizer, Symbols.class, SymbolsShifted.class);
public Georgian(final Locale locale) {
super(new GeorgianCustomizer(locale), Symbols.class, SymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class GeorgianCustomizer extends LayoutCustomizer {
public GeorgianCustomizer(final Locale locale) { super(locale); }
private static class GeorgianCustomizer extends LayoutCustomizer {
GeorgianCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey getAlphabetKey() { return GEORGIAN_ALPHABET_KEY; }

View File

@ -17,6 +17,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.layout.customizer.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import com.android.inputmethod.latin.Constants;
@ -29,15 +30,15 @@ import java.util.Locale;
public final class Greek extends LayoutBase {
private static final String LAYOUT_NAME = "greek";
public Greek(final LayoutCustomizer customizer) {
super(customizer, Symbols.class, SymbolsShifted.class);
public Greek(final Locale locale) {
super(new GreekCustomizer(locale), Symbols.class, SymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class GreekCustomizer extends EuroCustomizer {
public GreekCustomizer(final Locale locale) { super(locale); }
private static class GreekCustomizer extends EuroCustomizer {
GreekCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey getAlphabetKey() { return GREEK_ALPHABET_KEY; }

View File

@ -18,6 +18,7 @@ package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.Symbols.RtlSymbols;
import com.android.inputmethod.keyboard.layout.SymbolsShifted.RtlSymbolsShifted;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import com.android.inputmethod.latin.Constants;
@ -27,17 +28,15 @@ import java.util.Locale;
public final class Hebrew extends LayoutBase {
private static final String LAYOUT_NAME = "hebrew";
public Hebrew(final LayoutCustomizer customizer) {
super(customizer, HebrewSymbols.class, RtlSymbolsShifted.class);
public Hebrew(final Locale locale) {
super(new HebrewCustomizer(locale), HebrewSymbols.class, RtlSymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class HebrewCustomizer extends LayoutCustomizer {
public HebrewCustomizer(final Locale locale) {
super(locale);
}
private static class HebrewCustomizer extends LayoutCustomizer {
HebrewCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey getAlphabetKey() { return HEBREW_ALPHABET_KEY; }

View File

@ -19,6 +19,7 @@ package com.android.inputmethod.keyboard.layout;
import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.*;
import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;

View File

@ -19,9 +19,9 @@ package com.android.inputmethod.keyboard.layout;
import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.*;
import com.android.inputmethod.keyboard.layout.Hindi.HindiSymbols;
import com.android.inputmethod.keyboard.layout.customizer.HindiCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import com.android.inputmethod.keyboard.layout.tests.HindiCustomizer;
import java.util.Locale;
@ -31,15 +31,15 @@ import java.util.Locale;
public final class HindiCompact extends LayoutBase {
private static final String LAYOUT_NAME = "hindi_compact";
public HindiCompact(final LayoutCustomizer customizer) {
super(customizer, HindiSymbols.class, SymbolsShifted.class);
public HindiCompact(final Locale locale) {
super(new HindiCompactCustomizer(locale), HindiSymbols.class, SymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class HindiCompactCustomizer extends HindiCustomizer {
public HindiCompactCustomizer(final Locale locale) { super(locale); }
private static class HindiCompactCustomizer extends HindiCustomizer {
HindiCompactCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {

View File

@ -16,6 +16,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import com.android.inputmethod.latin.Constants;
@ -28,15 +29,15 @@ import java.util.Locale;
public final class Kannada extends LayoutBase {
private static final String LAYOUT_NAME = "kannada";
public Kannada(final LayoutCustomizer customizer) {
super(customizer, Symbols.class, SymbolsShifted.class);
public Kannada(final Locale locale) {
super(new KannadaCustomizer(locale), Symbols.class, SymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class KannadaCustomizer extends LayoutCustomizer {
public KannadaCustomizer(final Locale locale) { super(locale); }
private static class KannadaCustomizer extends LayoutCustomizer {
KannadaCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey getAlphabetKey() { return KANNADA_ALPHABET_KEY; }

View File

@ -17,6 +17,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import com.android.inputmethod.latin.Constants;
@ -29,15 +30,15 @@ import java.util.Locale;
public final class Khmer extends LayoutBase {
private static final String LAYOUT_NAME = "khmer";
public Khmer(final LayoutCustomizer customizer) {
super(customizer, Symbols.class, SymbolsShifted.class);
public Khmer(final Locale locale) {
super(new KhmerCustomizer(locale), Symbols.class, SymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class KhmerCustomizer extends LayoutCustomizer {
public KhmerCustomizer(final Locale locale) { super(locale); }
private static class KhmerCustomizer extends LayoutCustomizer {
KhmerCustomizer(final Locale locale) { super(locale); }
@Override
public int getNumberOfRows() { return 5; }

View File

@ -17,6 +17,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import com.android.inputmethod.latin.Constants;
@ -29,15 +30,15 @@ import java.util.Locale;
public final class Lao extends LayoutBase {
private static final String LAYOUT_NAME = "lao";
public Lao(final LayoutCustomizer customizer) {
super(customizer, Symbols.class, SymbolsShifted.class);
public Lao(final Locale locale) {
super(new LaoCustomizer(locale), Symbols.class, SymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class LaoCustomizer extends LayoutCustomizer {
public LaoCustomizer(final Locale locale) { super(locale); }
private static class LaoCustomizer extends LayoutCustomizer {
LaoCustomizer(final Locale locale) { super(locale); }
@Override
public int getNumberOfRows() { return 5; }

View File

@ -17,11 +17,10 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
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 com.android.inputmethod.latin.Constants;
import java.util.Locale;
@ -29,218 +28,6 @@ import java.util.Locale;
* The base class of keyboard layout.
*/
public abstract class LayoutBase extends AbstractLayoutBase {
/**
* This class is used to customize common keyboard layout to language specific layout.
*/
public static class LayoutCustomizer {
private final Locale mLocale;
// Empty keys definition to remove keys by adding this.
protected static final ExpectedKey[] EMPTY_KEYS = joinKeys();
public LayoutCustomizer(final Locale locale) {
mLocale = locale;
}
public final Locale getLocale() {
return mLocale;
}
public int getNumberOfRows() {
return 4;
}
/**
* Set accented letters to a specific keyboard element.
* @param builder the {@link ExpectedKeyboardBuilder} object that contains common keyboard
* layout.
* @param elementId the element id of keyboard
* @return the {@link ExpectedKeyboardBuilder} object that contains accented letters as
* "more keys".
*/
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder,
final int elementId) {
// This method can be overridden by an extended class to provide customized expected
// accented letters depending on the shift state of keyboard.
// This is a default behavior to call a shift-state-independent
// {@link #setAccentedLetters(ExpectedKeyboardBuilder)} implementation, so that
// <code>elementId</code> is ignored here.
return setAccentedLetters(builder);
}
/**
* Set accented letters to common layout.
* @param builder the {@link ExpectedKeyboardBuilder} object that contains common keyboard
* layout.
* @return the {@link ExpectedKeyboardBuilder} object that contains accented letters as
* "more keys".
*/
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
return builder;
}
/**
* Get the function key to switch to alphabet layout.
* @return the {@link ExpectedKey} of the alphabet key.
*/
public ExpectedKey getAlphabetKey() { return ALPHABET_KEY; }
/**
* Get the function key to switch to symbols layout.
* @return the {@link ExpectedKey} of the symbols key.
*/
public ExpectedKey getSymbolsKey() { return SYMBOLS_KEY; }
/**
* Get the function key to switch to symbols shift layout.
* @param isPhone true if requesting phone's key.
* @return the {@link ExpectedKey} of the symbols shift key.
*/
public ExpectedKey getSymbolsShiftKey(boolean isPhone) {
return isPhone ? SYMBOLS_SHIFT_KEY : TABLET_SYMBOLS_SHIFT_KEY;
}
/**
* Get the function key to switch from symbols shift to symbols layout.
* @return the {@link ExpectedKey} of the back to symbols key.
*/
public ExpectedKey getBackToSymbolsKey() { return BACK_TO_SYMBOLS_KEY; }
/**
* Get the currency key.
* @return the {@link ExpectedKey} of the currency key.
*/
public ExpectedKey getCurrencyKey() { return Symbols.CURRENCY_DOLLAR; }
/**
* Get other currencies keys.
* @return the array of {@link ExpectedKey} that represents other currency keys.
*/
public ExpectedKey[] getOtherCurrencyKeys() {
return SymbolsShifted.CURRENCIES_OTHER_THAN_DOLLAR;
}
/**
* Get "more keys" of double quotation mark.
* @return the array of {@link ExpectedKey} of more double quotation marks in natural order.
*/
public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_9LR; }
/**
* Get "more keys" of single quotation mark.
* @return the array of {@link ExpectedKey} of more single quotation marks in natural order.
*/
public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_9LR; }
/**
* Get double angle quotation marks in natural order.
* @return the array of {@link ExpectedKey} of double angle quotation marks in natural
* order.
*/
public ExpectedKey[] getDoubleAngleQuoteKeys() { return Symbols.DOUBLE_ANGLE_QUOTES_LR; }
/**
* Get single angle quotation marks in natural order.
* @return the array of {@link ExpectedKey} of single angle quotation marks in natural
* order.
*/
public ExpectedKey[] getSingleAngleQuoteKeys() { return Symbols.SINGLE_ANGLE_QUOTES_LR; }
/**
* Get the left shift keys.
* @param isPhone true if requesting phone's keys.
* @return the array of {@link ExpectedKey} that should be placed at left edge of the
* keyboard.
*/
public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
return joinKeys(SHIFT_KEY);
}
/**
* Get the right shift keys.
* @param isPhone true if requesting phone's keys.
* @return the array of {@link ExpectedKey} that should be placed at right edge of the
* keyboard.
*/
public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
return isPhone ? EMPTY_KEYS : joinKeys(EXCLAMATION_AND_QUESTION_MARKS, SHIFT_KEY);
}
/**
* Get the enter key.
* @param isPhone true if requesting phone's key.
* @return the array of {@link ExpectedKey} that should be placed as an enter key.
*/
public ExpectedKey getEnterKey(final boolean isPhone) {
return isPhone ? key(ENTER_KEY, EMOJI_ACTION_KEY) : ENTER_KEY;
}
/**
* Get the emoji key.
* @param isPhone true if requesting phone's key.
* @return the array of {@link ExpectedKey} that should be placed as an emoji key.
*/
public ExpectedKey getEmojiKey(final boolean isPhone) {
return EMOJI_NORMAL_KEY;
}
/**
* Get the space keys.
* @param isPhone true if requesting phone's keys.
* @return the array of {@link ExpectedKey} that should be placed at the center of the
* keyboard.
*/
public ExpectedKey[] getSpaceKeys(final boolean isPhone) {
return joinKeys(LANGUAGE_SWITCH_KEY, SPACE_KEY);
}
/**
* Get the keys left to the spacebar.
* @param isPhone true if requesting phone's keys.
* @return the array of {@link ExpectedKey} that should be placed at left of the spacebar.
*/
public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
// U+002C: "," COMMA
return joinKeys(key("\u002C", SETTINGS_KEY));
}
/**
* Get the keys right to the spacebar.
* @param isPhone true if requesting phone's keys.
* @return the array of {@link ExpectedKey} that should be placed at right of the spacebar.
*/
public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
final ExpectedKey periodKey = key(".", getPunctuationMoreKeys(isPhone));
return joinKeys(periodKey);
}
/**
* Get "more keys" for the punctuation key (usually the period key).
* @param isPhone true if requesting phone's keys.
* @return the array of {@link ExpectedKey} that are "more keys" of the punctuation key.
*/
public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
return isPhone ? PHONE_PUNCTUATION_MORE_KEYS : TABLET_PUNCTUATION_MORE_KEYS;
}
}
/**
* The layout customize class for countries that use Euro.
*/
public static class EuroCustomizer extends LayoutCustomizer {
public EuroCustomizer(final Locale locale) {
super(locale);
}
@Override
public final ExpectedKey getCurrencyKey() { return Symbols.CURRENCY_EURO; }
@Override
public final ExpectedKey[] getOtherCurrencyKeys() {
return SymbolsShifted.CURRENCIES_OTHER_THAN_EURO;
}
}
private final LayoutCustomizer mCustomizer;
private final Symbols mSymbols;
private final SymbolsShifted mSymbolsShifted;
@ -276,77 +63,6 @@ public abstract class LayoutBase extends AbstractLayoutBase {
*/
public final LayoutCustomizer getCustomizer() { return mCustomizer; }
// Icon ids.
private static final int ICON_DELETE = KeyboardIconsSet.getIconId(
KeyboardIconsSet.NAME_DELETE_KEY);
private static final int ICON_SPACE = KeyboardIconsSet.getIconId(
KeyboardIconsSet.NAME_SPACE_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_ACTION = KeyboardIconsSet.getIconId(
KeyboardIconsSet.NAME_EMOJI_ACTION_KEY);
private static final int ICON_EMOJI_NORMAL = KeyboardIconsSet.getIconId(
KeyboardIconsSet.NAME_EMOJI_NORMAL_KEY);
private static final int ICON_SHIFT = KeyboardIconsSet.getIconId(
KeyboardIconsSet.NAME_SHIFT_KEY);
private static final int ICON_SHIFTED_SHIFT = KeyboardIconsSet.getIconId(
KeyboardIconsSet.NAME_SHIFT_KEY_SHIFTED);
private static final int ICON_ZWNJ = KeyboardIconsSet.getIconId(
KeyboardIconsSet.NAME_ZWNJ_KEY);
private static final int ICON_ZWJ = KeyboardIconsSet.getIconId(
KeyboardIconsSet.NAME_ZWJ_KEY);
// 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_ACTION_KEY = key(ICON_EMOJI_ACTION, Constants.CODE_EMOJI);
public static final ExpectedKey EMOJI_NORMAL_KEY = key(ICON_EMOJI_NORMAL, Constants.CODE_EMOJI);
public static final ExpectedKey SPACE_KEY = key(ICON_SPACE, Constants.CODE_SPACE);
static final ExpectedKey CAPSLOCK_MORE_KEY = key(" ", Constants.CODE_CAPSLOCK);
public static final ExpectedKey SHIFT_KEY = key(ICON_SHIFT,
Constants.CODE_SHIFT, CAPSLOCK_MORE_KEY);
public static final ExpectedKey SHIFTED_SHIFT_KEY = key(ICON_SHIFTED_SHIFT,
Constants.CODE_SHIFT, CAPSLOCK_MORE_KEY);
static final ExpectedKey ALPHABET_KEY = key("ABC", Constants.CODE_SWITCH_ALPHA_SYMBOL);
static final ExpectedKey SYMBOLS_KEY = key("?123", Constants.CODE_SWITCH_ALPHA_SYMBOL);
static final ExpectedKey BACK_TO_SYMBOLS_KEY = key("?123", Constants.CODE_SHIFT);
static final ExpectedKey SYMBOLS_SHIFT_KEY = key("= \\ <", Constants.CODE_SHIFT);
static final ExpectedKey TABLET_SYMBOLS_SHIFT_KEY = key("~ [ <", Constants.CODE_SHIFT);
// U+00A1: "¡" INVERTED EXCLAMATION MARK
// U+00BF: "¿" INVERTED QUESTION MARK
public static final ExpectedKey[] EXCLAMATION_AND_QUESTION_MARKS = joinKeys(
key("!", moreKey("\u00A1")), key("?", moreKey("\u00BF")));
// U+200C: ZERO WIDTH NON-JOINER
// U+200D: ZERO WIDTH JOINER
static final ExpectedKey ZWNJ_KEY = key(ICON_ZWNJ, "\u200C");
static final ExpectedKey ZWJ_KEY = key(ICON_ZWJ, "\u200D");
// Domain key
public static final ExpectedKey DOMAIN_KEY =
key(".com", joinMoreKeys(".net", ".org", ".gov", ".edu")).preserveCase();
// 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.
* @param builder the {@link ExpectedKeyboardBuilder} object that contains common keyboard

View File

@ -16,6 +16,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import com.android.inputmethod.latin.Constants;
@ -28,15 +29,15 @@ import java.util.Locale;
public final class Malayalam extends LayoutBase {
private static final String LAYOUT_NAME = "malayalam";
public Malayalam(final LayoutCustomizer customizer) {
super(customizer, Symbols.class, SymbolsShifted.class);
public Malayalam(final Locale locale) {
super(new MalayalamCustomizer(locale), Symbols.class, SymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class MalayalamCustomizer extends LayoutCustomizer {
public MalayalamCustomizer(final Locale locale) { super(locale); }
private static class MalayalamCustomizer extends LayoutCustomizer {
MalayalamCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey getAlphabetKey() { return MALAYALAM_ALPHABET_KEY; }

View File

@ -19,9 +19,9 @@ package com.android.inputmethod.keyboard.layout;
import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.*;
import com.android.inputmethod.keyboard.layout.Hindi.HindiSymbols;
import com.android.inputmethod.keyboard.layout.customizer.DevanagariCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import com.android.inputmethod.keyboard.layout.tests.DevanagariCustomizer;
import java.util.Locale;
@ -31,20 +31,37 @@ import java.util.Locale;
public final class Marathi extends LayoutBase {
private static final String LAYOUT_NAME = "marathi";
public Marathi(final LayoutCustomizer customizer) {
super(customizer, HindiSymbols.class, SymbolsShifted.class);
public Marathi(final Locale locale) {
super(new MarathiCustomizer(locale), HindiSymbols.class, SymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class MarathiCustomizer extends DevanagariCustomizer {
public MarathiCustomizer(final Locale locale) { super(locale); }
private static class MarathiCustomizer extends DevanagariCustomizer {
MarathiCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey getCurrencyKey() { return CURRENCY_RUPEE; }
@Override
public ExpectedKey[] getOtherCurrencyKeys() {
return SymbolsShifted.CURRENCIES_OTHER_GENERIC;
}
@Override
public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
return EMPTY_KEYS;
}
@Override
public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
}
// U+20B9: "₹" INDIAN RUPEE SIGN
private static final ExpectedKey CURRENCY_RUPEE = key("\u20B9",
Symbols.CURRENCY_GENERIC_MORE_KEYS);
}
@Override

View File

@ -16,7 +16,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.EastSlavic.EastSlavicCustomizer;
import com.android.inputmethod.keyboard.layout.customizer.EastSlavicCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
@ -25,17 +25,15 @@ import java.util.Locale;
public final class Mongolian extends LayoutBase {
private static final String LAYOUT_NAME = "mongolian";
public Mongolian(final LayoutCustomizer customizer) {
super(customizer, Symbols.class, SymbolsShifted.class);
public Mongolian(final Locale locale) {
super(new MongolianCustomizer(locale), Symbols.class, SymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class MongolianMNCustomizer extends EastSlavicCustomizer {
public MongolianMNCustomizer(final Locale locale) {
super(locale);
}
private static class MongolianCustomizer extends EastSlavicCustomizer {
MongolianCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey getCurrencyKey() { return CURRENCY_TUGRIK; }

View File

@ -17,6 +17,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import com.android.inputmethod.latin.Constants;
@ -29,15 +30,15 @@ import java.util.Locale;
public final class Myanmar extends LayoutBase {
private static final String LAYOUT_NAME = "myanmar";
public Myanmar(final LayoutCustomizer customizer) {
super(customizer, Symbols.class, SymbolsShifted.class);
public Myanmar(final Locale locale) {
super(new MyanmarCustomizer(locale), Symbols.class, SymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class MyanmarCustomizer extends LayoutCustomizer {
public MyanmarCustomizer(final Locale locale) { super(locale); }
private static class MyanmarCustomizer extends LayoutCustomizer {
MyanmarCustomizer(final Locale locale) { super(locale); }
@Override
public int getNumberOfRows() { return 5; }

View File

@ -20,9 +20,9 @@ import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.
import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.layout.Hindi.HindiSymbols;
import com.android.inputmethod.keyboard.layout.customizer.NepaliCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import com.android.inputmethod.keyboard.layout.tests.DevanagariCustomizer;
import java.util.Locale;
@ -32,28 +32,20 @@ import java.util.Locale;
public final class NepaliRomanized extends LayoutBase {
private static final String LAYOUT_NAME = "nepali_romanized";
public NepaliRomanized(final LayoutCustomizer customizer) {
super(customizer, HindiSymbols.class, SymbolsShifted.class);
public NepaliRomanized(final Locale locale) {
super(new NepaliRomanizedCustomizer(locale), HindiSymbols.class, SymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class NepaliRomanizedCustomizer extends DevanagariCustomizer {
public NepaliRomanizedCustomizer(final Locale locale) { super(locale); }
private static class NepaliRomanizedCustomizer extends NepaliCustomizer {
NepaliRomanizedCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey getCurrencyKey() { return CURRENCY_NEPALI; }
@Override
public ExpectedKey[] getSpaceKeys(final boolean isPhone) {
return joinKeys(LANGUAGE_SWITCH_KEY, SPACE_KEY, key(ZWNJ_KEY, ZWJ_KEY));
public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
}
// U+0930/U+0941/U+002E "रु." NEPALESE RUPEE SIGN
private static final ExpectedKey CURRENCY_NEPALI = key("\u0930\u0941\u002E",
Symbols.DOLLAR_SIGN, Symbols.CENT_SIGN, Symbols.EURO_SIGN, Symbols.POUND_SIGN,
Symbols.YEN_SIGN, Symbols.PESO_SIGN);
}
@Override

View File

@ -20,7 +20,7 @@ import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.
import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.layout.Hindi.HindiSymbols;
import com.android.inputmethod.keyboard.layout.NepaliRomanized.NepaliRomanizedCustomizer;
import com.android.inputmethod.keyboard.layout.customizer.NepaliCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
@ -32,15 +32,15 @@ import java.util.Locale;
public final class NepaliTraditional extends LayoutBase {
private static final String LAYOUT_NAME = "nepali_traditional";
public NepaliTraditional(final LayoutCustomizer customizer) {
super(customizer, HindiSymbols.class, SymbolsShifted.class);
public NepaliTraditional(final Locale locale) {
super(new NepaliTraditionalCustomizer(locale), HindiSymbols.class, SymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class NepaliTraditionalCustomizer extends NepaliRomanizedCustomizer {
public NepaliTraditionalCustomizer(final Locale locale) { super(locale); }
private static class NepaliTraditionalCustomizer extends NepaliCustomizer {
NepaliTraditionalCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey[] getRightShiftKeys(final boolean isPhone) { return EMPTY_KEYS; }

View File

@ -16,6 +16,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;

View File

@ -17,11 +17,10 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
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.
*/
@ -35,35 +34,6 @@ public final class PcQwerty extends LayoutBase {
@Override
public String getName() { return LAYOUT_NAME; }
public static class PcQwertyCustomizer extends LayoutCustomizer {
public PcQwertyCustomizer(final Locale locale) { super(locale); }
@Override
public int getNumberOfRows() { return 5; }
@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_ACTION_KEY))
: joinKeys(EMOJI_NORMAL_KEY);
}
}
@Override
ExpectedKey[][] getCommonAlphabetLayout(final boolean isPhone) {
final LayoutCustomizer customizer = getCustomizer();

View File

@ -16,6 +16,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;

View File

@ -16,6 +16,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;

View File

@ -16,6 +16,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;

View File

@ -17,6 +17,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import com.android.inputmethod.latin.Constants;
@ -29,15 +30,15 @@ import java.util.Locale;
public final class Sinhala extends LayoutBase {
private static final String LAYOUT_NAME = "sinhala";
public Sinhala(final LayoutCustomizer customizer) {
super(customizer, Symbols.class, SymbolsShifted.class);
public Sinhala(final Locale locale) {
super(new SinhalaCustomizer(locale), Symbols.class, SymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class SinhalaCustomizer extends LayoutCustomizer {
public SinhalaCustomizer(final Locale locale) { super(locale); }
private static class SinhalaCustomizer extends LayoutCustomizer {
SinhalaCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey getAlphabetKey() { return SINHALA_ALPHABET_KEY; }

View File

@ -16,11 +16,9 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
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;
public final class SouthSlavic extends LayoutBase {
private static final String LAYOUT_NAME = "south_slavic";
@ -32,26 +30,6 @@ public final class SouthSlavic extends LayoutBase {
@Override
public String getName() { return LAYOUT_NAME; }
public static class SouthSlavicLayoutCustomizer extends LayoutCustomizer {
public SouthSlavicLayoutCustomizer(final Locale locale) {
super(locale);
}
@Override
public final ExpectedKey getAlphabetKey() { return SOUTH_SLAVIC_ALPHABET_KEY; }
@Override
public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
}
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
private static final ExpectedKey SOUTH_SLAVIC_ALPHABET_KEY = key(
"\u0410\u0411\u0412", Constants.CODE_SWITCH_ALPHA_SYMBOL);
}
@Override
ExpectedKey[][] getCommonAlphabetLayout(final boolean isPhone) { return ALPHABET_COMMON; }

View File

@ -16,6 +16,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;

View File

@ -16,6 +16,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;

View File

@ -16,7 +16,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.AbstractLayoutBase;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
@ -41,13 +41,13 @@ public class Symbols extends AbstractLayoutBase {
customizer.getSingleQuoteMoreKeys(), customizer.getSingleAngleQuoteKeys())));
if (isPhone) {
builder.addKeysOnTheLeftOfRow(3, customizer.getSymbolsShiftKey(isPhone))
.addKeysOnTheRightOfRow(3, LayoutBase.DELETE_KEY)
.addKeysOnTheRightOfRow(3, DELETE_KEY)
.addKeysOnTheLeftOfRow(4, customizer.getAlphabetKey())
.addKeysOnTheRightOfRow(4, customizer.getEnterKey(isPhone));
} else {
// Tablet symbols keyboard has extra two keys at the left edge of the 3rd row.
builder.addKeysOnTheLeftOfRow(3, (Object[])joinKeys("\\", "="));
builder.addKeysOnTheRightOfRow(1, LayoutBase.DELETE_KEY)
builder.addKeysOnTheRightOfRow(1, DELETE_KEY)
.addKeysOnTheRightOfRow(2, customizer.getEnterKey(isPhone))
.addKeysOnTheLeftOfRow(3, customizer.getSymbolsShiftKey(isPhone))
.addKeysOnTheRightOfRow(3, customizer.getSymbolsShiftKey(isPhone))
@ -167,7 +167,7 @@ public class Symbols extends AbstractLayoutBase {
// U+00BF: "¿" INVERTED QUESTION MARK
key("?", moreKey("\u00BF")))
.setKeysOfRow(4,
key(","), key("_"), LayoutBase.SPACE_KEY, key("/"),
key(","), key("_"), SPACE_KEY, key("/"),
// U+2026: "…" HORIZONTAL ELLIPSIS
key(".", moreKey("\u2026")))
.build();

View File

@ -16,7 +16,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import com.android.inputmethod.keyboard.layout.expected.AbstractLayoutBase;
@ -37,7 +37,7 @@ public class SymbolsShifted extends AbstractLayoutBase {
builder.replaceKeyOfLabel(OTHER_CURRENCIES, (Object[])customizer.getOtherCurrencyKeys());
if (isPhone) {
builder.addKeysOnTheLeftOfRow(3, customizer.getBackToSymbolsKey())
.addKeysOnTheRightOfRow(3, LayoutBase.DELETE_KEY)
.addKeysOnTheRightOfRow(3, DELETE_KEY)
.addKeysOnTheLeftOfRow(4, customizer.getAlphabetKey())
.addKeysOnTheRightOfRow(4, customizer.getEnterKey(isPhone));
} else {
@ -45,7 +45,7 @@ public class SymbolsShifted extends AbstractLayoutBase {
// U+00BF: "¿" INVERTED QUESTION MARK
// U+00A1: "¡" INVERTED EXCLAMATION MARK
builder.addKeysOnTheRightOfRow(3, (Object[])joinKeys("\u00A1", "\u00BF"));
builder.addKeysOnTheRightOfRow(1, LayoutBase.DELETE_KEY)
builder.addKeysOnTheRightOfRow(1, DELETE_KEY)
.addKeysOnTheRightOfRow(2, customizer.getEnterKey(isPhone))
.addKeysOnTheLeftOfRow(3, customizer.getBackToSymbolsKey())
.addKeysOnTheRightOfRow(3, customizer.getBackToSymbolsKey())
@ -122,7 +122,7 @@ public class SymbolsShifted extends AbstractLayoutBase {
// U+2264: "≤" LESS-THAN OR EQUAL TO
// U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
key("<", joinMoreKeys("\u2039", "\u2264", "\u00AB")),
LayoutBase.SPACE_KEY,
SPACE_KEY,
// U+203A: "" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
// U+2265: "≥" GREATER-THAN EQUAL TO
// U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK

View File

@ -16,11 +16,9 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
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 Tamil keyboard.
@ -35,29 +33,6 @@ public final class Tamil extends LayoutBase {
@Override
public String getName() { return LAYOUT_NAME; }
public static class TamilCustomizer extends LayoutCustomizer {
public TamilCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey getAlphabetKey() { return TAMIL_ALPHABET_KEY; }
@Override
public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
return EMPTY_KEYS;
}
@Override
public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
}
// U+0BA4: "த" TAMIL LETTER TA
// U+0BAE/U+0BBF: "மி" TAMIL LETTER MA/TAMIL VOWEL SIGN I
// U+0BB4/U+0BCD: "ழ்" TAMIL LETTER LLLA/TAMIL SIGN VIRAMA
private static final ExpectedKey TAMIL_ALPHABET_KEY = key(
"\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD", Constants.CODE_SWITCH_ALPHA_SYMBOL);
}
@Override
ExpectedKey[][] getCommonAlphabetLayout(boolean isPhone) { return ALPHABET_COMMON; }

View File

@ -16,6 +16,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import com.android.inputmethod.latin.Constants;
@ -28,15 +29,15 @@ import java.util.Locale;
public final class Telugu extends LayoutBase {
private static final String LAYOUT_NAME = "telugu";
public Telugu(final LayoutCustomizer customizer) {
super(customizer, Symbols.class, SymbolsShifted.class);
public Telugu(final Locale locale) {
super(new TeluguCustomizer(locale), Symbols.class, SymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class TeluguCustomizer extends LayoutCustomizer {
public TeluguCustomizer(final Locale locale) { super(locale); }
private static class TeluguCustomizer extends LayoutCustomizer {
TeluguCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey getAlphabetKey() { return TELUGU_ALPHABET_KEY; }

View File

@ -17,6 +17,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import com.android.inputmethod.latin.Constants;
@ -29,15 +30,15 @@ import java.util.Locale;
public final class Thai extends LayoutBase {
private static final String LAYOUT_NAME = "thai";
public Thai(final LayoutCustomizer customizer) {
super(customizer, Symbols.class, SymbolsShifted.class);
public Thai(final Locale locale) {
super(new ThaiCustomizer(locale), Symbols.class, SymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class ThaiCustomizer extends LayoutCustomizer {
public ThaiCustomizer(final Locale locale) { super(locale); }
private static class ThaiCustomizer extends LayoutCustomizer {
ThaiCustomizer(final Locale locale) { super(locale); }
@Override
public int getNumberOfRows() { return 5; }

View File

@ -16,6 +16,7 @@
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;

View File

@ -14,10 +14,8 @@
* limitations under the License.
*/
package com.android.inputmethod.keyboard.layout.tests;
package com.android.inputmethod.keyboard.layout.customizer;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.SymbolsShifted;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.latin.Constants;
@ -37,12 +35,12 @@ public class BengaliCustomizer extends LayoutCustomizer {
@Override
public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
return isPhone ? EMPTY_KEYS : LayoutBase.EXCLAMATION_AND_QUESTION_MARKS;
return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
}
// U+0995: "क" BENGALI LETTER KA
// U+0996: "ख" BENGALI LETTER KHA
// U+0997: "ग" BENGALI LETTER GA
private static final ExpectedKey BENGALI_ALPHABET_KEY = LayoutBase.key(
private static final ExpectedKey BENGALI_ALPHABET_KEY = key(
"\u0995\u0996\u0997", Constants.CODE_SWITCH_ALPHA_SYMBOL);
}

View File

@ -14,17 +14,16 @@
* limitations under the License.
*/
package com.android.inputmethod.keyboard.layout.tests;
package com.android.inputmethod.keyboard.layout.customizer;
import com.android.inputmethod.keyboard.layout.Nordic;
import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
class DanishCustomizer extends EuroCustomizer {
public class DanishCustomizer extends EuroCustomizer {
public DanishCustomizer(final Locale locale) { super(locale); }
@Override
@ -110,4 +109,4 @@ class DanishCustomizer extends EuroCustomizer {
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
.setMoreKeysOf("n", "\u00F1", "\u0144");
}
}
}

View File

@ -14,12 +14,8 @@
* limitations under the License.
*/
package com.android.inputmethod.keyboard.layout.tests;
package com.android.inputmethod.keyboard.layout.customizer;
import com.android.inputmethod.keyboard.layout.Hindi;
import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
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.latin.Constants;
@ -37,34 +33,17 @@ public class DevanagariCustomizer extends LayoutCustomizer {
@Override
public ExpectedKey getBackToSymbolsKey() { return HINDI_BACK_TO_SYMBOLS_KEY; }
@Override
public ExpectedKey getCurrencyKey() { return CURRENCY_RUPEE; }
@Override
public ExpectedKey[] getOtherCurrencyKeys() {
return SymbolsShifted.CURRENCIES_OTHER_GENERIC;
}
@Override
public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
return isPhone ? EMPTY_KEYS : Hindi.EXCLAMATION_AND_QUESTION_MARKS;
}
// U+0915: "क" DEVANAGARI LETTER KA
// U+0916: "ख" DEVANAGARI LETTER KHA
// U+0917: "ग" DEVANAGARI LETTER GA
private static final ExpectedKey HINDI_ALPHABET_KEY = Hindi.key(
private static final ExpectedKey HINDI_ALPHABET_KEY = key(
"\u0915\u0916\u0917", Constants.CODE_SWITCH_ALPHA_SYMBOL);
// U+0967: "१" DEVANAGARI DIGIT ONE
// U+0968: "२" DEVANAGARI DIGIT TWO
// U+0969: "३" DEVANAGARI DIGIT THREE
private static final String HINDI_SYMBOLS_LABEL = "?\u0967\u0968\u0969";
private static final ExpectedKey HINDI_SYMBOLS_KEY = Hindi.key(HINDI_SYMBOLS_LABEL,
private static final ExpectedKey HINDI_SYMBOLS_KEY = key(HINDI_SYMBOLS_LABEL,
Constants.CODE_SWITCH_ALPHA_SYMBOL);
private static final ExpectedKey HINDI_BACK_TO_SYMBOLS_KEY = Hindi.key(HINDI_SYMBOLS_LABEL,
private static final ExpectedKey HINDI_BACK_TO_SYMBOLS_KEY = key(HINDI_SYMBOLS_LABEL,
Constants.CODE_SHIFT);
// U+20B9: "₹" INDIAN RUPEE SIGN
private static final ExpectedKey CURRENCY_RUPEE = Hindi.key("\u20B9",
Symbols.CURRENCY_GENERIC_MORE_KEYS);
}
}

View File

@ -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.customizer;
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;
public class DutchCustomizer extends EuroCustomizer {
public DutchCustomizer(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",
"\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",
"\u00E9", "\u00EB", "\u00EA", "\u00E8", "\u0119", "\u0117", "\u0113")
// U+0133: "ij" LATIN SMALL LIGATURE IJ
.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", "\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",
"\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",
"\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");
}
}

View File

@ -0,0 +1,78 @@
/*
* 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.customizer;
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;
public 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) {
// U+00A1: "¡" INVERTED EXCLAMATION MARK
return isPhone ? joinKeys(key("q", SETTINGS_KEY))
: joinKeys(key("!", joinMoreKeys("\u00A1", SETTINGS_KEY)));
}
@Override
public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
final ExpectedAdditionalMoreKey[] punctuationMoreKeys =
convertToAdditionalMoreKeys(getPunctuationMoreKeys(isPhone));
// U+00BF: "¿" INVERTED QUESTION MARK
return isPhone
? joinKeys(key("z", punctuationMoreKeys))
: joinKeys(key("?", joinMoreKeys(punctuationMoreKeys, "\u00BF")));
}
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;
}
public static class EnglishDvorakCustomizer extends DvorakCustomizer {
private final EnglishCustomizer mEnglishCustomizer;
public EnglishDvorakCustomizer(final Locale locale) {
super(locale);
mEnglishCustomizer = new EnglishCustomizer(locale);
}
@Override
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
return mEnglishCustomizer.setAccentedLetters(builder);
}
}
}

View File

@ -0,0 +1,40 @@
/*
* 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.customizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.latin.Constants;
import java.util.Locale;
public class EastSlavicCustomizer extends LayoutCustomizer {
public EastSlavicCustomizer(final Locale locale) { super(locale); }
@Override
public final ExpectedKey getAlphabetKey() { return EAST_SLAVIC_ALPHABET_KEY; }
@Override
public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
}
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
private static final ExpectedKey EAST_SLAVIC_ALPHABET_KEY = key(
"\u0410\u0411\u0412", Constants.CODE_SWITCH_ALPHA_SYMBOL);
}

View File

@ -14,15 +14,14 @@
* limitations under the License.
*/
package com.android.inputmethod.keyboard.layout.tests;
package com.android.inputmethod.keyboard.layout.customizer;
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); }
public class EnglishCustomizer extends LayoutCustomizer {
public EnglishCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {

View File

@ -14,10 +14,9 @@
* limitations under the License.
*/
package com.android.inputmethod.keyboard.layout.tests;
package com.android.inputmethod.keyboard.layout.customizer;
import com.android.inputmethod.keyboard.KeyboardId;
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;
@ -25,10 +24,8 @@ import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
class EstonianEECustomizer extends EuroCustomizer {
public EstonianEECustomizer(final Locale locale) {
super(locale);
}
public class EstonianEECustomizer extends EuroCustomizer {
public EstonianEECustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
@ -167,4 +164,4 @@ class EstonianEECustomizer extends EuroCustomizer {
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
.setMoreKeysOf("n", "\u0146", "\u00F1", "\u0144");
}
}
}

View File

@ -0,0 +1,40 @@
/*
* 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.customizer;
import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.SymbolsShifted;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import java.util.Locale;
/**
* The layout customize class for countries that use Euro.
*/
public class EuroCustomizer extends LayoutCustomizer {
public EuroCustomizer(final Locale locale) {
super(locale);
}
@Override
public final ExpectedKey getCurrencyKey() { return Symbols.CURRENCY_EURO; }
@Override
public final ExpectedKey[] getOtherCurrencyKeys() {
return SymbolsShifted.CURRENCIES_OTHER_THAN_EURO;
}
}

View File

@ -14,15 +14,14 @@
* limitations under the License.
*/
package com.android.inputmethod.keyboard.layout.tests;
package com.android.inputmethod.keyboard.layout.customizer;
import com.android.inputmethod.keyboard.layout.Nordic;
import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
class FinnishCustomizer extends EuroCustomizer {
public class FinnishCustomizer extends EuroCustomizer {
public FinnishCustomizer(final Locale locale) { super(locale); }
protected void setNordicKeys(final ExpectedKeyboardBuilder builder) {
@ -80,4 +79,4 @@ class FinnishCustomizer extends EuroCustomizer {
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
.setMoreKeysOf("z", "\u017E", "\u017A", "\u017C");
}
}
}

View File

@ -14,15 +14,15 @@
* limitations under the License.
*/
package com.android.inputmethod.keyboard.layout.tests;
package com.android.inputmethod.keyboard.layout.customizer;
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 FrenchCustomizer extends LayoutCustomizer {
FrenchCustomizer(final Locale locale) { super(locale); }
public class FrenchCustomizer extends LayoutCustomizer {
public FrenchCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
@ -86,4 +86,21 @@ class FrenchCustomizer extends LayoutCustomizer {
.setMoreKeysOf("c", "\u00E7", "\u0107", "\u010D")
.setAdditionalMoreKeysPositionOf("c", 2);
}
public 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 final ExpectedKey[] getOtherCurrencyKeys() {
return mEuroCustomizer.getOtherCurrencyKeys();
}
}
}

View File

@ -14,16 +14,15 @@
* limitations under the License.
*/
package com.android.inputmethod.keyboard.layout.tests;
package com.android.inputmethod.keyboard.layout.customizer;
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 class GermanCustomizer extends LayoutCustomizer {
public GermanCustomizer(final Locale locale) { super(locale); }
@Override
@ -86,4 +85,21 @@ class GermanCustomizer extends LayoutCustomizer {
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
.setMoreKeysOf("n", "\u00F1", "\u0144");
}
public static class GermanEuroCustomizer extends GermanCustomizer {
private final EuroCustomizer mEuroCustomizer;
public GermanEuroCustomizer(final Locale locale) {
super(locale);
mEuroCustomizer = new EuroCustomizer(locale);
}
@Override
public ExpectedKey getCurrencyKey() { return mEuroCustomizer.getCurrencyKey(); }
@Override
public ExpectedKey[] getOtherCurrencyKeys() {
return mEuroCustomizer.getOtherCurrencyKeys();
}
}
}

View File

@ -14,9 +14,10 @@
* limitations under the License.
*/
package com.android.inputmethod.keyboard.layout.tests;
package com.android.inputmethod.keyboard.layout.customizer;
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 java.util.Locale;
@ -24,11 +25,24 @@ import java.util.Locale;
public class HindiCustomizer extends DevanagariCustomizer {
public HindiCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey getCurrencyKey() { return CURRENCY_RUPEE; }
@Override
public ExpectedKey[] getOtherCurrencyKeys() {
return SymbolsShifted.CURRENCIES_OTHER_GENERIC;
}
@Override
public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
}
@Override
public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
// U+0964: "।" DEVANAGARI DANDA
final ExpectedKey periodKey = LayoutBase.key("\u0964", getPunctuationMoreKeys(isPhone));
return LayoutBase.joinKeys(periodKey);
final ExpectedKey periodKey = key("\u0964", getPunctuationMoreKeys(isPhone));
return joinKeys(periodKey);
}
@Override
@ -36,12 +50,16 @@ public class HindiCustomizer extends DevanagariCustomizer {
return isPhone ? HINDI_PHONE_PUNCTUATION_MORE_KEYS : HINDI_TABLET_PUNCTUATION_MORE_KEYS;
}
// U+20B9: "₹" INDIAN RUPEE SIGN
private static final ExpectedKey CURRENCY_RUPEE = key("\u20B9",
Symbols.CURRENCY_GENERIC_MORE_KEYS);
// Punctuation more keys for phone form factor.
private static final ExpectedKey[] HINDI_PHONE_PUNCTUATION_MORE_KEYS = LayoutBase.joinKeys(
private static final ExpectedKey[] HINDI_PHONE_PUNCTUATION_MORE_KEYS = joinKeys(
",", ".", "?", "!", "#", ")", "(", "/", ";",
"'", "@", ":", "-", "\"", "+", "%", "&");
// Punctuation more keys for tablet form factor.
private static final ExpectedKey[] HINDI_TABLET_PUNCTUATION_MORE_KEYS = LayoutBase.joinKeys(
private static final ExpectedKey[] HINDI_TABLET_PUNCTUATION_MORE_KEYS = joinKeys(
",", ".", "'", "#", ")", "(", "/", ";",
"@", ":", "-", "\"", "+", "%", "&");
}

View File

@ -14,14 +14,13 @@
* limitations under the License.
*/
package com.android.inputmethod.keyboard.layout.tests;
package com.android.inputmethod.keyboard.layout.customizer;
import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
class ItalianCustomizer extends LayoutCustomizer {
public class ItalianCustomizer extends LayoutCustomizer {
public ItalianCustomizer(final Locale locale) { super(locale); }
@Override

View File

@ -0,0 +1,214 @@
/*
* 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.customizer;
import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.SymbolsShifted;
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;
/**
* This class is used to customize common keyboard layout to language specific layout.
*/
public class LayoutCustomizer extends AbstractLayoutBase {
private final Locale mLocale;
// Empty keys definition to remove keys by adding this.
protected static final ExpectedKey[] EMPTY_KEYS = joinKeys();
public LayoutCustomizer(final Locale locale) { mLocale = locale; }
public final Locale getLocale() { return mLocale; }
public int getNumberOfRows() { return 4; }
/**
* Set accented letters to a specific keyboard element.
* @param builder the {@link ExpectedKeyboardBuilder} object that contains common keyboard
* layout.
* @param elementId the element id of keyboard
* @return the {@link ExpectedKeyboardBuilder} object that contains accented letters as
* "more keys".
*/
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder,
final int elementId) {
// This method can be overridden by an extended class to provide customized expected
// accented letters depending on the shift state of keyboard.
// This is a default behavior to call a shift-state-independent
// {@link #setAccentedLetters(ExpectedKeyboardBuilder)} implementation, so that
// <code>elementId</code> is ignored here.
return setAccentedLetters(builder);
}
/**
* Set accented letters to common layout.
* @param builder the {@link ExpectedKeyboardBuilder} object that contains common keyboard
* layout.
* @return the {@link ExpectedKeyboardBuilder} object that contains accented letters as
* "more keys".
*/
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
return builder;
}
/**
* Get the function key to switch to alphabet layout.
* @return the {@link ExpectedKey} of the alphabet key.
*/
public ExpectedKey getAlphabetKey() { return ALPHABET_KEY; }
/**
* Get the function key to switch to symbols layout.
* @return the {@link ExpectedKey} of the symbols key.
*/
public ExpectedKey getSymbolsKey() { return SYMBOLS_KEY; }
/**
* Get the function key to switch to symbols shift layout.
* @param isPhone true if requesting phone's key.
* @return the {@link ExpectedKey} of the symbols shift key.
*/
public ExpectedKey getSymbolsShiftKey(boolean isPhone) {
return isPhone ? SYMBOLS_SHIFT_KEY : TABLET_SYMBOLS_SHIFT_KEY;
}
/**
* Get the function key to switch from symbols shift to symbols layout.
* @return the {@link ExpectedKey} of the back to symbols key.
*/
public ExpectedKey getBackToSymbolsKey() { return BACK_TO_SYMBOLS_KEY; }
/**
* Get the currency key.
* @return the {@link ExpectedKey} of the currency key.
*/
public ExpectedKey getCurrencyKey() { return Symbols.CURRENCY_DOLLAR; }
/**
* Get other currencies keys.
* @return the array of {@link ExpectedKey} that represents other currency keys.
*/
public ExpectedKey[] getOtherCurrencyKeys() {
return SymbolsShifted.CURRENCIES_OTHER_THAN_DOLLAR;
}
/**
* Get "more keys" of double quotation mark.
* @return the array of {@link ExpectedKey} of more double quotation marks in natural order.
*/
public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_9LR; }
/**
* Get "more keys" of single quotation mark.
* @return the array of {@link ExpectedKey} of more single quotation marks in natural order.
*/
public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_9LR; }
/**
* Get double angle quotation marks in natural order.
* @return the array of {@link ExpectedKey} of double angle quotation marks in natural
* order.
*/
public ExpectedKey[] getDoubleAngleQuoteKeys() { return Symbols.DOUBLE_ANGLE_QUOTES_LR; }
/**
* Get single angle quotation marks in natural order.
* @return the array of {@link ExpectedKey} of single angle quotation marks in natural
* order.
*/
public ExpectedKey[] getSingleAngleQuoteKeys() { return Symbols.SINGLE_ANGLE_QUOTES_LR; }
/**
* Get the left shift keys.
* @param isPhone true if requesting phone's keys.
* @return the array of {@link ExpectedKey} that should be placed at left edge of the
* keyboard.
*/
public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
return joinKeys(SHIFT_KEY);
}
/**
* Get the right shift keys.
* @param isPhone true if requesting phone's keys.
* @return the array of {@link ExpectedKey} that should be placed at right edge of the
* keyboard.
*/
public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
return isPhone ? EMPTY_KEYS : joinKeys(EXCLAMATION_AND_QUESTION_MARKS, SHIFT_KEY);
}
/**
* Get the enter key.
* @param isPhone true if requesting phone's key.
* @return the array of {@link ExpectedKey} that should be placed as an enter key.
*/
public ExpectedKey getEnterKey(final boolean isPhone) {
return isPhone ? key(ENTER_KEY, EMOJI_ACTION_KEY) : ENTER_KEY;
}
/**
* Get the emoji key.
* @param isPhone true if requesting phone's key.
* @return the array of {@link ExpectedKey} that should be placed as an emoji key.
*/
public ExpectedKey getEmojiKey(final boolean isPhone) {
return EMOJI_NORMAL_KEY;
}
/**
* Get the space keys.
* @param isPhone true if requesting phone's keys.
* @return the array of {@link ExpectedKey} that should be placed at the center of the
* keyboard.
*/
public ExpectedKey[] getSpaceKeys(final boolean isPhone) {
return joinKeys(LANGUAGE_SWITCH_KEY, SPACE_KEY);
}
/**
* Get the keys left to the spacebar.
* @param isPhone true if requesting phone's keys.
* @return the array of {@link ExpectedKey} that should be placed at left of the spacebar.
*/
public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
// U+002C: "," COMMA
return joinKeys(key("\u002C", SETTINGS_KEY));
}
/**
* Get the keys right to the spacebar.
* @param isPhone true if requesting phone's keys.
* @return the array of {@link ExpectedKey} that should be placed at right of the spacebar.
*/
public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
final ExpectedKey periodKey = key(".", getPunctuationMoreKeys(isPhone));
return joinKeys(periodKey);
}
/**
* Get "more keys" for the punctuation key (usually the period key).
* @param isPhone true if requesting phone's keys.
* @return the array of {@link ExpectedKey} that are "more keys" of the punctuation key.
*/
public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
return isPhone ? PHONE_PUNCTUATION_MORE_KEYS : TABLET_PUNCTUATION_MORE_KEYS;
}
}

View File

@ -0,0 +1,45 @@
/*
* 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.customizer;
import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.SymbolsShifted;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import java.util.Locale;
public class NepaliCustomizer extends DevanagariCustomizer {
public NepaliCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey getCurrencyKey() { return CURRENCY_NEPALI; }
@Override
public ExpectedKey[] getOtherCurrencyKeys() {
return SymbolsShifted.CURRENCIES_OTHER_GENERIC;
}
@Override
public ExpectedKey[] getSpaceKeys(final boolean isPhone) {
return joinKeys(LANGUAGE_SWITCH_KEY, SPACE_KEY, key(ZWNJ_KEY, ZWJ_KEY));
}
// U+0930/U+0941/U+002E "रु." NEPALESE RUPEE SIGN
private static final ExpectedKey CURRENCY_NEPALI = key("\u0930\u0941\u002E",
Symbols.DOLLAR_SIGN, Symbols.CENT_SIGN, Symbols.EURO_SIGN, Symbols.POUND_SIGN,
Symbols.YEN_SIGN, Symbols.PESO_SIGN);
}

View File

@ -14,15 +14,14 @@
* limitations under the License.
*/
package com.android.inputmethod.keyboard.layout.tests;
package com.android.inputmethod.keyboard.layout.customizer;
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); }
public class NoLanguageCustomizer extends LayoutCustomizer {
public NoLanguageCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {

View File

@ -14,17 +14,16 @@
* limitations under the License.
*/
package com.android.inputmethod.keyboard.layout.tests;
package com.android.inputmethod.keyboard.layout.customizer;
import com.android.inputmethod.keyboard.layout.Nordic;
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 NorwegianCustomizer extends LayoutCustomizer {
public class NorwegianCustomizer extends LayoutCustomizer {
public NorwegianCustomizer(final Locale locale) { super(locale); }
@Override
@ -93,4 +92,4 @@ class NorwegianCustomizer extends LayoutCustomizer {
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
.setMoreKeysOf("u", "\u00FC", "\u00FB", "\u00F9", "\u00FA", "\u016B");
}
}
}

View File

@ -0,0 +1,50 @@
/*
* 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.customizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import java.util.Locale;
public class PcQwertyCustomizer extends LayoutCustomizer {
public PcQwertyCustomizer(final Locale locale) { super(locale); }
@Override
public int getNumberOfRows() { return 5; }
@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_ACTION_KEY))
: joinKeys(EMOJI_NORMAL_KEY);
}
}

View File

@ -14,15 +14,14 @@
* limitations under the License.
*/
package com.android.inputmethod.keyboard.layout.tests;
package com.android.inputmethod.keyboard.layout.customizer;
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); }
public class PortugueseCustomizer extends LayoutCustomizer {
public PortugueseCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {

View File

@ -14,22 +14,20 @@
* limitations under the License.
*/
package com.android.inputmethod.keyboard.layout.tests;
package com.android.inputmethod.keyboard.layout.customizer;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.SerbianQwertz;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
class SerbianLatinCustomizer extends LayoutCustomizer {
public class SerbianLatinCustomizer extends LayoutCustomizer {
public SerbianLatinCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
return isPhone ? EMPTY_KEYS : LayoutBase.EXCLAMATION_AND_QUESTION_MARKS;
return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
}
protected void setSerbianKeys(final ExpectedKeyboardBuilder builder) {
@ -79,4 +77,4 @@ class SerbianLatinCustomizer extends LayoutCustomizer {
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
.setMoreKeysOf("i", "\u00EC");
}
}
}

View File

@ -0,0 +1,43 @@
/*
* 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.customizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.latin.Constants;
import java.util.Locale;
public class SouthSlavicLayoutCustomizer extends LayoutCustomizer {
public SouthSlavicLayoutCustomizer(final Locale locale) {
super(locale);
}
@Override
public final ExpectedKey getAlphabetKey() { return SOUTH_SLAVIC_ALPHABET_KEY; }
@Override
public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
}
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
private static final ExpectedKey SOUTH_SLAVIC_ALPHABET_KEY = key(
"\u0410\u0411\u0412", Constants.CODE_SWITCH_ALPHA_SYMBOL);
}

View File

@ -14,28 +14,24 @@
* limitations under the License.
*/
package com.android.inputmethod.keyboard.layout.tests;
package com.android.inputmethod.keyboard.layout.customizer;
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); }
public class SpanishCustomizer extends LayoutCustomizer {
public SpanishCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
return isPhone ? PHONE_PUNCTUATION_MORE_KEYS
: LayoutBase.TABLET_PUNCTUATION_MORE_KEYS;
return isPhone ? SPANISH_PHONE_PUNCTUATION_MORE_KEYS : TABLET_PUNCTUATION_MORE_KEYS;
}
// Punctuation more keys for phone form factor.
private static final ExpectedKey[] PHONE_PUNCTUATION_MORE_KEYS = AbstractLayoutBase.joinKeys(
private static final ExpectedKey[] SPANISH_PHONE_PUNCTUATION_MORE_KEYS = joinKeys(
// U+00A1: "¡" INVERTED EXCLAMATION MARK
// U+00BF: "¿" INVERTED QUESTION MARK
",", "?", "!", "#", ")", "(", "/", ";", "\u00A1",

View File

@ -14,10 +14,8 @@
* limitations under the License.
*/
package com.android.inputmethod.keyboard.layout.tests;
package com.android.inputmethod.keyboard.layout.customizer;
import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.Nordic;
import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
@ -25,7 +23,7 @@ import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
class SwedishCustomizer extends LayoutCustomizer {
public class SwedishCustomizer extends LayoutCustomizer {
private final LayoutCustomizer mEuroCustomizer;
public SwedishCustomizer(final Locale locale) {
@ -142,4 +140,4 @@ class SwedishCustomizer extends LayoutCustomizer {
// U+0148: "ň" LATIN SMALL LETTER N WITH CARON
.setMoreKeysOf("n", "\u0144", "\u00F1", "\u0148");
}
}
}

View File

@ -0,0 +1,45 @@
/*
* 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.customizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.latin.Constants;
import java.util.Locale;
public class TamilCustomizer extends LayoutCustomizer {
public TamilCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey getAlphabetKey() { return TAMIL_ALPHABET_KEY; }
@Override
public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
return EMPTY_KEYS;
}
@Override
public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
}
// U+0BA4: "த" TAMIL LETTER TA
// U+0BAE/U+0BBF: "மி" TAMIL LETTER MA/TAMIL VOWEL SIGN I
// U+0BB4/U+0BCD: "ழ்" TAMIL LETTER LLLA/TAMIL SIGN VIRAMA
private static final ExpectedKey TAMIL_ALPHABET_KEY = key(
"\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD", Constants.CODE_SWITCH_ALPHA_SYMBOL);
}

View File

@ -14,9 +14,8 @@
* limitations under the License.
*/
package com.android.inputmethod.keyboard.layout.tests;
package com.android.inputmethod.keyboard.layout.customizer;
import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
@ -24,7 +23,7 @@ import java.util.Locale;
/**
* Turkic languages layout customizer.
*/
class TurkicCustomizer extends LayoutCustomizer {
public class TurkicCustomizer extends LayoutCustomizer {
public TurkicCustomizer(final Locale locale) { super(locale); }
@Override
@ -82,4 +81,4 @@ class TurkicCustomizer extends LayoutCustomizer {
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
.setMoreKeysOf("n", "\u0148", "\u00F1");
}
}
}

View File

@ -14,17 +14,15 @@
* limitations under the License.
*/
package com.android.inputmethod.keyboard.layout.tests;
package com.android.inputmethod.keyboard.layout.customizer;
import com.android.inputmethod.keyboard.layout.Nordic;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
class UzbekCustomizer extends TurkicCustomizer {
public UzbekCustomizer(final Locale locale) {
super(locale);
}
public class UzbekCustomizer extends TurkicCustomizer {
public UzbekCustomizer(final Locale locale) { super(locale); }
protected void setUzbekKeys(final ExpectedKeyboardBuilder builder) {
builder
@ -41,4 +39,4 @@ class UzbekCustomizer extends TurkicCustomizer {
setUzbekKeys(builder);
return super.setAccentedLetters(builder);
}
}
}

View File

@ -16,7 +16,9 @@
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;
/**
* Base class to create an expected keyboard for unit test.
@ -102,4 +104,75 @@ public abstract class AbstractLayoutBase {
public static ExpectedKey[] joinKeys(final Object ... keys) {
return ExpectedKeyboardBuilder.joinKeys(keys);
}
// Icon ids.
private static final int ICON_DELETE = KeyboardIconsSet.getIconId(
KeyboardIconsSet.NAME_DELETE_KEY);
private static final int ICON_SPACE = KeyboardIconsSet.getIconId(
KeyboardIconsSet.NAME_SPACE_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_ACTION = KeyboardIconsSet.getIconId(
KeyboardIconsSet.NAME_EMOJI_ACTION_KEY);
private static final int ICON_EMOJI_NORMAL = KeyboardIconsSet.getIconId(
KeyboardIconsSet.NAME_EMOJI_NORMAL_KEY);
private static final int ICON_SHIFT = KeyboardIconsSet.getIconId(
KeyboardIconsSet.NAME_SHIFT_KEY);
private static final int ICON_SHIFTED_SHIFT = KeyboardIconsSet.getIconId(
KeyboardIconsSet.NAME_SHIFT_KEY_SHIFTED);
private static final int ICON_ZWNJ = KeyboardIconsSet.getIconId(
KeyboardIconsSet.NAME_ZWNJ_KEY);
private static final int ICON_ZWJ = KeyboardIconsSet.getIconId(
KeyboardIconsSet.NAME_ZWJ_KEY);
// Functional keys.
protected static final ExpectedKey DELETE_KEY = key(ICON_DELETE, Constants.CODE_DELETE);
protected static final ExpectedKey TAB_KEY = key(ICON_TAB, Constants.CODE_TAB);
protected static final ExpectedKey SHORTCUT_KEY = key(ICON_SHORTCUT, Constants.CODE_SHORTCUT);
protected static final ExpectedKey SETTINGS_KEY = key(ICON_SETTINGS, Constants.CODE_SETTINGS);
protected static final ExpectedKey LANGUAGE_SWITCH_KEY = key(
ICON_LANGUAGE_SWITCH, Constants.CODE_LANGUAGE_SWITCH);
protected static final ExpectedKey ENTER_KEY = key(ICON_ENTER, Constants.CODE_ENTER);
protected static final ExpectedKey EMOJI_ACTION_KEY = key(ICON_EMOJI_ACTION, Constants.CODE_EMOJI);
protected static final ExpectedKey EMOJI_NORMAL_KEY = key(ICON_EMOJI_NORMAL, Constants.CODE_EMOJI);
protected static final ExpectedKey SPACE_KEY = key(ICON_SPACE, Constants.CODE_SPACE);
protected static final ExpectedKey CAPSLOCK_MORE_KEY = key(" ", Constants.CODE_CAPSLOCK);
protected static final ExpectedKey SHIFT_KEY = key(ICON_SHIFT,
Constants.CODE_SHIFT, CAPSLOCK_MORE_KEY);
protected static final ExpectedKey SHIFTED_SHIFT_KEY = key(ICON_SHIFTED_SHIFT,
Constants.CODE_SHIFT, CAPSLOCK_MORE_KEY);
protected static final ExpectedKey ALPHABET_KEY = key("ABC", Constants.CODE_SWITCH_ALPHA_SYMBOL);
protected static final ExpectedKey SYMBOLS_KEY = key("?123", Constants.CODE_SWITCH_ALPHA_SYMBOL);
protected static final ExpectedKey BACK_TO_SYMBOLS_KEY = key("?123", Constants.CODE_SHIFT);
protected static final ExpectedKey SYMBOLS_SHIFT_KEY = key("= \\ <", Constants.CODE_SHIFT);
protected static final ExpectedKey TABLET_SYMBOLS_SHIFT_KEY = key("~ [ <", Constants.CODE_SHIFT);
// U+00A1: "¡" INVERTED EXCLAMATION MARK
// U+00BF: "¿" INVERTED QUESTION MARK
protected static final ExpectedKey[] EXCLAMATION_AND_QUESTION_MARKS = joinKeys(
key("!", moreKey("\u00A1")), key("?", moreKey("\u00BF")));
// U+200C: ZERO WIDTH NON-JOINER
// U+200D: ZERO WIDTH JOINER
protected static final ExpectedKey ZWNJ_KEY = key(ICON_ZWNJ, "\u200C");
protected static final ExpectedKey ZWJ_KEY = key(ICON_ZWJ, "\u200D");
// Domain key
protected static final ExpectedKey DOMAIN_KEY =
key(".com", joinMoreKeys(".net", ".org", ".gov", ".edu")).preserveCase();
// Punctuation more keys for phone form factor.
protected static final ExpectedKey[] PHONE_PUNCTUATION_MORE_KEYS = joinKeys(
",", "?", "!", "#", ")", "(", "/", ";",
"'", "@", ":", "-", "\"", "+", "%", "&");
// Punctuation more keys for tablet form factor.
protected static final ExpectedKey[] TABLET_PUNCTUATION_MORE_KEYS = joinKeys(
",", "'", "#", ")", "(", "/", ";",
"@", ":", "-", "\"", "+", "%", "&");
}

View File

@ -19,8 +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.Qwerty;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;

View File

@ -19,7 +19,6 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.Arabic;
import com.android.inputmethod.keyboard.layout.Arabic.ArabicCustomizer;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import java.util.Locale;
@ -30,7 +29,7 @@ import java.util.Locale;
@SmallTest
public class TestsArabic extends LayoutTestsBase {
private static final Locale LOCALE = new Locale("ar");
private static final LayoutBase LAYOUT = new Arabic(new ArabicCustomizer(LOCALE));
private static final LayoutBase LAYOUT = new Arabic(LOCALE);
@Override
LayoutBase getLayout() { return LAYOUT; }

View File

@ -19,7 +19,6 @@ 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;
@ -30,8 +29,7 @@ import java.util.Locale;
@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));
private static final LayoutBase LAYOUT = new ArmenianPhonetic(LOCALE);
@Override
LayoutBase getLayout() { return LAYOUT; }

View File

@ -20,6 +20,7 @@ import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.Qwerty;
import com.android.inputmethod.keyboard.layout.customizer.TurkicCustomizer;
import java.util.Locale;

View File

@ -19,8 +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.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.Spanish;
import com.android.inputmethod.keyboard.layout.customizer.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.customizer.SpanishCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
@ -39,7 +40,7 @@ public class TestsBasqueES extends LayoutTestsBase {
private static class BasqueESCustomizer extends EuroCustomizer {
private final SpanishCustomizer mSpanishCustomizer;
public BasqueESCustomizer(final Locale locale) {
BasqueESCustomizer(final Locale locale) {
super(locale);
mSpanishCustomizer = new SpanishCustomizer(locale);
}

View File

@ -19,9 +19,9 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.EastSlavic;
import com.android.inputmethod.keyboard.layout.EastSlavic.EastSlavicCustomizer;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.customizer.EastSlavicCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
@ -39,7 +39,7 @@ public final class TestsBelarusianBY extends LayoutTestsBase {
LayoutBase getLayout() { return LAYOUT; }
private static class BelarusianBYCustomizer extends EastSlavicCustomizer {
public BelarusianBYCustomizer(final Locale locale) { super(locale); }
BelarusianBYCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey[] getDoubleQuoteMoreKeys() {

View File

@ -21,6 +21,7 @@ import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.BengaliAkkhor;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.customizer.BengaliCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import java.util.Locale;
@ -37,11 +38,11 @@ public final class TestsBengaliBD extends LayoutTestsBase {
LayoutBase getLayout() { return LAYOUT; }
private static class BengaliBDCustomzier extends BengaliCustomizer {
public BengaliBDCustomzier(final Locale locale) { super(locale); }
BengaliBDCustomzier(final Locale locale) { super(locale); }
@Override
public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
return isPhone ? EMPTY_KEYS : LayoutBase.EXCLAMATION_AND_QUESTION_MARKS;
return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
}
@Override

View File

@ -21,6 +21,7 @@ import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.Bengali;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.customizer.BengaliCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import java.util.Locale;
@ -37,7 +38,7 @@ public final class TestsBengaliIN extends LayoutTestsBase {
LayoutBase getLayout() { return LAYOUT; }
private static class BengaliINCustomzier extends BengaliCustomizer {
public BengaliINCustomzier(final Locale locale) { super(locale); }
BengaliINCustomzier(final Locale locale) { super(locale); }
@Override
public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) { return EMPTY_KEYS; }

View File

@ -19,7 +19,6 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.Bulgarian;
import com.android.inputmethod.keyboard.layout.Bulgarian.BulgarianCustomizer;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import java.util.Locale;
@ -30,7 +29,7 @@ import java.util.Locale;
@SmallTest
public final class TestsBulgarian extends LayoutTestsBase {
private static final Locale LOCALE = new Locale("bg");
private static final LayoutBase LAYOUT = new Bulgarian(new BulgarianCustomizer(LOCALE));
private static final LayoutBase LAYOUT = new Bulgarian(LOCALE);
@Override
LayoutBase getLayout() { return LAYOUT; }

View File

@ -19,7 +19,6 @@ package com.android.inputmethod.keyboard.layout.tests;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.BulgarianBds;
import com.android.inputmethod.keyboard.layout.BulgarianBds.BulgarianBdsCustomizer;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import java.util.Locale;
@ -30,7 +29,7 @@ import java.util.Locale;
@SmallTest
public final class TestsBulgarianBds extends LayoutTestsBase {
private static final Locale LOCALE = new Locale("bg");
private static final LayoutBase LAYOUT = new BulgarianBds(new BulgarianBdsCustomizer(LOCALE));
private static final LayoutBase LAYOUT = new BulgarianBds(LOCALE);
@Override
LayoutBase getLayout() { return LAYOUT; }

View File

@ -19,8 +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.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.Spanish;
import com.android.inputmethod.keyboard.layout.customizer.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
@ -38,20 +38,20 @@ public class TestsCatalan extends LayoutTestsBase {
LayoutBase getLayout() { return LAYOUT; }
private static class CatalanCustomizer extends EuroCustomizer {
public CatalanCustomizer(final Locale locale) { super(locale); }
CatalanCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
return isPhone ? PHONE_PUNCTUATION_MORE_KEYS
: TABLET_PUNCTUATION_MORE_KEYS;
return isPhone ? CATALAN_PHONE_PUNCTUATION_MORE_KEYS
: CATALAN_TABLET_PUNCTUATION_MORE_KEYS;
}
// U+00B7: "·" MIDDLE DOT
private static final ExpectedKey[] PHONE_PUNCTUATION_MORE_KEYS = joinKeys(
private static final ExpectedKey[] CATALAN_PHONE_PUNCTUATION_MORE_KEYS = joinKeys(
",", "?", "!", "\u00B7", "#", ")", "(", "/", ";",
"'", "@", ":", "-", "\"", "+", "%", "&");
private static final ExpectedKey[] TABLET_PUNCTUATION_MORE_KEYS = joinKeys(
private static final ExpectedKey[] CATALAN_TABLET_PUNCTUATION_MORE_KEYS = joinKeys(
",", "'", "\u00B7", "#", ")", "(", "/", ";",
"@", ":", "-", "\"", "+", "%", "&");

View File

@ -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.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.Qwertz;
import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
@ -39,7 +39,7 @@ public final class TestsCroatian extends LayoutTestsBase {
LayoutBase getLayout() { return LAYOUT; }
private static class CroatianCustomizer extends LayoutCustomizer {
public CroatianCustomizer(final Locale locale) { super(locale); }
CroatianCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_L9R; }

View File

@ -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.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.Qwertz;
import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
@ -39,7 +39,7 @@ public final class TestsCzech extends LayoutTestsBase {
LayoutBase getLayout() { return LAYOUT; }
private static class CzechCustomizer extends LayoutCustomizer {
public CzechCustomizer(final Locale locale) { super(locale); }
CzechCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }

View File

@ -20,6 +20,7 @@ import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.Nordic;
import com.android.inputmethod.keyboard.layout.customizer.DanishCustomizer;
import java.util.Locale;

View File

@ -20,6 +20,7 @@ import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.Qwertz;
import com.android.inputmethod.keyboard.layout.customizer.DanishCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
@ -36,9 +37,7 @@ public final class TestsDanishQwertz extends LayoutTestsBase {
LayoutBase getLayout() { return LAYOUT; }
private static class DanishQwertyCustomizer extends DanishCustomizer {
public DanishQwertyCustomizer(final Locale locale) {
super(locale);
}
DanishQwertyCustomizer(final Locale locale) { super(locale); }
@Override
protected void setNordicKeys(final ExpectedKeyboardBuilder builder) {

View File

@ -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.EuroCustomizer;
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.customizer.DutchCustomizer;
import java.util.Locale;
@ -37,70 +34,4 @@ public final class TestsDutch extends LayoutTestsBase {
@Override
LayoutBase getLayout() { return LAYOUT; }
static class DutchCustomizer extends EuroCustomizer {
public DutchCustomizer(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",
"\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",
"\u00E9", "\u00EB", "\u00EA", "\u00E8", "\u0119", "\u0117", "\u0113")
// U+0133: "ij" LATIN SMALL LIGATURE IJ
.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", "\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",
"\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",
"\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");
}
}
}

View File

@ -20,7 +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.tests.TestsDutch.DutchCustomizer;
import com.android.inputmethod.keyboard.layout.customizer.DutchCustomizer;
import java.util.Locale;

View File

@ -25,8 +25,9 @@ import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.KeyboardLayoutSet;
import com.android.inputmethod.keyboard.layout.Dvorak;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.customizer.DvorakCustomizer.EnglishDvorakCustomizer;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.tests.TestsEnglishDvorak.EnglishDvorakCustomizer;
import java.util.Locale;
@ -60,23 +61,23 @@ public class TestsDvorakEmail extends LayoutTestsBase {
@Override
public ExpectedKey getEnterKey(final boolean isPhone) {
return isPhone ? LayoutBase.ENTER_KEY : super.getEnterKey(isPhone);
return isPhone ? ENTER_KEY : super.getEnterKey(isPhone);
}
@Override
public ExpectedKey getEmojiKey(final boolean isPhone) {
return LayoutBase.DOMAIN_KEY;
return DOMAIN_KEY;
}
@Override
public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
return isPhone ? super.getKeysLeftToSpacebar(isPhone)
: joinKeys(key("@", LayoutBase.SETTINGS_KEY));
: joinKeys(key("@", SETTINGS_KEY));
}
}
private static class DvorakEmail extends Dvorak {
public DvorakEmail(final LayoutCustomizer customizer) {
DvorakEmail(final LayoutCustomizer customizer) {
super(customizer);
}

View File

@ -25,8 +25,9 @@ import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.KeyboardLayoutSet;
import com.android.inputmethod.keyboard.layout.Dvorak;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.customizer.DvorakCustomizer.EnglishDvorakCustomizer;
import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.tests.TestsEnglishDvorak.EnglishDvorakCustomizer;
import java.util.Locale;
@ -54,31 +55,27 @@ public class TestsDvorakUrl extends LayoutTestsBase {
}
private static class DvorakUrlCustomizer extends EnglishDvorakCustomizer {
DvorakUrlCustomizer(final Locale locale) {
super(locale);
}
DvorakUrlCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey getEnterKey(final boolean isPhone) {
return isPhone ? LayoutBase.ENTER_KEY : super.getEnterKey(isPhone);
return isPhone ? ENTER_KEY : super.getEnterKey(isPhone);
}
@Override
public ExpectedKey getEmojiKey(final boolean isPhone) {
return LayoutBase.DOMAIN_KEY;
return DOMAIN_KEY;
}
@Override
public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
return isPhone ? super.getKeysLeftToSpacebar(isPhone)
: joinKeys(key("/", LayoutBase.SETTINGS_KEY));
: joinKeys(key("/", SETTINGS_KEY));
}
}
private static class DvorakEmail extends Dvorak {
public DvorakEmail(final LayoutCustomizer customizer) {
super(customizer);
}
DvorakEmail(final LayoutCustomizer customizer) { super(customizer); }
@Override
protected ExpectedKey getRow1_1Key(final boolean isPhone, final int elementId) {

View File

@ -19,9 +19,8 @@ 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 com.android.inputmethod.keyboard.layout.customizer.DvorakCustomizer.EnglishDvorakCustomizer;
import java.util.Locale;
@ -35,18 +34,4 @@ public class TestsEnglishDvorak extends LayoutTestsBase {
@Override
LayoutBase getLayout() { return LAYOUT; }
public 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);
}
}
}

View File

@ -22,6 +22,7 @@ import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.Qwerty;
import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.SymbolsShifted;
import com.android.inputmethod.keyboard.layout.customizer.EnglishCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import java.util.Locale;
@ -38,7 +39,7 @@ public final class TestsEnglishIN extends TestsEnglishUS {
LayoutBase getLayout() { return LAYOUT; }
private static class EnglishINCustomizer extends EnglishCustomizer {
public EnglishINCustomizer(final Locale locale) { super(locale); }
EnglishINCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey getCurrencyKey() { return CURRENCY_RUPEE; }

View File

@ -21,6 +21,7 @@ import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.Qwerty;
import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.customizer.EnglishCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import java.util.Locale;
@ -37,7 +38,7 @@ public final class TestsEnglishUK extends TestsEnglishUS {
LayoutBase getLayout() { return LAYOUT; }
private static class EnglishUKCustomizer extends EnglishCustomizer {
public EnglishUKCustomizer(final Locale locale) { super(locale); }
EnglishUKCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey getCurrencyKey() { return CURRENCY_POUND; }

View File

@ -20,6 +20,7 @@ import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.Qwerty;
import com.android.inputmethod.keyboard.layout.customizer.EnglishCustomizer;
import java.util.Locale;

View File

@ -19,8 +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.customizer.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
@ -37,7 +37,7 @@ public class TestsEsperanto extends LayoutTestsBase {
LayoutBase getLayout() { return LAYOUT; }
private static class EsperantoCustomizer extends LayoutCustomizer {
public EsperantoCustomizer(final Locale locale) { super(locale); }
EsperantoCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {

View File

@ -20,6 +20,7 @@ import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.Nordic;
import com.android.inputmethod.keyboard.layout.customizer.EstonianEECustomizer;
import java.util.Locale;

View File

@ -20,6 +20,7 @@ import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.Qwerty;
import com.android.inputmethod.keyboard.layout.customizer.EstonianEECustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
@ -36,9 +37,7 @@ public final class TestsEstonianEEQwerty extends LayoutTestsBase {
LayoutBase getLayout() { return LAYOUT; }
private static class EstonianEEQwertyCustomizer extends EstonianEECustomizer {
public EstonianEEQwertyCustomizer(final Locale locale) {
super(locale);
}
EstonianEEQwertyCustomizer(final Locale locale) { super(locale); }
@Override
protected void setNordicKeys(final ExpectedKeyboardBuilder builder) {

View File

@ -20,6 +20,7 @@ import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.Nordic;
import com.android.inputmethod.keyboard.layout.customizer.FinnishCustomizer;
import java.util.Locale;

View File

@ -20,6 +20,7 @@ import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.Qwerty;
import com.android.inputmethod.keyboard.layout.customizer.FinnishCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
@ -36,9 +37,7 @@ public final class TestsFinnishQwerty extends LayoutTestsBase {
LayoutBase getLayout() { return LAYOUT; }
private static class FinnishQwertyCustomizer extends FinnishCustomizer {
public FinnishQwertyCustomizer(final Locale locale) {
super(locale);
}
FinnishQwertyCustomizer(final Locale locale) { super(locale); }
@Override
protected void setNordicKeys(final ExpectedKeyboardBuilder builder) {

View File

@ -20,8 +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.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.customizer.FrenchCustomizer.FrenchEuroCustomizer;
import java.util.Locale;
@ -35,21 +34,4 @@ public final class TestsFrench extends LayoutTestsBase {
@Override
LayoutBase getLayout() { return LAYOUT; }
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 final ExpectedKey[] getOtherCurrencyKeys() {
return mEuroCustomizer.getOtherCurrencyKeys();
}
}
}
}

View File

@ -20,6 +20,7 @@ import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.Qwerty;
import com.android.inputmethod.keyboard.layout.customizer.FrenchCustomizer;
import java.util.Locale;

View File

@ -20,6 +20,7 @@ import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.Swiss;
import com.android.inputmethod.keyboard.layout.customizer.FrenchCustomizer;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
@ -36,7 +37,7 @@ public final class TestsFrenchCH extends LayoutTestsBase {
LayoutBase getLayout() { return LAYOUT; }
private static class FrenchCHCustomizer extends FrenchCustomizer {
public FrenchCHCustomizer(final Locale locale) { super(locale); }
FrenchCHCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {

Some files were not shown because too many files have changed in this diff Show More