diff options
author | Satoshi Kataoka <satok@google.com> | 2013-02-18 12:54:16 +0900 |
---|---|---|
committer | Satoshi Kataoka <satok@google.com> | 2013-02-18 14:08:07 +0900 |
commit | 7f7535fd250a30ff5383b046295db88613fe719a (patch) | |
tree | 8f2a02b04040601a47e6dab4744505fc25f219a3 /services/java/com/android/server/InputMethodManagerService.java | |
parent | ac838a3ab9d85112576cf2c943930441f62c51d2 (diff) | |
download | frameworks_base-7f7535fd250a30ff5383b046295db88613fe719a.zip frameworks_base-7f7535fd250a30ff5383b046295db88613fe719a.tar.gz frameworks_base-7f7535fd250a30ff5383b046295db88613fe719a.tar.bz2 |
Fix an issue where voice input is not enabled by default for the secondary user
Bug: 8205725
Change-Id: I438daf996ba48cdb34f0a6158a0cbb510aae931b
Diffstat (limited to 'services/java/com/android/server/InputMethodManagerService.java')
-rw-r--r-- | services/java/com/android/server/InputMethodManagerService.java | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/services/java/com/android/server/InputMethodManagerService.java b/services/java/com/android/server/InputMethodManagerService.java index 1a8641b..6ba5cff 100644 --- a/services/java/com/android/server/InputMethodManagerService.java +++ b/services/java/com/android/server/InputMethodManagerService.java @@ -731,7 +731,8 @@ public class InputMethodManagerService extends IInputMethodManager.Stub } } - private void resetAllInternalStateLocked(final boolean updateOnlyWhenLocaleChanged) { + private void resetAllInternalStateLocked(final boolean updateOnlyWhenLocaleChanged, + final boolean resetDefaultEnabledIme) { if (!mSystemReady) { // not system ready return; @@ -749,8 +750,7 @@ public class InputMethodManagerService extends IInputMethodManager.Stub } // InputMethodAndSubtypeListManager should be reset when the locale is changed. mImListManager = new InputMethodAndSubtypeListManager(mContext, this); - buildInputMethodListLocked(mMethodList, mMethodMap, - updateOnlyWhenLocaleChanged /* resetDefaultEnabledIme */); + buildInputMethodListLocked(mMethodList, mMethodMap, resetDefaultEnabledIme); if (!updateOnlyWhenLocaleChanged) { final String selectedImiId = mSettings.getSelectedInputMethod(); if (TextUtils.isEmpty(selectedImiId)) { @@ -775,14 +775,21 @@ public class InputMethodManagerService extends IInputMethodManager.Stub } private void checkCurrentLocaleChangedLocked() { - resetAllInternalStateLocked(true); + resetAllInternalStateLocked(true /* updateOnlyWhenLocaleChanged */, + true /* resetDefaultImeLocked */); } private void switchUserLocked(int newUserId) { mSettings.setCurrentUserId(newUserId); // InputMethodFileManager should be reset when the user is changed mFileManager = new InputMethodFileManager(mMethodMap, newUserId); - resetAllInternalStateLocked(false); + final String defaultImiId = mSettings.getSelectedInputMethod(); + final boolean needsToResetDefaultIme = TextUtils.isEmpty(defaultImiId); + if (DEBUG) { + Slog.d(TAG, "Switch user: " + newUserId + " current ime = " + defaultImiId); + } + resetAllInternalStateLocked(false /* updateOnlyWhenLocaleChanged */, + needsToResetDefaultIme); } @Override |