diff options
author | nicolasroard <nicolasroard@google.com> | 2013-02-25 20:38:25 -0800 |
---|---|---|
committer | nicolasroard <nicolasroard@google.com> | 2013-02-25 20:38:38 -0800 |
commit | 5a8f86ddfe3030af349bce1c4a3b48835f0156e1 (patch) | |
tree | 87b375ac981cf9030fb9f27ecfade679e4691c48 | |
parent | 02ef5ba117462eda524820b6004f84d26b28f647 (diff) | |
download | android_packages_apps_Snap-5a8f86ddfe3030af349bce1c4a3b48835f0156e1.tar.gz android_packages_apps_Snap-5a8f86ddfe3030af349bce1c4a3b48835f0156e1.tar.bz2 android_packages_apps_Snap-5a8f86ddfe3030af349bce1c4a3b48835f0156e1.zip |
Fix crash on applying borders
bug:8265497
Change-Id: I7e6b22cb7666fd3876119051552e34e91df894a2
3 files changed, 8 insertions, 3 deletions
diff --git a/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java b/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java index 0af406316..0e735bfa9 100644 --- a/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java +++ b/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java @@ -250,7 +250,8 @@ public class FilteringPipeline implements Handler.Callback { setPresetParameters(preset); if (request.getType() == RenderingRequest.PARTIAL_RENDERING) { - bitmap = MasterImage.getImage().getImageLoader().getScaleOneImageForPreset(null, preset, request.getBounds(), request.getDestination(), false); + bitmap = MasterImage.getImage().getImageLoader().getScaleOneImageForPreset(null, preset, + request.getBounds(), request.getDestination(), false); if (bitmap == null) { return; } diff --git a/src/com/android/gallery3d/filtershow/cache/ImageLoader.java b/src/com/android/gallery3d/filtershow/cache/ImageLoader.java index b502a2ffe..b5ed9eee0 100644 --- a/src/com/android/gallery3d/filtershow/cache/ImageLoader.java +++ b/src/com/android/gallery3d/filtershow/cache/ImageLoader.java @@ -315,6 +315,7 @@ public class ImageLoader { // decode with inSampleSize BitmapFactory.Options o2 = new BitmapFactory.Options(); o2.inSampleSize = scale; + o2.inMutable = true; Utils.closeSilently(is); is = mContext.getContentResolver().openInputStream(uri); @@ -376,9 +377,9 @@ public class ImageLoader { mLoadingLock.lock(); Bitmap bmp = mZoomCache.getImage(imagePreset, bounds); if (force || bmp == null) { - BitmapFactory.Options options = null; + BitmapFactory.Options options = new BitmapFactory.Options(); + options.inMutable = true; if (destination != null) { - options = new BitmapFactory.Options(); if (bounds.width() > destination.width()) { int sampleSize = 1; int w = bounds.width(); diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java index ae5a03414..752f72dcb 100644 --- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java +++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java @@ -428,6 +428,9 @@ public class ImagePreset { if (mGeoData.hasModifications()) { return false; } + if (mBorder != null && !mBorder.supportsPartialRendering()) { + return false; + } for (int i = 0; i < mFilters.size(); i++) { FilterRepresentation representation = null; synchronized (mFilters) { |