summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2012-10-19 16:08:00 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-10-19 16:08:00 -0700
commit1f8d3d735d14f7e22a860e7ec8e12a4dae0c8835 (patch)
tree15b44a4180d711349852baab1912958f07e5dd3b
parentc5f764d30d87f4e3f61193df9df7f6c50b7f0ff3 (diff)
parent1d3823a2fde62fbc5e2763ace81ac003271f970f (diff)
downloadandroid_packages_apps_Snap-1f8d3d735d14f7e22a860e7ec8e12a4dae0c8835.tar.gz
android_packages_apps_Snap-1f8d3d735d14f7e22a860e7ec8e12a4dae0c8835.tar.bz2
android_packages_apps_Snap-1f8d3d735d14f7e22a860e7ec8e12a4dae0c8835.zip
am 3926a685: Merge "Improves swipe gesture" into gb-ub-photos-arches
* commit '3926a685eb08ee2bb5e6cf9dc03d070462f19f64': Improves swipe gesture
-rw-r--r--src/com/android/gallery3d/filtershow/FilterShowActivity.java3
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageShow.java78
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageZoom.java59
3 files changed, 66 insertions, 74 deletions
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
index a15a3054e..b8d74ac33 100644
--- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java
+++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
@@ -131,6 +131,9 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
// TODO: get those values from XML.
ImageShow.setTextSize((int) getPixelsFromDip(12));
ImageShow.setTextPadding((int) getPixelsFromDip(10));
+ ImageShow.setOriginalTextMargin((int) getPixelsFromDip(4));
+ ImageShow.setOriginalTextSize((int) getPixelsFromDip(18));
+ ImageShow.setOriginalText(getResources().getString(R.string.original_picture_text));
ImageButtonTitle.setTextSize((int) getPixelsFromDip(12));
ImageButtonTitle.setTextPadding((int) getPixelsFromDip(10));
ImageSmallFilter.setMargin((int) getPixelsFromDip(3));
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
index 6a81fcea8..73dc598b8 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
@@ -84,8 +84,16 @@ public class ImageShow extends View implements OnGestureListener,
private boolean mTouchShowOriginal = false;
private long mTouchShowOriginalDate = 0;
- private final long mTouchShowOriginalDelay = 1000; // 1s
+ private final long mTouchShowOriginalDelayMin = 200; // 200ms
+ private final long mTouchShowOriginalDelayMax = 300; // 300ms
private int mTouchDownX = 0;
+ private int mTouchDownY = 0;
+ protected float mTouchX = 0;
+ protected float mTouchY = 0;
+
+ private static int mOriginalTextMargin = 8;
+ private static int mOriginalTextSize = 26;
+ private static String mOriginalText = "Original";
protected GeometryMetadata getGeometry() {
return new GeometryMetadata(getImagePreset().mGeoData);
@@ -101,9 +109,6 @@ public class ImageShow extends View implements OnGestureListener,
private boolean mShowToast = false;
private boolean mImportantToast = false;
- protected float mTouchX = 0;
- protected float mTouchY = 0;
-
private SeekBar mSeekBar = null;
private PanelController mController = null;
@@ -121,6 +126,18 @@ public class ImageShow extends View implements OnGestureListener,
mTextPadding = value;
}
+ public static void setOriginalTextMargin(int value) {
+ mOriginalTextMargin = value;
+ }
+
+ public static void setOriginalTextSize(int value) {
+ mOriginalTextSize = value;
+ }
+
+ public static void setOriginalText(String text) {
+ mOriginalText = text;
+ }
+
private final Handler mHandler = new Handler();
public void select() {
@@ -404,18 +421,39 @@ public class ImageShow extends View implements OnGestureListener,
return;
canvas.save();
if (image != null) {
- int px = mTouchDownX - mImageBounds.left;
+ boolean goingDown = false;
+ if ((mTouchY - mTouchDownY) > (mTouchX - mTouchDownX)) {
+ goingDown = true;
+ }
+ int px = (int) (mTouchX - mImageBounds.left);
int py = mImageBounds.height();
+ if (goingDown) {
+ px = mImageBounds.width();
+ py = (int) (mTouchY - mImageBounds.top);
+ }
Rect d = new Rect(mImageBounds.left, mImageBounds.top,
mImageBounds.left + px, mImageBounds.top + py);
canvas.clipRect(d);
+ drawImage(canvas, image);
Paint paint = new Paint();
paint.setColor(Color.BLACK);
- canvas.drawLine(px, mImageBounds.top, px, mImageBounds.bottom, paint);
+ if (goingDown) {
+ canvas.drawLine(mImageBounds.left, mTouchY - 1,
+ mImageBounds.right, mTouchY - 1, paint);
+ } else {
+ canvas.drawLine(mTouchX - 1, mImageBounds.top,
+ mTouchX - 1, mImageBounds.bottom, paint);
+ }
+ Rect bounds = new Rect();
+ paint.setTextSize(mOriginalTextSize);
+ paint.getTextBounds(mOriginalText, 0, mOriginalText.length(), bounds);
+ paint.setColor(Color.BLACK);
+ canvas.drawText(mOriginalText, mImageBounds.left + mOriginalTextMargin + 1,
+ mImageBounds.top + bounds.height() + mOriginalTextMargin + 1, paint);
paint.setColor(Color.WHITE);
- canvas.drawText("Original", mImageBounds.left, mImageBounds.top + 100, paint);
+ canvas.drawText(mOriginalText, mImageBounds.left + mOriginalTextMargin,
+ mImageBounds.top + bounds.height() + mOriginalTextMargin, paint);
}
- drawImage(canvas, image);
canvas.restore();
}
@@ -537,20 +575,27 @@ public class ImageShow extends View implements OnGestureListener,
mGestureDetector.onTouchEvent(event);
}
int ex = (int) event.getX();
+ int ey = (int) event.getY();
if (event.getAction() == MotionEvent.ACTION_DOWN) {
mTouchDownX = ex;
- if (!mActivity.isShowingHistoryPanel() && mImageBounds != null
- && mImageBounds.left < ex && mImageBounds.right > ex) {
- mTouchShowOriginal = true;
- mTouchShowOriginalDate = System.currentTimeMillis();
- }
+ mTouchDownY = ey;
+ mTouchShowOriginalDate = System.currentTimeMillis();
}
if (event.getAction() == MotionEvent.ACTION_MOVE) {
- mTouchDownX = ex;
+ mTouchX = ex;
+ mTouchY = ey;
+ if (!mActivity.isShowingHistoryPanel()
+ && (System.currentTimeMillis() - mTouchShowOriginalDate
+ > mTouchShowOriginalDelayMin)) {
+ mTouchShowOriginal = true;
+ }
}
if (event.getAction() == MotionEvent.ACTION_UP) {
mTouchShowOriginal = false;
mTouchDownX = 0;
+ mTouchDownY = 0;
+ mTouchX = 0;
+ mTouchY = 0;
}
invalidate();
return true;
@@ -656,8 +701,9 @@ public class ImageShow extends View implements OnGestureListener,
if ((!mActivity.isShowingHistoryPanel() && startEvent.getX() > endEvent.getX())
|| (mActivity.isShowingHistoryPanel() && endEvent.getX() > startEvent.getX())) {
if (!mTouchShowOriginal
- || (mTouchShowOriginal
- && System.currentTimeMillis() - mTouchShowOriginalDate < mTouchShowOriginalDelay)) {
+ || (mTouchShowOriginal &&
+ (System.currentTimeMillis() - mTouchShowOriginalDate
+ < mTouchShowOriginalDelayMax))) {
mActivity.toggleHistoryPanel();
}
}
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageZoom.java b/src/com/android/gallery3d/filtershow/imageshow/ImageZoom.java
index a2b119cfe..4e2ccc3eb 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageZoom.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageZoom.java
@@ -5,36 +5,19 @@ import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.util.AttributeSet;
-import android.view.GestureDetector;
-import android.view.GestureDetector.OnDoubleTapListener;
-import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;
-public class ImageZoom extends ImageSlave implements OnGestureListener, OnDoubleTapListener {
+public class ImageZoom extends ImageSlave {
private boolean mTouchDown = false;
private boolean mZoomedIn = false;
private Rect mZoomBounds = null;
- private GestureDetector mGestureDetector = null;
public ImageZoom(Context context) {
super(context);
- setupGestureDetector(context);
}
public ImageZoom(Context context, AttributeSet attrs) {
super(context, attrs);
- setupGestureDetector(context);
- }
-
- public void setupGestureDetector(Context context) {
- mGestureDetector = new GestureDetector(context, this);
- }
-
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- boolean ret = mGestureDetector.onTouchEvent(event);
- ret = super.onTouchEvent(event);
- return ret;
}
@Override
@@ -86,41 +69,6 @@ public class ImageZoom extends ImageSlave implements OnGestureListener, OnDouble
drawToast(canvas);
}
- // TODO: move back some of that touch handling to a superclass / refactor
- // SlideController into a more generic gesture detector
- @Override
- public boolean onDown(MotionEvent arg0) {
- return false;
- }
-
- @Override
- public boolean onFling(MotionEvent arg0, MotionEvent arg1, float arg2, float arg3) {
- return false;
- }
-
- @Override
- public void onLongPress(MotionEvent arg0) {
- }
-
- @Override
- public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2, float arg3) {
- return false;
- }
-
- @Override
- public void onShowPress(MotionEvent arg0) {
- }
-
- @Override
- public boolean onSingleTapUp(MotionEvent arg0) {
- return false;
- }
-
- @Override
- public boolean onSingleTapConfirmed(MotionEvent arg0) {
- return false;
- }
-
@Override
public boolean onDoubleTap(MotionEvent event) {
@@ -133,9 +81,4 @@ public class ImageZoom extends ImageSlave implements OnGestureListener, OnDouble
invalidate();
return false;
}
-
- @Override
- public boolean onDoubleTapEvent(MotionEvent arg0) {
- return false;
- }
} \ No newline at end of file