From 63a1b0cefef3c27d3b5b062dfaf36501aff44d56 Mon Sep 17 00:00:00 2001 From: Kristian Monsen Date: Wed, 9 Mar 2011 13:54:54 +0000 Subject: [PATCH] Fix for bug 4064291 WebView uses PackageManager#getInstalledApps Checking each app if they exist instead of iterating through all packages. Change-Id: Ic4934fa1e8dbbab2f90134e3701d39b1d4739d83 --- core/java/android/webkit/WebView.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 705eefc2d8a38..7bf61aba36153 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -1127,10 +1127,13 @@ public class WebView extends AbsoluteLayout protected Set doInBackground(Void... unused) { Set installedPackages = new HashSet(); PackageManager pm = mContext.getPackageManager(); - List 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;