Merge "Enabling setWallpaper button only if the image was loaded successfully" into ub-launcher3-burnaby
diff --git a/WallpaperPicker/src/com/android/launcher3/WallpaperCropActivity.java b/WallpaperPicker/src/com/android/launcher3/WallpaperCropActivity.java
index ee0d8b0..f2bb509 100644
--- a/WallpaperPicker/src/com/android/launcher3/WallpaperCropActivity.java
+++ b/WallpaperPicker/src/com/android/launcher3/WallpaperCropActivity.java
@@ -263,6 +263,7 @@
         if (req.postExecute != null) {
             req.postExecute.run();
         }
+        mProgressView.setVisibility(View.GONE);
     }
 
     public final void setCropViewTileSource(BitmapSource bitmapSource, boolean touchEnabled,
diff --git a/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java b/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java
index 72cb194..3f90203 100644
--- a/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java
+++ b/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java
@@ -196,13 +196,15 @@
         @Override
         public void onClick(final WallpaperPickerActivity a) {
             a.setWallpaperButtonEnabled(false);
-            BitmapRegionTileSource.UriBitmapSource bitmapSource =
+            final BitmapRegionTileSource.UriBitmapSource bitmapSource =
                     new BitmapRegionTileSource.UriBitmapSource(a.getContext(), Uri.fromFile(mFile));
             a.setCropViewTileSource(bitmapSource, false, true, null, new Runnable() {
 
                 @Override
                 public void run() {
-                    a.setWallpaperButtonEnabled(true);
+                    if (bitmapSource.getLoadingState() == BitmapSource.State.LOADED) { 
+                        a.setWallpaperButtonEnabled(true);
+                    }
                 }
             });
         }
@@ -232,7 +234,7 @@
         @Override
         public void onClick(final WallpaperPickerActivity a) {
             a.setWallpaperButtonEnabled(false);
-            BitmapRegionTileSource.ResourceBitmapSource bitmapSource =
+            final BitmapRegionTileSource.ResourceBitmapSource bitmapSource =
                     new BitmapRegionTileSource.ResourceBitmapSource(mResources, mResId);
             a.setCropViewTileSource(bitmapSource, false, false, new CropViewScaleProvider() {
 
@@ -249,7 +251,9 @@
 
                 @Override
                 public void run() {
-                    a.setWallpaperButtonEnabled(true);
+                    if (bitmapSource.getLoadingState() == BitmapSource.State.LOADED) {
+                        a.setWallpaperButtonEnabled(true);
+                    }
                 }
             });
         }