Update personalized dict only when single subtype is used.

Bug: 12424891
Change-Id: If041d1ab45988dbf9b878ae3367fee0fbc8a8988
This commit is contained in:
Keisuke Kuroyanagi 2014-01-07 18:10:27 +09:00
parent 6d5f9fd3d1
commit 55713e3695
3 changed files with 19 additions and 3 deletions

View file

@ -523,7 +523,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
suggest.close(); suggest.close();
} }
if (currentSettingsValues.mUsePersonalizedDicts) { if (currentSettingsValues.mUsePersonalizedDicts) {
if (mSubtypeSwitcher.isSystemLocaleSameAsLocaleOfAllEnabledSubtypes()) {
PersonalizationDictionarySessionRegistrar.init(this); PersonalizationDictionarySessionRegistrar.init(this);
} else {
PersonalizationDictionarySessionRegistrar.close(this);
}
} else { } else {
PersonalizationHelper.removeAllPersonalizedDictionaries(this); PersonalizationHelper.removeAllPersonalizedDictionaries(this);
PersonalizationDictionarySessionRegistrar.resetAll(this); PersonalizationDictionarySessionRegistrar.resetAll(this);
@ -595,7 +599,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
ResearchLogger.getInstance().onDestroy(); ResearchLogger.getInstance().onDestroy();
} }
unregisterReceiver(mDictionaryPackInstallReceiver); unregisterReceiver(mDictionaryPackInstallReceiver);
PersonalizationDictionarySessionRegistrar.onDestroy(this); PersonalizationDictionarySessionRegistrar.close(this);
LatinImeLogger.commit(); LatinImeLogger.commit();
LatinImeLogger.onDestroy(); LatinImeLogger.onDestroy();
super.onDestroy(); super.onDestroy();

View file

@ -273,6 +273,18 @@ public final class SubtypeSwitcher {
return mNeedsToDisplayLanguage.getValue(); return mNeedsToDisplayLanguage.getValue();
} }
public boolean isSystemLocaleSameAsLocaleOfAllEnabledSubtypes() {
final Locale systemLocale = mResources.getConfiguration().locale;
final List<InputMethodSubtype> enabledSubtypesOfThisIme =
mRichImm.getMyEnabledInputMethodSubtypeList(true);
for (final InputMethodSubtype subtype : enabledSubtypesOfThisIme) {
if (!systemLocale.equals(SubtypeLocaleUtils.getSubtypeLocale(subtype))) {
return false;
}
}
return true;
}
private static InputMethodSubtype sForcedSubtypeForTesting = null; private static InputMethodSubtype sForcedSubtypeForTesting = null;
@UsedForTesting @UsedForTesting
void forceSubtype(final InputMethodSubtype subtype) { void forceSubtype(final InputMethodSubtype subtype) {

View file

@ -35,6 +35,6 @@ public class PersonalizationDictionarySessionRegistrar {
public static void resetAll(final Context context) { public static void resetAll(final Context context) {
} }
public static void onDestroy(final Context context) { public static void close(final Context context) {
} }
} }