Move createKeyboardSetForSpellChecker to AndroidSpellCheckService
Change-Id: I4a9065e703e98ffed50f2a6d76ace938dfc26ddfmain
parent
3897a43940
commit
204e7b1401
|
@ -33,7 +33,6 @@ import android.util.Xml;
|
||||||
import android.view.inputmethod.EditorInfo;
|
import android.view.inputmethod.EditorInfo;
|
||||||
import android.view.inputmethod.InputMethodSubtype;
|
import android.view.inputmethod.InputMethodSubtype;
|
||||||
|
|
||||||
import com.android.inputmethod.annotations.UsedForTesting;
|
|
||||||
import com.android.inputmethod.compat.EditorInfoCompatUtils;
|
import com.android.inputmethod.compat.EditorInfoCompatUtils;
|
||||||
import com.android.inputmethod.keyboard.internal.KeyboardBuilder;
|
import com.android.inputmethod.keyboard.internal.KeyboardBuilder;
|
||||||
import com.android.inputmethod.keyboard.internal.KeyboardParams;
|
import com.android.inputmethod.keyboard.internal.KeyboardParams;
|
||||||
|
@ -42,10 +41,8 @@ import com.android.inputmethod.latin.InputAttributes;
|
||||||
import com.android.inputmethod.latin.LatinImeLogger;
|
import com.android.inputmethod.latin.LatinImeLogger;
|
||||||
import com.android.inputmethod.latin.R;
|
import com.android.inputmethod.latin.R;
|
||||||
import com.android.inputmethod.latin.SubtypeSwitcher;
|
import com.android.inputmethod.latin.SubtypeSwitcher;
|
||||||
import com.android.inputmethod.latin.utils.AdditionalSubtypeUtils;
|
|
||||||
import com.android.inputmethod.latin.utils.CollectionUtils;
|
import com.android.inputmethod.latin.utils.CollectionUtils;
|
||||||
import com.android.inputmethod.latin.utils.InputTypeUtils;
|
import com.android.inputmethod.latin.utils.InputTypeUtils;
|
||||||
import com.android.inputmethod.latin.utils.ResourceUtils;
|
|
||||||
import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
|
import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
|
||||||
import com.android.inputmethod.latin.utils.XmlParseUtils;
|
import com.android.inputmethod.latin.utils.XmlParseUtils;
|
||||||
|
|
||||||
|
@ -71,8 +68,6 @@ public final class KeyboardLayoutSet {
|
||||||
private static final String TAG_ELEMENT = "Element";
|
private static final String TAG_ELEMENT = "Element";
|
||||||
|
|
||||||
private static final String KEYBOARD_LAYOUT_SET_RESOURCE_PREFIX = "keyboard_layout_set_";
|
private static final String KEYBOARD_LAYOUT_SET_RESOURCE_PREFIX = "keyboard_layout_set_";
|
||||||
private static final int SPELLCHECKER_DUMMY_KEYBOARD_WIDTH = 480;
|
|
||||||
private static final int SPELLCHECKER_DUMMY_KEYBOARD_HEIGHT = 368;
|
|
||||||
|
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
private final Params mParams;
|
private final Params mParams;
|
||||||
|
@ -407,41 +402,4 @@ public final class KeyboardLayoutSet {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static KeyboardLayoutSet createKeyboardSetForSpellChecker(final Context context,
|
|
||||||
final String locale, final String layout) {
|
|
||||||
final InputMethodSubtype subtype =
|
|
||||||
AdditionalSubtypeUtils.createAdditionalSubtype(locale, layout, null);
|
|
||||||
return createKeyboardSet(context, subtype, SPELLCHECKER_DUMMY_KEYBOARD_WIDTH,
|
|
||||||
SPELLCHECKER_DUMMY_KEYBOARD_HEIGHT, false /* testCasesHaveTouchCoordinates */,
|
|
||||||
true /* isSpellChecker */);
|
|
||||||
}
|
|
||||||
|
|
||||||
@UsedForTesting
|
|
||||||
public static KeyboardLayoutSet createKeyboardSetForTest(final Context context,
|
|
||||||
final InputMethodSubtype subtype, final int orientation,
|
|
||||||
final boolean testCasesHaveTouchCoordinates) {
|
|
||||||
final Resources res = context.getResources();
|
|
||||||
final int keyboardWidth = ResourceUtils.getDefaultKeyboardWidth(res);
|
|
||||||
final int keyboardHeight = ResourceUtils.getDefaultKeyboardHeight(res);
|
|
||||||
return createKeyboardSet(context, subtype, keyboardWidth, keyboardHeight,
|
|
||||||
testCasesHaveTouchCoordinates, false /* isSpellChecker */);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static KeyboardLayoutSet createKeyboardSet(final Context context,
|
|
||||||
final InputMethodSubtype subtype, final int keyboardWidth, final int keyboardHeight,
|
|
||||||
final boolean testCasesHaveTouchCoordinates, final boolean isSpellChecker) {
|
|
||||||
final EditorInfo editorInfo = new EditorInfo();
|
|
||||||
editorInfo.inputType = InputType.TYPE_CLASS_TEXT;
|
|
||||||
final KeyboardLayoutSet.Builder builder = new KeyboardLayoutSet.Builder(
|
|
||||||
context, editorInfo);
|
|
||||||
builder.setKeyboardGeometry(keyboardWidth, keyboardHeight);
|
|
||||||
builder.setSubtype(subtype);
|
|
||||||
builder.setIsSpellChecker(isSpellChecker);
|
|
||||||
if (!testCasesHaveTouchCoordinates) {
|
|
||||||
// For spell checker and tests
|
|
||||||
builder.disableTouchPositionCorrectionData();
|
|
||||||
}
|
|
||||||
return builder.build();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,10 @@ import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.service.textservice.SpellCheckerService;
|
import android.service.textservice.SpellCheckerService;
|
||||||
|
import android.text.InputType;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.view.inputmethod.EditorInfo;
|
||||||
|
import android.view.inputmethod.InputMethodSubtype;
|
||||||
import android.view.textservice.SuggestionsInfo;
|
import android.view.textservice.SuggestionsInfo;
|
||||||
|
|
||||||
import com.android.inputmethod.keyboard.KeyboardLayoutSet;
|
import com.android.inputmethod.keyboard.KeyboardLayoutSet;
|
||||||
|
@ -33,6 +36,7 @@ import com.android.inputmethod.latin.R;
|
||||||
import com.android.inputmethod.latin.SynchronouslyLoadedContactsBinaryDictionary;
|
import com.android.inputmethod.latin.SynchronouslyLoadedContactsBinaryDictionary;
|
||||||
import com.android.inputmethod.latin.SynchronouslyLoadedUserBinaryDictionary;
|
import com.android.inputmethod.latin.SynchronouslyLoadedUserBinaryDictionary;
|
||||||
import com.android.inputmethod.latin.UserBinaryDictionary;
|
import com.android.inputmethod.latin.UserBinaryDictionary;
|
||||||
|
import com.android.inputmethod.latin.utils.AdditionalSubtypeUtils;
|
||||||
import com.android.inputmethod.latin.utils.CollectionUtils;
|
import com.android.inputmethod.latin.utils.CollectionUtils;
|
||||||
import com.android.inputmethod.latin.utils.LocaleUtils;
|
import com.android.inputmethod.latin.utils.LocaleUtils;
|
||||||
import com.android.inputmethod.latin.utils.StringUtils;
|
import com.android.inputmethod.latin.utils.StringUtils;
|
||||||
|
@ -58,6 +62,9 @@ public final class AndroidSpellCheckerService extends SpellCheckerService
|
||||||
|
|
||||||
public static final String PREF_USE_CONTACTS_KEY = "pref_spellcheck_use_contacts";
|
public static final String PREF_USE_CONTACTS_KEY = "pref_spellcheck_use_contacts";
|
||||||
|
|
||||||
|
private static final int SPELLCHECKER_DUMMY_KEYBOARD_WIDTH = 480;
|
||||||
|
private static final int SPELLCHECKER_DUMMY_KEYBOARD_HEIGHT = 368;
|
||||||
|
|
||||||
private final static String[] EMPTY_STRING_ARRAY = new String[0];
|
private final static String[] EMPTY_STRING_ARRAY = new String[0];
|
||||||
private Map<String, DictionaryPool> mDictionaryPools = CollectionUtils.newSynchronizedTreeMap();
|
private Map<String, DictionaryPool> mDictionaryPools = CollectionUtils.newSynchronizedTreeMap();
|
||||||
private Map<String, UserBinaryDictionary> mUserDictionaries =
|
private Map<String, UserBinaryDictionary> mUserDictionaries =
|
||||||
|
@ -401,9 +408,9 @@ public final class AndroidSpellCheckerService extends SpellCheckerService
|
||||||
public DictAndKeyboard createDictAndKeyboard(final Locale locale) {
|
public DictAndKeyboard createDictAndKeyboard(final Locale locale) {
|
||||||
final int script = getScriptFromLocale(locale);
|
final int script = getScriptFromLocale(locale);
|
||||||
final String keyboardLayoutName = getKeyboardLayoutNameForScript(script);
|
final String keyboardLayoutName = getKeyboardLayoutNameForScript(script);
|
||||||
final KeyboardLayoutSet keyboardLayoutSet =
|
final InputMethodSubtype subtype = AdditionalSubtypeUtils.createAdditionalSubtype(
|
||||||
KeyboardLayoutSet.createKeyboardSetForSpellChecker(this, locale.toString(),
|
locale.toString(), keyboardLayoutName, null);
|
||||||
keyboardLayoutName);
|
final KeyboardLayoutSet keyboardLayoutSet = createKeyboardSetForSpellChecker(subtype);
|
||||||
|
|
||||||
final DictionaryCollection dictionaryCollection =
|
final DictionaryCollection dictionaryCollection =
|
||||||
DictionaryFactory.createMainDictionaryFromManager(this, locale,
|
DictionaryFactory.createMainDictionaryFromManager(this, locale,
|
||||||
|
@ -431,4 +438,16 @@ public final class AndroidSpellCheckerService extends SpellCheckerService
|
||||||
}
|
}
|
||||||
return new DictAndKeyboard(dictionaryCollection, keyboardLayoutSet);
|
return new DictAndKeyboard(dictionaryCollection, keyboardLayoutSet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private KeyboardLayoutSet createKeyboardSetForSpellChecker(final InputMethodSubtype subtype) {
|
||||||
|
final EditorInfo editorInfo = new EditorInfo();
|
||||||
|
editorInfo.inputType = InputType.TYPE_CLASS_TEXT;
|
||||||
|
final KeyboardLayoutSet.Builder builder = new KeyboardLayoutSet.Builder(this, editorInfo);
|
||||||
|
builder.setKeyboardGeometry(
|
||||||
|
SPELLCHECKER_DUMMY_KEYBOARD_WIDTH, SPELLCHECKER_DUMMY_KEYBOARD_HEIGHT);
|
||||||
|
builder.setSubtype(subtype);
|
||||||
|
builder.setIsSpellChecker(true /* isSpellChecker */);
|
||||||
|
builder.disableTouchPositionCorrectionData();
|
||||||
|
return builder.build();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue