summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2012-10-08 17:54:25 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-10-08 17:54:25 -0700
commitb2bdbcebe91aa268ab827dd0ae2f4b638ee39b77 (patch)
tree389ff44abb68655ed3569013512bdd28ff651789 /src/com
parentadc9c57eb6cbab40bb8a8d58379ebbeb08fe077a (diff)
parent18ec21bd07b2f9ccf5a76c407303b3dacbb845fd (diff)
downloadandroid_packages_apps_Snap-b2bdbcebe91aa268ab827dd0ae2f4b638ee39b77.tar.gz
android_packages_apps_Snap-b2bdbcebe91aa268ab827dd0ae2f4b638ee39b77.tar.bz2
android_packages_apps_Snap-b2bdbcebe91aa268ab827dd0ae2f4b638ee39b77.zip
Merge "Fix crash introduced with the GeometryMetadata" into gb-ub-photos-arches
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/gallery3d/filtershow/FilterShowActivity.java7
-rw-r--r--src/com/android/gallery3d/filtershow/cache/ImageLoader.java3
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java5
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java13
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageShow.java67
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageZoom.java15
6 files changed, 67 insertions, 43 deletions
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
index 6d61441eb..02ffe75b7 100644
--- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java
+++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
@@ -34,13 +34,13 @@ import com.android.gallery3d.filtershow.filters.ImageFilter;
import com.android.gallery3d.filtershow.filters.ImageFilterBorder;
import com.android.gallery3d.filtershow.filters.ImageFilterRS;
import com.android.gallery3d.filtershow.imageshow.ImageBorder;
+import com.android.gallery3d.filtershow.imageshow.ImageCrop;
+import com.android.gallery3d.filtershow.imageshow.ImageFlip;
+import com.android.gallery3d.filtershow.imageshow.ImageRotate;
import com.android.gallery3d.filtershow.imageshow.ImageShow;
import com.android.gallery3d.filtershow.imageshow.ImageSmallFilter;
import com.android.gallery3d.filtershow.imageshow.ImageStraighten;
import com.android.gallery3d.filtershow.imageshow.ImageZoom;
-import com.android.gallery3d.filtershow.imageshow.ImageFlip;
-import com.android.gallery3d.filtershow.imageshow.ImageCrop;
-import com.android.gallery3d.filtershow.imageshow.ImageRotate;
import com.android.gallery3d.filtershow.presets.ImagePreset;
import com.android.gallery3d.filtershow.presets.ImagePresetBW;
import com.android.gallery3d.filtershow.presets.ImagePresetBWBlue;
@@ -225,6 +225,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
SeekBar seekBar = (SeekBar) findViewById(R.id.filterSeekBar);
seekBar.setMax(200);
mImageShow.setSeekBar(seekBar);
+ mImageZoom.setSeekBar(seekBar);
mPanelController.setRowPanel(findViewById(R.id.secondRowPanel));
mPanelController.setUtilityPanel(this, findViewById(R.id.filterButtonsList),
findViewById(R.id.compareWithOriginalImage),
diff --git a/src/com/android/gallery3d/filtershow/cache/ImageLoader.java b/src/com/android/gallery3d/filtershow/cache/ImageLoader.java
index 8d8024ef8..54d71ad77 100644
--- a/src/com/android/gallery3d/filtershow/cache/ImageLoader.java
+++ b/src/com/android/gallery3d/filtershow/cache/ImageLoader.java
@@ -232,7 +232,10 @@ public class ImageLoader {
if (bmp != null) {
// TODO: this workaround for RS might not be needed ultimately
Bitmap bmp2 = bmp.copy(Bitmap.Config.ARGB_8888, true);
+ float scaleFactor = imagePreset.getScaleFactor();
+ imagePreset.setScaleFactor(1.0f);
bmp2 = imagePreset.apply(bmp2);
+ imagePreset.setScaleFactor(scaleFactor);
mZoomCache.setImage(imagePreset, bounds, bmp2);
return bmp2;
}
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java
index ab92e4e5c..37c5526b6 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java
@@ -21,7 +21,8 @@ public class ImageFilterRS extends ImageFilter {
mOutPixelsAllocation = Allocation.createTyped(mRS, mInPixelsAllocation.getType());
}
- public void createFilter(android.content.res.Resources res) {
+ public void createFilter(android.content.res.Resources res, float scaleFactor,
+ boolean highQuality) {
}
public void runFilter() {
@@ -38,7 +39,7 @@ public class ImageFilterRS extends ImageFilter {
}
try {
prepare(bitmap);
- createFilter(mResources);
+ createFilter(mResources, scaleFactor, highQuality);
runFilter();
update(bitmap);
} catch (android.renderscript.RSIllegalArgumentException e) {
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java
index 3ec7b5f70..d28e40517 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java
@@ -1,12 +1,6 @@
package com.android.gallery3d.filtershow.filters;
-import android.graphics.Bitmap;
-import android.util.Log;
-import android.renderscript.Element;
-import android.renderscript.Script;
-import android.renderscript.ScriptC;
-
import com.android.gallery3d.R;
public class ImageFilterSharpen extends ImageFilterRS {
@@ -18,11 +12,13 @@ public class ImageFilterSharpen extends ImageFilterRS {
mName = "Sharpen";
}
- public void createFilter(android.content.res.Resources res) {
+ @Override
+ public void createFilter(android.content.res.Resources res, float scaleFactor,
+ boolean highQuality) {
int w = mInPixelsAllocation.getType().getX();
int h = mInPixelsAllocation.getType().getY();
- float p1 = mParameter;
+ float p1 = mParameter * scaleFactor;
float value = p1 / 100.0f;
float f[] = new float[9];
float p = value;
@@ -43,6 +39,7 @@ public class ImageFilterSharpen extends ImageFilterRS {
mScript.set_gHeight(h);
}
+ @Override
public void runFilter() {
mScript.set_gIn(mInPixelsAllocation);
mScript.bind_gPixels(mInPixelsAllocation);
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
index d6d3793ce..2c20706a7 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
@@ -60,20 +60,21 @@ public class ImageShow extends View implements SliderListener, OnSeekBarChangeLi
protected Bitmap mForegroundImage = null;
protected Bitmap mFilteredImage = null;
+ private final boolean USE_SLIDER_GESTURE = false; // set to true to have
+ // slider gesture
protected SliderController mSliderController = new SliderController();
private HistoryAdapter mHistoryAdapter = null;
private ImageStateAdapter mImageStateAdapter = null;
- protected GeometryMetadata getGeometry(){
- return new GeometryMetadata(mImagePreset.mGeoData);
+ protected GeometryMetadata getGeometry() {
+ return new GeometryMetadata(getImagePreset().mGeoData);
}
- public void setGeometry(GeometryMetadata d){
- mImagePreset.mGeoData.set(d);
+ public void setGeometry(GeometryMetadata d) {
+ getImagePreset().mGeoData.set(d);
}
-
private boolean mShowControls = false;
private boolean mShowOriginal = false;
private String mToast = null;
@@ -93,6 +94,9 @@ public class ImageShow extends View implements SliderListener, OnSeekBarChangeLi
int parameter = getCurrentFilter().getParameter();
updateSeekBar(parameter);
}
+ if (mSeekBar != null) {
+ mSeekBar.setOnSeekBarChangeListener(this);
+ }
}
public void updateSeekBar(int parameter) {
@@ -112,7 +116,9 @@ public class ImageShow extends View implements SliderListener, OnSeekBarChangeLi
public void resetParameter() {
onNewValue(0);
- mSliderController.reset();
+ if (USE_SLIDER_GESTURE) {
+ mSliderController.reset();
+ }
}
public void setPanelController(PanelController controller) {
@@ -152,7 +158,9 @@ public class ImageShow extends View implements SliderListener, OnSeekBarChangeLi
public ImageShow(Context context, AttributeSet attrs) {
super(context, attrs);
- mSliderController.setListener(this);
+ if (USE_SLIDER_GESTURE) {
+ mSliderController.setListener(this);
+ }
mHistoryAdapter = new HistoryAdapter(context, R.layout.filtershow_history_operation_row,
R.id.rowTextView);
mImageStateAdapter = new ImageStateAdapter(context,
@@ -161,7 +169,9 @@ public class ImageShow extends View implements SliderListener, OnSeekBarChangeLi
public ImageShow(Context context) {
super(context);
- mSliderController.setListener(this);
+ if (USE_SLIDER_GESTURE) {
+ mSliderController.setListener(this);
+ }
mHistoryAdapter = new HistoryAdapter(context, R.layout.filtershow_history_operation_row,
R.id.rowTextView);
}
@@ -171,13 +181,14 @@ public class ImageShow extends View implements SliderListener, OnSeekBarChangeLi
int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
setMeasuredDimension(parentWidth, parentHeight);
- mSliderController.setWidth(parentWidth);
- mSliderController.setHeight(parentHeight);
+ if (USE_SLIDER_GESTURE) {
+ mSliderController.setWidth(parentWidth);
+ mSliderController.setHeight(parentHeight);
+ }
}
public void setSeekBar(SeekBar seekBar) {
mSeekBar = seekBar;
- mSeekBar.setOnSeekBarChangeListener(this);
}
public void setCurrentFilter(ImageFilter filter) {
@@ -213,7 +224,7 @@ public class ImageShow extends View implements SliderListener, OnSeekBarChangeLi
public Rect getImageBounds() {
Rect dst = new Rect();
- mImagePreset.mGeoData.getPhotoBounds().roundOut(dst);
+ getImagePreset().mGeoData.getPhotoBounds().roundOut(dst);
return dst;
}
@@ -273,7 +284,9 @@ public class ImageShow extends View implements SliderListener, OnSeekBarChangeLi
canvas.drawLine(0, 0, getWidth(), 0, mPaint);
if (showControls()) {
- mSliderController.onDraw(canvas);
+ if (USE_SLIDER_GESTURE) {
+ mSliderController.onDraw(canvas);
+ }
}
drawToast(canvas);
@@ -383,11 +396,11 @@ public class ImageShow extends View implements SliderListener, OnSeekBarChangeLi
}
}
- protected void setDirtyGeometryFlag(){
+ protected void setDirtyGeometryFlag() {
mDirtyGeometry = true;
}
- protected void clearDirtyGeometryFlag(){
+ protected void clearDirtyGeometryFlag() {
mDirtyGeometry = false;
}
@@ -396,14 +409,14 @@ public class ImageShow extends View implements SliderListener, OnSeekBarChangeLi
}
private void imageSizeChanged(Bitmap image) {
- if(image == null || mImagePreset == null)
+ if (image == null || getImagePreset() == null)
return;
float w = image.getWidth();
float h = image.getHeight();
RectF r = new RectF(0, 0, w, h);
- RectF c = new RectF(w/4f, h/4f, w * 3/4f, h * 3/4f);
- mImagePreset.mGeoData.setPhotoBounds(r);
- mImagePreset.mGeoData.setCropBounds(c);
+ RectF c = new RectF(w / 4f, h / 4f, w * 3 / 4f, h * 3 / 4f);
+ getImagePreset().mGeoData.setPhotoBounds(r);
+ getImagePreset().mGeoData.setCropBounds(c);
setDirtyGeometryFlag();
}
@@ -423,7 +436,9 @@ public class ImageShow extends View implements SliderListener, OnSeekBarChangeLi
@Override
public boolean onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
- mSliderController.onTouchEvent(event);
+ if (USE_SLIDER_GESTURE) {
+ mSliderController.onTouchEvent(event);
+ }
invalidate();
return true;
}
@@ -450,19 +465,19 @@ public class ImageShow extends View implements SliderListener, OnSeekBarChangeLi
}
public float getImageRotation() {
- return mImagePreset.mGeoData.getRotation();
+ return getImagePreset().mGeoData.getRotation();
}
public float getImageRotationZoomFactor() {
- return mImagePreset.mGeoData.getScaleFactor();
+ return getImagePreset().mGeoData.getScaleFactor();
}
- public void setImageRotation(float r){
- mImagePreset.mGeoData.setRotation(r);
+ public void setImageRotation(float r) {
+ getImagePreset().mGeoData.setRotation(r);
}
- public void setImageRotationZoomFactor(float f){
- mImagePreset.mGeoData.setScaleFactor(f);
+ public void setImageRotationZoomFactor(float f) {
+ getImagePreset().mGeoData.setScaleFactor(f);
}
public void setImageRotation(float imageRotation,
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageZoom.java b/src/com/android/gallery3d/filtershow/imageshow/ImageZoom.java
index 1c5a9b50e..a2b119cfe 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageZoom.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageZoom.java
@@ -1,11 +1,8 @@
package com.android.gallery3d.filtershow.imageshow;
-import com.android.gallery3d.filtershow.presets.ImagePreset;
-
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
-import android.graphics.Paint;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.GestureDetector;
@@ -33,12 +30,14 @@ public class ImageZoom extends ImageSlave implements OnGestureListener, OnDouble
mGestureDetector = new GestureDetector(context, this);
}
+ @Override
public boolean onTouchEvent(MotionEvent event) {
boolean ret = mGestureDetector.onTouchEvent(event);
ret = super.onTouchEvent(event);
return ret;
}
+ @Override
public void onTouchDown(float x, float y) {
super.onTouchDown(x, y);
if (mZoomedIn || mTouchDown) {
@@ -64,10 +63,12 @@ public class ImageZoom extends ImageSlave implements OnGestureListener, OnDouble
mZoomBounds = new Rect(left, top, left + mw * 2, top + mh * 2);
}
+ @Override
public void onTouchUp() {
mTouchDown = false;
}
+ @Override
public void onDraw(Canvas canvas) {
drawBackground(canvas);
Bitmap filteredImage = null;
@@ -121,7 +122,13 @@ public class ImageZoom extends ImageSlave implements OnGestureListener, OnDouble
}
@Override
- public boolean onDoubleTap(MotionEvent arg0) {
+ public boolean onDoubleTap(MotionEvent event) {
+
+ if (!mZoomedIn) {
+ onTouchDown(event.getX(), event.getY());
+ } else {
+ onTouchUp();
+ }
mZoomedIn = !mZoomedIn;
invalidate();
return false;