Add Suggest initialization finish listener
Bug: 6860204 Change-Id: I1e4c03c99415cd9bdea5a8556ff4093c33f0f508
This commit is contained in:
parent
e095158c79
commit
369e54cc33
2 changed files with 26 additions and 4 deletions
|
@ -82,7 +82,8 @@ import java.util.Locale;
|
|||
* Input method implementation for Qwerty'ish keyboard.
|
||||
*/
|
||||
public class LatinIME extends InputMethodService implements KeyboardActionListener,
|
||||
SuggestionStripView.Listener, TargetApplicationGetter.OnTargetApplicationKnownListener {
|
||||
SuggestionStripView.Listener, TargetApplicationGetter.OnTargetApplicationKnownListener,
|
||||
Suggest.SuggestInitializationListener {
|
||||
private static final String TAG = LatinIME.class.getSimpleName();
|
||||
private static final boolean TRACE = false;
|
||||
private static boolean DEBUG;
|
||||
|
@ -426,6 +427,12 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
resetContactsDictionary(null == mSuggest ? null : mSuggest.getContactsDictionary());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdateMainDictionaryAvailability(boolean isMainDictionaryAvailable) {
|
||||
mIsMainDictionaryAvailable = isMainDictionaryAvailable;
|
||||
// TODO: Update gesture input enable state.
|
||||
}
|
||||
|
||||
private void initSuggest() {
|
||||
final Locale subtypeLocale = mSubtypeSwitcher.getCurrentSubtypeLocale();
|
||||
final String localeStr = subtypeLocale.toString();
|
||||
|
@ -437,7 +444,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
} else {
|
||||
oldContactsDictionary = null;
|
||||
}
|
||||
mSuggest = new Suggest(this, subtypeLocale);
|
||||
mSuggest = new Suggest(this /* Context */, subtypeLocale,
|
||||
this /* SuggestInitializationListener */);
|
||||
if (mCurrentSettings.mCorrectionEnabled) {
|
||||
mSuggest.setAutoCorrectionThreshold(mCurrentSettings.mAutoCorrectionThreshold);
|
||||
}
|
||||
|
|
|
@ -42,6 +42,10 @@ public class Suggest {
|
|||
// TODO: rename this to CORRECTION_ON
|
||||
public static final int CORRECTION_FULL = 1;
|
||||
|
||||
public interface SuggestInitializationListener {
|
||||
public void onUpdateMainDictionaryAvailability(boolean isMainDictionaryAvailable);
|
||||
}
|
||||
|
||||
private static final boolean DBG = LatinImeLogger.sDBG;
|
||||
|
||||
private Dictionary mMainDictionary;
|
||||
|
@ -55,11 +59,14 @@ public class Suggest {
|
|||
private float mAutoCorrectionThreshold;
|
||||
|
||||
// Locale used for upper- and title-casing words
|
||||
final private Locale mLocale;
|
||||
private final Locale mLocale;
|
||||
private final SuggestInitializationListener mListener;
|
||||
|
||||
public Suggest(final Context context, final Locale locale) {
|
||||
public Suggest(final Context context, final Locale locale,
|
||||
final SuggestInitializationListener listener) {
|
||||
initAsynchronously(context, locale);
|
||||
mLocale = locale;
|
||||
mListener = listener;
|
||||
}
|
||||
|
||||
/* package for test */ Suggest(final Context context, final File dictionary,
|
||||
|
@ -67,6 +74,7 @@ public class Suggest {
|
|||
final Dictionary mainDict = DictionaryFactory.createDictionaryForTest(context, dictionary,
|
||||
startOffset, length /* useFullEditDistance */, false, locale);
|
||||
mLocale = locale;
|
||||
mListener = null;
|
||||
mMainDictionary = mainDict;
|
||||
addOrReplaceDictionary(mDictionaries, Dictionary.TYPE_MAIN, mainDict);
|
||||
initWhitelistAndAutocorrectAndPool(context, locale);
|
||||
|
@ -98,6 +106,9 @@ public class Suggest {
|
|||
|
||||
public void resetMainDict(final Context context, final Locale locale) {
|
||||
mMainDictionary = null;
|
||||
if (mListener != null) {
|
||||
mListener.onUpdateMainDictionaryAvailability(hasMainDictionary());
|
||||
}
|
||||
new Thread("InitializeBinaryDictionary") {
|
||||
@Override
|
||||
public void run() {
|
||||
|
@ -105,6 +116,9 @@ public class Suggest {
|
|||
DictionaryFactory.createMainDictionaryFromManager(context, locale);
|
||||
addOrReplaceDictionary(mDictionaries, Dictionary.TYPE_MAIN, newMainDict);
|
||||
mMainDictionary = newMainDict;
|
||||
if (mListener != null) {
|
||||
mListener.onUpdateMainDictionaryAvailability(hasMainDictionary());
|
||||
}
|
||||
}
|
||||
}.start();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue