summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/inputmethod/InputMethodUtils.java71
-rw-r--r--services/core/java/com/android/server/InputMethodManagerService.java8
2 files changed, 12 insertions, 67 deletions
diff --git a/core/java/com/android/internal/inputmethod/InputMethodUtils.java b/core/java/com/android/internal/inputmethod/InputMethodUtils.java
index 29326d3a02f1..57fcf5787356 100644
--- a/core/java/com/android/internal/inputmethod/InputMethodUtils.java
+++ b/core/java/com/android/internal/inputmethod/InputMethodUtils.java
@@ -120,18 +120,6 @@ public class InputMethodUtils {
& ApplicationInfo.FLAG_SYSTEM) != 0;
}
- /**
- * @deprecated Use {@link #isSystemImeThatHasSubtypeOf(InputMethodInfo, Context, boolean,
- * Locale, boolean, String)} instead.
- */
- @Deprecated
- public static boolean isSystemImeThatHasEnglishKeyboardSubtype(InputMethodInfo imi) {
- if (!isSystemIme(imi)) {
- return false;
- }
- return containsSubtypeOf(imi, ENGLISH_LOCALE.getLanguage(), SUBTYPE_MODE_KEYBOARD);
- }
-
public static boolean isSystemImeThatHasSubtypeOf(final InputMethodInfo imi,
final Context context, final boolean checkDefaultAttribute,
@Nullable final Locale requiredLocale, final boolean checkCountry,
@@ -382,35 +370,6 @@ public class InputMethodUtils {
.build();
}
- /**
- * @deprecated Use {@link #isSystemImeThatHasSubtypeOf(InputMethodInfo, Context, boolean,
- * Locale, boolean, String)} instead.
- */
- @Deprecated
- public static boolean isValidSystemDefaultIme(
- boolean isSystemReady, InputMethodInfo imi, Context context) {
- if (!isSystemReady) {
- return false;
- }
- if (!isSystemIme(imi)) {
- return false;
- }
- if (imi.getIsDefaultResourceId() != 0) {
- try {
- if (imi.isDefault(context) && containsSubtypeOf(
- imi, context.getResources().getConfiguration().locale.getLanguage(),
- SUBTYPE_MODE_ANY)) {
- return true;
- }
- } catch (Resources.NotFoundException ex) {
- }
- }
- if (imi.getSubtypeCount() == 0) {
- Slog.w(TAG, "Found no subtypes in a system IME: " + imi.getPackageName());
- }
- return false;
- }
-
public static Locale constructLocaleFromString(String localeStr) {
if (TextUtils.isEmpty(localeStr)) {
return null;
@@ -459,25 +418,6 @@ public class InputMethodUtils {
return false;
}
- /**
- * @deprecated Use {@link #containsSubtypeOf(InputMethodInfo, Locale, boolean, String)} instead.
- */
- @Deprecated
- public static boolean containsSubtypeOf(InputMethodInfo imi, String language, String mode) {
- final int N = imi.getSubtypeCount();
- for (int i = 0; i < N; ++i) {
- final InputMethodSubtype subtype = imi.getSubtypeAt(i);
- if (!subtype.getLocale().startsWith(language)) {
- continue;
- }
- if (mode == SUBTYPE_MODE_ANY || TextUtils.isEmpty(mode) ||
- mode.equalsIgnoreCase(subtype.getMode())) {
- return true;
- }
- }
- return false;
- }
-
public static ArrayList<InputMethodSubtype> getSubtypes(InputMethodInfo imi) {
ArrayList<InputMethodSubtype> subtypes = new ArrayList<InputMethodSubtype>();
final int subtypeCount = imi.getSubtypeCount();
@@ -510,12 +450,15 @@ public class InputMethodUtils {
while (i > 0) {
i--;
final InputMethodInfo imi = enabledImes.get(i);
- if (InputMethodUtils.isSystemImeThatHasEnglishKeyboardSubtype(imi)
- && !imi.isAuxiliaryIme()) {
+ if (imi.isAuxiliaryIme()) {
+ continue;
+ }
+ if (InputMethodUtils.isSystemIme(imi)
+ && containsSubtypeOf(imi, ENGLISH_LOCALE, false /* checkCountry */,
+ SUBTYPE_MODE_KEYBOARD)) {
return imi;
}
- if (firstFoundSystemIme < 0 && InputMethodUtils.isSystemIme(imi)
- && !imi.isAuxiliaryIme()) {
+ if (firstFoundSystemIme < 0 && InputMethodUtils.isSystemIme(imi)) {
firstFoundSystemIme = i;
}
}
diff --git a/services/core/java/com/android/server/InputMethodManagerService.java b/services/core/java/com/android/server/InputMethodManagerService.java
index 4d0868a4ed01..9ec886cbc3f9 100644
--- a/services/core/java/com/android/server/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/InputMethodManagerService.java
@@ -764,9 +764,11 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
InputMethodInfo defIm = null;
for (InputMethodInfo imi : mMethodList) {
- if (defIm == null) {
- if (InputMethodUtils.isValidSystemDefaultIme(
- mSystemReady, imi, context)) {
+ if (defIm == null && mSystemReady) {
+ final Locale systemLocale = context.getResources().getConfiguration().locale;
+ if (InputMethodUtils.isSystemImeThatHasSubtypeOf(imi, context,
+ true /* checkDefaultAttribute */, systemLocale, false /* checkCountry */,
+ InputMethodUtils.SUBTYPE_MODE_ANY)) {
defIm = imi;
Slog.i(TAG, "Selected default: " + imi.getId());
}