aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/RichInputMethodManager.java
diff options
context:
space:
mode:
authorYohei Yukawa <yukawa@google.com>2014-07-04 16:36:54 +0900
committerYohei Yukawa <yukawa@google.com>2014-07-04 20:50:00 +0900
commit052ec62abd577182af8d5b50564d8075b18be3c9 (patch)
tree78e6e703b1b4ce155ff804cd73f518cdd465f871 /java/src/com/android/inputmethod/latin/RichInputMethodManager.java
parent3895d7f8dc2e4999947f61220b86fa148f433413 (diff)
downloadlatinime-052ec62abd577182af8d5b50564d8075b18be3c9.tar.gz
latinime-052ec62abd577182af8d5b50564d8075b18be3c9.tar.xz
latinime-052ec62abd577182af8d5b50564d8075b18be3c9.zip
Restore additional subtypes when the package is updated
With this CL, Intent#ACTION_MY_PACKAGE_REPLACED will not only update the visibility of the setup activity but also reconstruct additional subtypes. This is important because the system always removes all the additional subtypes whenever the package is updated. BUG: 15890448 Change-Id: Ic36ea68f50b1ac89b4cbd268ee53f9a5e5d60afd
Diffstat (limited to 'java/src/com/android/inputmethod/latin/RichInputMethodManager.java')
-rw-r--r--java/src/com/android/inputmethod/latin/RichInputMethodManager.java16
1 files changed, 10 insertions, 6 deletions
diff --git a/java/src/com/android/inputmethod/latin/RichInputMethodManager.java b/java/src/com/android/inputmethod/latin/RichInputMethodManager.java
index 7758ac78e..7cf4eff92 100644
--- a/java/src/com/android/inputmethod/latin/RichInputMethodManager.java
+++ b/java/src/com/android/inputmethod/latin/RichInputMethodManager.java
@@ -64,8 +64,7 @@ public final class RichInputMethodManager {
}
public static void init(final Context context) {
- final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
- sInstance.initInternal(context, prefs);
+ sInstance.initInternal(context);
}
private boolean isInitialized() {
@@ -78,7 +77,7 @@ public final class RichInputMethodManager {
}
}
- private void initInternal(final Context context, final SharedPreferences prefs) {
+ private void initInternal(final Context context) {
if (isInitialized()) {
return;
}
@@ -88,11 +87,16 @@ public final class RichInputMethodManager {
// Initialize additional subtypes.
SubtypeLocaleUtils.init(context);
+ final InputMethodSubtype[] additionalSubtypes = getAdditionalSubtypes(context);
+ setAdditionalInputMethodSubtypes(additionalSubtypes);
+ }
+
+ public InputMethodSubtype[] getAdditionalSubtypes(final Context context) {
+ SubtypeLocaleUtils.init(context);
+ final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
final String prefAdditionalSubtypes = Settings.readPrefAdditionalSubtypes(
prefs, context.getResources());
- final InputMethodSubtype[] additionalSubtypes =
- AdditionalSubtypeUtils.createAdditionalSubtypesArray(prefAdditionalSubtypes);
- setAdditionalInputMethodSubtypes(additionalSubtypes);
+ return AdditionalSubtypeUtils.createAdditionalSubtypesArray(prefAdditionalSubtypes);
}
public InputMethodManager getInputMethodManager() {