summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2013-02-25 20:38:25 -0800
committernicolasroard <nicolasroard@google.com>2013-02-25 20:38:38 -0800
commit5a8f86ddfe3030af349bce1c4a3b48835f0156e1 (patch)
tree87b375ac981cf9030fb9f27ecfade679e4691c48
parent02ef5ba117462eda524820b6004f84d26b28f647 (diff)
downloadandroid_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
-rw-r--r--src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java3
-rw-r--r--src/com/android/gallery3d/filtershow/cache/ImageLoader.java5
-rw-r--r--src/com/android/gallery3d/filtershow/presets/ImagePreset.java3
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) {