In the WidgetChooser, show the widget preview (if available) rather than the icon

Change-Id: I4d4ef7f31027e198b2f215f3e2d91da41e6ae99e
diff --git a/src/com/android/launcher2/WidgetGalleryAdapter.java b/src/com/android/launcher2/WidgetGalleryAdapter.java
index d6272d4..bdb3551 100644
--- a/src/com/android/launcher2/WidgetGalleryAdapter.java
+++ b/src/com/android/launcher2/WidgetGalleryAdapter.java
@@ -23,6 +23,7 @@
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.graphics.drawable.Drawable;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -35,6 +36,7 @@
     private LayoutInflater mLayoutInflater;
     private PackageManager mPackageManager;
     private List<AppWidgetProviderInfo> mWidgets;
+    private static final String TAG = "Launcher.WidgetGalleryAdapter";
 
     WidgetGalleryAdapter(Context context) {
         mLayoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
@@ -65,8 +67,19 @@
         }
 
         AppWidgetProviderInfo info = mWidgets.get(position);
-        Drawable drawable = mPackageManager.getDrawable(info.provider.getPackageName(), info.icon, null);
-        imageView.setImageDrawable(drawable);
+        Drawable image = null;
+        if (info.previewImage != 0) {
+            image = mPackageManager.getDrawable(
+                    info.provider.getPackageName(), info.previewImage, null);
+            if (image == null) {
+                Log.w(TAG, "Can't load icon drawable 0x" + Integer.toHexString(info.icon)
+                        + " for provider: " + info.provider);
+            }
+        }
+        if (image == null) {
+            image = mPackageManager.getDrawable(info.provider.getPackageName(), info.icon, null);
+        }
+        imageView.setImageDrawable(image);
 
         return imageView;
     }