diff options
author | Amith Yamasani <yamasani@google.com> | 2009-11-11 15:22:37 -0800 |
---|---|---|
committer | Amith Yamasani <yamasani@google.com> | 2009-11-11 19:03:09 -0800 |
commit | f6b384045db92e1a47fa1135405e5618f4bf8d24 (patch) | |
tree | 795bee8aaef984fe02273be502411d9a92852b26 /src/com | |
parent | 7ceb387ee601655ba72264646e3d8ecf2d74c138 (diff) | |
download | packages_apps_settings-f6b384045db92e1a47fa1135405e5618f4bf8d24.zip packages_apps_settings-f6b384045db92e1a47fa1135405e5618f4bf8d24.tar.gz packages_apps_settings-f6b384045db92e1a47fa1135405e5618f4bf8d24.tar.bz2 |
Fix for NPE in #2248683
Also fix a problem in type-to-filter. It was looking for substring match
instead of searching on word boundaries. It will now search by word
boundaries (separated by space).
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/settings/ManageApplications.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/com/android/settings/ManageApplications.java b/src/com/android/settings/ManageApplications.java index a71d17b..9cd6e23 100644 --- a/src/com/android/settings/ManageApplications.java +++ b/src/com/android/settings/ManageApplications.java @@ -1403,13 +1403,17 @@ public class ManageApplications extends ListActivity implements } } else { final String prefixString = prefix.toString().toLowerCase(); + final String spacePrefixString = " " + prefixString; Map<String, String> newMap = new HashMap<String, String>(); synchronized (mFilterLock) { Map<String, String> localMap = mFilterMap; Set<String> keys = mFilterMap.keySet(); for (String key : keys) { String label = localMap.get(key); - if (label.indexOf(prefixString) != -1) { + if (label == null) continue; + label = label.toLowerCase(); + if (label.startsWith(prefixString) + || label.indexOf(spacePrefixString) != -1) { newMap.put(key, label); } } @@ -1895,6 +1899,9 @@ public class ManageApplications extends ListActivity implements public final int compare(ApplicationInfo a, ApplicationInfo b) { AppInfo ainfo = mCache.getEntry(a.packageName); AppInfo binfo = mCache.getEntry(b.packageName); + // Check for null app names, to avoid NPE in rare cases + if (ainfo == null || ainfo.appName == null) return -1; + if (binfo == null || binfo.appName == null) return 1; return sCollator.compare(ainfo.appName.toString(), binfo.appName.toString()); } } |