Filter some non-market apps
authorsrowen <srowen@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Mon, 23 Nov 2009 15:26:33 +0000 (15:26 +0000)
committersrowen <srowen@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Mon, 23 Nov 2009 15:26:33 +0000 (15:26 +0000)
git-svn-id: http://zxing.googlecode.com/svn/trunk@1124 59b500cc-1b3d-0410-9834-0bbf25fbcc57

android/src/com/google/zxing/client/android/share/LoadPackagesAsyncTask.java

index 4033048..adb5a40 100644 (file)
@@ -43,7 +43,10 @@ final class LoadPackagesAsyncTask extends AsyncTask<List<String[]>,Void,List<Str
     for (ApplicationInfo appInfo : appInfos) {
       CharSequence label = appInfo.loadLabel(packageManager);
       if (label != null) {
-        labelsPackages.add(new String[]{label.toString(), appInfo.packageName});
+        String packageName = appInfo.packageName;
+        if (!isHidden(packageName)) {
+          labelsPackages.add(new String[]{label.toString(), packageName});
+        }
       }
     }
     Collections.sort(labelsPackages, new Comparator<String[]>() {
@@ -54,6 +57,13 @@ final class LoadPackagesAsyncTask extends AsyncTask<List<String[]>,Void,List<Str
     return labelsPackages;
   }
 
+  private static boolean isHidden(String packageName) {
+    return packageName == null ||
+        packageName.startsWith("com.android.") ||
+        (packageName.startsWith("com.google.android.") &&
+         !packageName.startsWith("com.google.android.apps."));
+  }
+
   @Override
   protected void onPostExecute(List<String[]> results) {
     List<String> labels = new ArrayList<String>(results.size());