summaryrefslogtreecommitdiffstats
path: root/core/java/android/gesture
diff options
context:
space:
mode:
authorRomain Guy <romainguy@android.com>2009-05-25 13:51:00 -0700
committerRomain Guy <romainguy@android.com>2009-05-25 13:51:00 -0700
commite7c36dda7ada30e02f3aa9d75f282a53402aeae7 (patch)
tree82b6ab8e66680e3a1d58ed0d9d646546b84f1c7e /core/java/android/gesture
parentec25df9fbc685be384f8dd764fa224a4d923e9d8 (diff)
downloadframeworks_base-e7c36dda7ada30e02f3aa9d75f282a53402aeae7.zip
frameworks_base-e7c36dda7ada30e02f3aa9d75f282a53402aeae7.tar.gz
frameworks_base-e7c36dda7ada30e02f3aa9d75f282a53402aeae7.tar.bz2
Add new orientation attribute to GestureOverlayView. This can be used to prevent the overlay from interfering with vertically/horizontally scrolling views underneath the overlay.
Diffstat (limited to 'core/java/android/gesture')
-rwxr-xr-xcore/java/android/gesture/GestureOverlayView.java24
1 files changed, 20 insertions, 4 deletions
diff --git a/core/java/android/gesture/GestureOverlayView.java b/core/java/android/gesture/GestureOverlayView.java
index 4cdbd3e..1a82095 100755
--- a/core/java/android/gesture/GestureOverlayView.java
+++ b/core/java/android/gesture/GestureOverlayView.java
@@ -53,6 +53,9 @@ public class GestureOverlayView extends FrameLayout {
public static final int GESTURE_STROKE_TYPE_SINGLE = 0;
public static final int GESTURE_STROKE_TYPE_MULTIPLE = 1;
+ public static final int ORIENTATION_HORIZONTAL = 0;
+ public static final int ORIENTATION_VERTICAL = 1;
+
private static final int FADE_ANIMATION_RATE = 16;
private static final boolean GESTURE_RENDERING_ANTIALIAS = true;
private static final boolean DITHER_FLAG = true;
@@ -76,6 +79,8 @@ public class GestureOverlayView extends FrameLayout {
private float mGestureStrokeSquarenessTreshold = 0.275f;
private float mGestureStrokeAngleThreshold = 40.0f;
+ private int mOrientation = ORIENTATION_VERTICAL;
+
private final Rect mInvalidRect = new Rect();
private final Path mPath = new Path();
@@ -150,6 +155,7 @@ public class GestureOverlayView extends FrameLayout {
mInterceptEvents);
mFadeEnabled = a.getBoolean(R.styleable.GestureOverlayView_fadeEnabled,
mFadeEnabled);
+ mOrientation = a.getInt(R.styleable.GestureOverlayView_orientation, mOrientation);
a.recycle();
@@ -176,6 +182,14 @@ public class GestureOverlayView extends FrameLayout {
return mStrokeBuffer;
}
+ public int getOrientation() {
+ return mOrientation;
+ }
+
+ public void setOrientation(int orientation) {
+ mOrientation = orientation;
+ }
+
public void setGestureColor(int color) {
mCertainGestureColor = color;
}
@@ -415,7 +429,7 @@ public class GestureOverlayView extends FrameLayout {
private boolean processEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
- touchStart(event);
+ touchDown(event);
invalidate();
return true;
case MotionEvent.ACTION_MOVE:
@@ -445,7 +459,7 @@ public class GestureOverlayView extends FrameLayout {
return false;
}
- private void touchStart(MotionEvent event) {
+ private void touchDown(MotionEvent event) {
mIsListeningForGestures = true;
float x = event.getX();
@@ -548,7 +562,9 @@ public class GestureOverlayView extends FrameLayout {
}
if (box.squareness > mGestureStrokeSquarenessTreshold ||
- angle < mGestureStrokeAngleThreshold) {
+ (mOrientation == ORIENTATION_VERTICAL ?
+ angle < mGestureStrokeAngleThreshold :
+ angle > mGestureStrokeAngleThreshold)) {
mIsGesturing = true;
setCurrentColor(mCertainGestureColor);
@@ -606,7 +622,7 @@ public class GestureOverlayView extends FrameLayout {
actionListeners.get(i).onGesturePerformed(GestureOverlayView.this,
mCurrentGesture);
}
- }
+ }
private class FadeOutRunnable implements Runnable {
boolean fireActionPerformed;