Update personalized dict only when single subtype is used.
Bug: 12424891 Change-Id: If041d1ab45988dbf9b878ae3367fee0fbc8a8988
This commit is contained in:
parent
6d5f9fd3d1
commit
55713e3695
3 changed files with 19 additions and 3 deletions
|
@ -523,7 +523,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
||||||
suggest.close();
|
suggest.close();
|
||||||
}
|
}
|
||||||
if (currentSettingsValues.mUsePersonalizedDicts) {
|
if (currentSettingsValues.mUsePersonalizedDicts) {
|
||||||
PersonalizationDictionarySessionRegistrar.init(this);
|
if (mSubtypeSwitcher.isSystemLocaleSameAsLocaleOfAllEnabledSubtypes()) {
|
||||||
|
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();
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue