diff options
author | Android Build Merger (Role) <noreply-android-build-merger@google.com> | 2018-11-14 20:07:32 +0000 |
---|---|---|
committer | Android Build Merger (Role) <noreply-android-build-merger@google.com> | 2018-11-14 20:07:32 +0000 |
commit | 6bd38ca2aa06ea824e95bcf5f011b744b2c9af37 (patch) | |
tree | 1029898292eb0c771778133147b91fcefcc2e10a | |
parent | 1af0547930bb2f4c5853dc326397d6285eb888a3 (diff) | |
parent | 6e652225ad7ca8bf5fba16264ca626c12adc12d4 (diff) | |
download | base-6bd38ca2aa06ea824e95bcf5f011b744b2c9af37.tar.gz |
[automerger] Select only preinstalled Spell Checker Services am: fa265ed970 am: c008f3df63 am: 8df481923f am: 6e652225ad
Change-Id: Iece38d8723b40e22f86f4aa599d42dbf9a2fcbab
-rw-r--r-- | services/core/java/com/android/server/TextServicesManagerService.java | 20 |
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 4f02a23d1e76..3273e7ef52f3 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(); |