OSDN Git Service

Fix when we cannot load an image
authornicolasroard <nicolasroard@google.com>
Tue, 16 Oct 2012 21:25:09 +0000 (14:25 -0700)
committernicolasroard <nicolasroard@google.com>
Tue, 16 Oct 2012 21:25:09 +0000 (14:25 -0700)
bug:7321636
Change-Id: I82cd603d531a1b743737a7c5b65005d370f2cdb1

src/com/android/gallery3d/filtershow/FilterShowActivity.java
src/com/android/gallery3d/filtershow/cache/ImageLoader.java

index abbd596..f76179d 100644 (file)
@@ -31,6 +31,7 @@ import android.widget.ListView;
 import android.widget.SeekBar;
 import android.widget.ShareActionProvider;
 import android.widget.ShareActionProvider.OnShareTargetSelectedListener;
+import android.widget.Toast;
 
 import com.android.gallery3d.R;
 import com.android.gallery3d.filtershow.cache.ImageLoader;
@@ -145,7 +146,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
             }
         });
 
-        mImageLoader = new ImageLoader(getApplicationContext());
+        mImageLoader = new ImageLoader(this, getApplicationContext());
 
         LinearLayout listFilters = (LinearLayout) findViewById(R.id.listFilters);
         LinearLayout listBorders = (LinearLayout) findViewById(R.id.listBorders);
@@ -729,6 +730,14 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
             finish();
         }
     }
+
+    public void cannotLoadImage() {
+        CharSequence text = getString(R.string.cannot_load_image);
+        Toast toast = Toast.makeText(this, text, Toast.LENGTH_SHORT);
+        toast.show();
+        finish();
+    }
+
     // //////////////////////////////////////////////////////////////////////////////
 
     public float getPixelsFromDip(float value) {
index 3fabc44..eeba4da 100644 (file)
@@ -49,6 +49,8 @@ public class ImageLoader {
     private int mOrientation = 0;
     private HistoryAdapter mAdapter = null;
 
+    private FilterShowActivity mActivity = null;
+
     private static final int ORI_NORMAL     = ExifInterface.ORIENTATION_NORMAL;
     private static final int ORI_ROTATE_90  = ExifInterface.ORIENTATION_ROTATE_90;
     private static final int ORI_ROTATE_180 = ExifInterface.ORIENTATION_ROTATE_180;
@@ -63,7 +65,8 @@ public class ImageLoader {
 
     private Rect mOriginalBounds = null;
 
-    public ImageLoader(Context context) {
+    public ImageLoader(FilterShowActivity activity, Context context) {
+        mActivity = activity;
         mContext = context;
         mCache = new DelayedPresetCache(this, 30);
         mHiresCache = new DelayedPresetCache(this, 2);
@@ -74,6 +77,10 @@ public class ImageLoader {
         mOrientation = getOrientation(uri);
 
         mOriginalBitmapSmall = loadScaledBitmap(uri, 160);
+        if (mOriginalBitmapSmall == null) {
+            // Couldn't read the bitmap, let's exit
+            mActivity.cannotLoadImage();
+        }
         mOriginalBitmapLarge = loadScaledBitmap(uri, size);
         updateBitmaps();
     }