diff options
author | Satoshi Kataoka <satok@google.com> | 2013-04-17 16:41:58 +0900 |
---|---|---|
committer | Satoshi Kataoka <satok@google.com> | 2013-05-02 17:53:17 +0900 |
commit | ed1cdb24ba986231629fbfb244ed758fc2add0fc (patch) | |
tree | 1e554ace658ca782c16538d66d0a28a31ec28f2d /services/java/com/android/server/InputMethodManagerService.java | |
parent | 09f3cc2bcca62fea30dc0f22cc120088e9f54728 (diff) | |
download | frameworks_base-ed1cdb24ba986231629fbfb244ed758fc2add0fc.zip frameworks_base-ed1cdb24ba986231629fbfb244ed758fc2add0fc.tar.gz frameworks_base-ed1cdb24ba986231629fbfb244ed758fc2add0fc.tar.bz2 |
Change the initial disabled state of disabled IMEs
Bug: 8365223
This change is a supplement for I77f01c70610d82ce9070d4a
The disabled state of disabled pre-installed imes should be changed
to ENABLED_STATE_DISABLED_UNTIL_USED on boot or user switch.
Change-Id: If8ff1b2b95c36d33148def2ab87bd006aa520cc0
Diffstat (limited to 'services/java/com/android/server/InputMethodManagerService.java')
-rw-r--r-- | services/java/com/android/server/InputMethodManagerService.java | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/services/java/com/android/server/InputMethodManagerService.java b/services/java/com/android/server/InputMethodManagerService.java index f872cc3..1dd5fc6 100644 --- a/services/java/com/android/server/InputMethodManagerService.java +++ b/services/java/com/android/server/InputMethodManagerService.java @@ -705,7 +705,7 @@ public class InputMethodManagerService extends IInputMethodManager.Stub @Override public void onReceive(Context context, Intent intent) { synchronized(mMethodMap) { - checkCurrentLocaleChangedLocked(); + resetStateIfCurrentLocaleChangedLocked(); } } }, filter); @@ -781,7 +781,7 @@ public class InputMethodManagerService extends IInputMethodManager.Stub } } - private void checkCurrentLocaleChangedLocked() { + private void resetStateIfCurrentLocaleChangedLocked() { resetAllInternalStateLocked(true /* updateOnlyWhenLocaleChanged */, true /* resetDefaultImeLocked */); } @@ -791,12 +791,16 @@ public class InputMethodManagerService extends IInputMethodManager.Stub // InputMethodFileManager should be reset when the user is changed mFileManager = new InputMethodFileManager(mMethodMap, newUserId); final String defaultImiId = mSettings.getSelectedInputMethod(); - final boolean needsToResetDefaultIme = TextUtils.isEmpty(defaultImiId); + final boolean initialUserSwitch = TextUtils.isEmpty(defaultImiId); if (DEBUG) { Slog.d(TAG, "Switch user: " + newUserId + " current ime = " + defaultImiId); } resetAllInternalStateLocked(false /* updateOnlyWhenLocaleChanged */, - needsToResetDefaultIme); + initialUserSwitch /* needsToResetDefaultIme */); + if (initialUserSwitch) { + InputMethodUtils.setNonSelectedSystemImesDisabledUntilUsed(mContext.getPackageManager(), + mSettings.getEnabledInputMethodListLocked()); + } } @Override @@ -838,7 +842,10 @@ public class InputMethodManagerService extends IInputMethodManager.Stub !mImeSelectedOnBoot /* resetDefaultEnabledIme */); if (!mImeSelectedOnBoot) { Slog.w(TAG, "Reset the default IME as \"Resource\" is ready here."); - checkCurrentLocaleChangedLocked(); + resetStateIfCurrentLocaleChangedLocked(); + InputMethodUtils.setNonSelectedSystemImesDisabledUntilUsed( + mContext.getPackageManager(), + mSettings.getEnabledInputMethodListLocked()); } mLastSystemLocale = mRes.getConfiguration().locale; try { @@ -1597,6 +1604,10 @@ public class InputMethodManagerService extends IInputMethodManager.Stub mSettings.getCurrentUserId()); if (ai != null && ai.enabledSetting == PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED) { + if (DEBUG) { + Slog.d(TAG, "Update state(" + imm.getId() + + "): DISABLED_UNTIL_USED -> DEFAULT"); + } mIPackageManager.setApplicationEnabledSetting(imm.getPackageName(), PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, PackageManager.DONT_KILL_APP, mSettings.getCurrentUserId(), |