diff options
| -rw-r--r-- | services/core/java/com/android/server/inputmethod/InputMethodManagerService.java | 30 | ||||
| -rw-r--r-- | services/core/java/com/android/server/inputmethod/InputMethodSettings.java | 7 |
2 files changed, 8 insertions, 29 deletions
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java index cb00e44f09a9..fff4939a5e0f 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java @@ -3185,24 +3185,6 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub } } } - - if (mDeviceIdToShowIme == DEVICE_ID_DEFAULT) { - String ime = SecureSettingsWrapper.getString( - Settings.Secure.DEFAULT_INPUT_METHOD, null, mSettings.getUserId()); - String defaultDeviceIme = SecureSettingsWrapper.getString( - Settings.Secure.DEFAULT_DEVICE_INPUT_METHOD, null, mSettings.getUserId()); - if (defaultDeviceIme != null && !Objects.equals(ime, defaultDeviceIme)) { - if (DEBUG) { - Slog.v(TAG, "Current input method " + ime + " differs from the stored default" - + " device input method for user " + mSettings.getUserId() - + " - restoring " + defaultDeviceIme); - } - SecureSettingsWrapper.putString( - Settings.Secure.DEFAULT_INPUT_METHOD, defaultDeviceIme, - mSettings.getUserId()); - } - } - // We are assuming that whoever is changing DEFAULT_INPUT_METHOD and // ENABLED_INPUT_METHODS is taking care of keeping them correctly in // sync, so we will never have a DEFAULT_INPUT_METHOD that is not @@ -5388,11 +5370,7 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub if (!setSubtypeOnly) { // Set InputMethod here - final String imeId = imi != null ? imi.getId() : ""; - mSettings.putSelectedInputMethod(imeId); - if (mDeviceIdToShowIme == DEVICE_ID_DEFAULT) { - mSettings.putSelectedDefaultDeviceInputMethod(imeId); - } + mSettings.putSelectedInputMethod(imi != null ? imi.getId() : ""); } } @@ -5535,9 +5513,6 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub return false; // IME is not found or not enabled. } settings.putSelectedInputMethod(imeId); - if (mDeviceIdToShowIme == DEVICE_ID_DEFAULT) { - settings.putSelectedDefaultDeviceInputMethod(imeId); - } settings.putSelectedSubtype(NOT_A_SUBTYPE_ID); return true; } @@ -6584,9 +6559,6 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub // Reset selected IME. settings.putSelectedInputMethod(nextIme); - if (mDeviceIdToShowIme == DEVICE_ID_DEFAULT) { - settings.putSelectedDefaultDeviceInputMethod(nextIme); - } settings.putSelectedSubtype(NOT_A_SUBTYPE_ID); } out.println("Reset current and enabled IMEs for user #" + userId); diff --git a/services/core/java/com/android/server/inputmethod/InputMethodSettings.java b/services/core/java/com/android/server/inputmethod/InputMethodSettings.java index e444db1b79e8..a51002be344f 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodSettings.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodSettings.java @@ -36,6 +36,7 @@ import com.android.internal.annotations.VisibleForTesting; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.function.Predicate; /** @@ -87,6 +88,12 @@ final class InputMethodSettings { mMethodMap = methodMap; mMethodList = methodMap.values(); mUserId = userId; + String ime = getSelectedInputMethod(); + String defaultDeviceIme = getSelectedDefaultDeviceInputMethod(); + if (defaultDeviceIme != null && !Objects.equals(ime, defaultDeviceIme)) { + putSelectedInputMethod(defaultDeviceIme); + putSelectedDefaultDeviceInputMethod(null); + } } @AnyThread |