summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/InputMethodManagerService.java
diff options
context:
space:
mode:
authorSatoshi Kataoka <satok@google.com>2013-02-18 12:54:16 +0900
committerSatoshi Kataoka <satok@google.com>2013-02-18 14:08:07 +0900
commit7f7535fd250a30ff5383b046295db88613fe719a (patch)
tree8f2a02b04040601a47e6dab4744505fc25f219a3 /services/java/com/android/server/InputMethodManagerService.java
parentac838a3ab9d85112576cf2c943930441f62c51d2 (diff)
downloadframeworks_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.java17
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