Fix for bug 4064291 WebView uses PackageManager#getInstalledApps

Checking each app if they exist instead of iterating through
all packages.

Change-Id: Ic4934fa1e8dbbab2f90134e3701d39b1d4739d83
This commit is contained in:
Kristian Monsen
2011-03-09 13:54:54 +00:00
parent 3de30a4c1e
commit 63a1b0cefe

View File

@@ -1127,10 +1127,13 @@ public class WebView extends AbsoluteLayout
protected Set<String> doInBackground(Void... unused) {
Set<String> installedPackages = new HashSet<String>();
PackageManager pm = mContext.getPackageManager();
List<PackageInfo> packages = pm.getInstalledPackages(0);
for (PackageInfo p : packages) {
if (sGoogleApps.contains(p.packageName)) {
installedPackages.add(p.packageName);
for (String name : sGoogleApps) {
try {
PackageInfo pInfo = pm.getPackageInfo(name,
PackageManager.GET_ACTIVITIES | PackageManager.GET_SERVICES);
installedPackages.add(name);
} catch(PackageManager.NameNotFoundException e) {
// package not found
}
}
return installedPackages;