summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Merger (Role) <noreply-android-build-merger@google.com>2018-11-14 20:07:12 +0000
committerAndroid Build Merger (Role) <noreply-android-build-merger@google.com>2018-11-14 20:07:12 +0000
commitc008f3df63f7aeca4bc71428c9a0f5724a8dc1f9 (patch)
tree712a3c57eba57dc0dc324722c613c0dfbf44ea4b
parent010585fe3c4248ccfa747524a4b437b924030a2f (diff)
parentfa265ed97026e3b8675a2ccbf4035cad6dc1523f (diff)
downloadbase-c008f3df63f7aeca4bc71428c9a0f5724a8dc1f9.tar.gz
[automerger] Select only preinstalled Spell Checker Services am: fa265ed970
Change-Id: I6a0825a14c8b0f38415cccacc315ba84eb88f5b9
-rw-r--r--services/core/java/com/android/server/TextServicesManagerService.java20
1 files changed, 14 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/TextServicesManagerService.java b/services/core/java/com/android/server/TextServicesManagerService.java
index 4b0d4be11b14..14fe6a271434 100644
--- a/services/core/java/com/android/server/TextServicesManagerService.java
+++ b/services/core/java/com/android/server/TextServicesManagerService.java
@@ -183,7 +183,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub {
buildSpellCheckerMapLocked(mContext, mSpellCheckerList, mSpellCheckerMap, mSettings);
SpellCheckerInfo sci = getCurrentSpellChecker(null);
if (sci == null) {
- sci = findAvailSpellCheckerLocked(null);
+ sci = findAvailSystemSpellCheckerLocked(null);
if (sci != null) {
// Set the current spell checker if there is one or more spell checkers
// available. In this case, "sci" is the first one in the available spell
@@ -227,7 +227,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub {
change == PACKAGE_PERMANENT_CHANGE || change == PACKAGE_TEMPORARY_CHANGE
// Package modified
|| isPackageModified(packageName)) {
- sci = findAvailSpellCheckerLocked(packageName);
+ sci = findAvailSystemSpellCheckerLocked(packageName);
if (sci != null) {
setCurrentSpellCheckerLocked(sci.getId());
}
@@ -371,8 +371,16 @@ public class TextServicesManagerService extends ITextServicesManager.Stub {
mSpellCheckerBindGroups.clear();
}
- private SpellCheckerInfo findAvailSpellCheckerLocked(String prefPackage) {
- final int spellCheckersCount = mSpellCheckerList.size();
+ private SpellCheckerInfo findAvailSystemSpellCheckerLocked(String prefPackage) {
+ // Filter the spell checker list to remove spell checker services that are not pre-installed
+ ArrayList<SpellCheckerInfo> spellCheckerList = new ArrayList<>();
+ for (SpellCheckerInfo sci : mSpellCheckerList) {
+ if ((sci.getServiceInfo().applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
+ spellCheckerList.add(sci);
+ }
+ }
+
+ final int spellCheckersCount = spellCheckerList.size();
if (spellCheckersCount == 0) {
Slog.w(TAG, "no available spell checker services found");
return null;
@@ -382,7 +390,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub {
final SpellCheckerInfo sci = mSpellCheckerList.get(i);
if (prefPackage.equals(sci.getPackageName())) {
if (DBG) {
- Slog.d(TAG, "findAvailSpellCheckerLocked: " + sci.getPackageName());
+ Slog.d(TAG, "findAvailSystemSpellCheckerLocked: " + sci.getPackageName());
}
return sci;
}
@@ -396,7 +404,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub {
final ArrayList<Locale> suitableLocales =
InputMethodUtils.getSuitableLocalesForSpellChecker(systemLocal);
if (DBG) {
- Slog.w(TAG, "findAvailSpellCheckerLocked suitableLocales="
+ Slog.w(TAG, "findAvailSystemSpellCheckerLocked suitableLocales="
+ Arrays.toString(suitableLocales.toArray(new Locale[suitableLocales.size()])));
}
final int localeCount = suitableLocales.size();