188984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka/* 288984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka * Copyright (C) 2014 The Android Open Source Project 388984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka * 488984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka * Licensed under the Apache License, Version 2.0 (the "License"); 588984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka * you may not use this file except in compliance with the License. 688984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka * You may obtain a copy of the License at 788984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka * 888984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka * http://www.apache.org/licenses/LICENSE-2.0 988984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka * 1088984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka * Unless required by applicable law or agreed to in writing, software 1188984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka * distributed under the License is distributed on an "AS IS" BASIS, 1288984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1388984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka * See the License for the specific language governing permissions and 1488984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka * limitations under the License. 1588984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka */ 1688984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka 1788984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaokapackage com.android.inputmethod.keyboard.action; 1888984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka 1988984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaokaimport android.view.inputmethod.InputMethodSubtype; 2088984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka 2188984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaokaimport com.android.inputmethod.keyboard.KeyboardTheme; 2288984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaokaimport com.android.inputmethod.latin.utils.SubtypeLocaleUtils; 2388984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka 2488984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaokaimport java.util.ArrayList; 2588984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaokaimport java.util.Locale; 2688984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka 2788984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaokaabstract class KlpActionTestsBase extends ActionTestsBase { 2888984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka // Filter a subtype whose name should be displayed using {@link Locale#ROOT}, such like 2988984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka // Hinglish (hi_ZZ) and Serbian-Latn (sr_ZZ). 3088984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka static final SubtypeFilter SUBTYPE_FILTER_NAME_IN_BASE_LOCALE = new SubtypeFilter() { 3188984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka @Override 3288984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka public boolean accept(final InputMethodSubtype subtype) { 3388984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka return Locale.ROOT.equals( 3488984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka SubtypeLocaleUtils.getDisplayLocaleOfSubtypeLocale(subtype.getLocale())); 3588984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka } 3688984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka }; 3788984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka 3888984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka protected ArrayList<InputMethodSubtype> mSubtypesWhoseNameIsDisplayedInItsLocale; 3988984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka 4088984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka @Override 4188984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka protected void setUp() throws Exception { 4288984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka super.setUp(); 4388984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka mSubtypesWhoseNameIsDisplayedInItsLocale = getSubtypesFilteredBy(new SubtypeFilter() { 4488984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka @Override 4588984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka public boolean accept(final InputMethodSubtype subtype) { 4688984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka return !SUBTYPE_FILTER_NAME_IN_BASE_LOCALE.accept(subtype); 4788984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka } 4888984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka }); 4988984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka } 5088984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka 5188984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka @Override 5288984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka protected int getKeyboardThemeForTests() { 5388984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka return KeyboardTheme.THEME_ID_KLP; 5488984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka } 5588984aedae83d15b47a22f2716c8d01b1fa7f4d8Tadashi G. Takaoka} 56