summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/inputmethod/InputMethodManagerService.java30
-rw-r--r--services/core/java/com/android/server/inputmethod/InputMethodSettings.java7
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