Fix bugs 2218563 and 2176751 - Not properly loading icons, and sometimes marking them as cached when
they're not.
diff --git a/src/com/android/launcher2/AppInfoCache.java b/src/com/android/launcher2/AppInfoCache.java
index f89e3ab..2fdfc28 100644
--- a/src/com/android/launcher2/AppInfoCache.java
+++ b/src/com/android/launcher2/AppInfoCache.java
@@ -169,7 +169,6 @@
 
         application.iconBitmap = Utilities.createAllAppsBitmap(
                 info.activityInfo.loadIcon(packageManager), context);
-        application.filtered = true;
 
         application.titleBitmap = bubble.createTextBitmap(application.title.toString());
     }
diff --git a/src/com/android/launcher2/ApplicationsAdapter.java b/src/com/android/launcher2/ApplicationsAdapter.java
index 489f546..129103a 100644
--- a/src/com/android/launcher2/ApplicationsAdapter.java
+++ b/src/com/android/launcher2/ApplicationsAdapter.java
@@ -17,6 +17,7 @@
 package com.android.launcher2;
 
 import android.content.Context;
+import android.content.pm.PackageManager;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -30,9 +31,11 @@
  */
 public class ApplicationsAdapter  extends ArrayAdapter<ApplicationInfo> {
     private final LayoutInflater mInflater;
+    private final PackageManager mPackageManager;
 
     public ApplicationsAdapter(Context context, ArrayList<ApplicationInfo> apps) {
         super(context, 0, apps);
+        mPackageManager = context.getPackageManager();
         mInflater = LayoutInflater.from(context);
     }
 
@@ -44,6 +47,9 @@
             convertView = mInflater.inflate(R.layout.application_boxed, parent, false);
         }
 
+        if (info.icon == null) {
+            info.icon = AppInfoCache.getIconDrawable(mPackageManager, info);
+        }
         if (!info.filtered) {
             info.icon = Utilities.createIconThumbnail(info.icon, getContext());
             info.filtered = true;