summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl Rosaen <krosaen@android.com>2009-09-17 17:51:42 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2009-09-17 17:51:42 -0700
commitfb4ef8fd2e046d022f0e3eb550094be28b048b44 (patch)
tree78030ec8f1398dfd50b71f2f7603f693f6f25dd8
parent38576e4498f73a095cccb4c4d0bb669ace940f98 (diff)
parent9b64ef133c1eb24c8d00aa7e46ec86c544af5fe2 (diff)
downloadframeworks_base-fb4ef8fd2e046d022f0e3eb550094be28b048b44.zip
frameworks_base-fb4ef8fd2e046d022f0e3eb550094be28b048b44.tar.gz
frameworks_base-fb4ef8fd2e046d022f0e3eb550094be28b048b44.tar.bz2
am 9b64ef13: Merge change 25647 into eclair
Merge commit '9b64ef133c1eb24c8d00aa7e46ec86c544af5fe2' into eclair-plus-aosp * commit '9b64ef133c1eb24c8d00aa7e46ec86c544af5fe2': Some tweaks to the rotary lock widget.
-rw-r--r--core/java/com/android/internal/widget/RotarySelector.java26
1 files changed, 18 insertions, 8 deletions
diff --git a/core/java/com/android/internal/widget/RotarySelector.java b/core/java/com/android/internal/widget/RotarySelector.java
index aff92b8..712f1bf 100644
--- a/core/java/com/android/internal/widget/RotarySelector.java
+++ b/core/java/com/android/internal/widget/RotarySelector.java
@@ -106,6 +106,11 @@ public class RotarySelector extends View {
private static final int EDGE_PADDING_DIP = 9;
/**
+ * How far from the edge of the screen the user must drag to trigger the event.
+ */
+ private static final int EDGE_TRIGGER_DIP = 65;
+
+ /**
* Dimensions of arc in background drawable.
*/
static final int OUTER_ROTARY_RADIUS_DIP = 390;
@@ -113,12 +118,12 @@ public class RotarySelector extends View {
private static final int ANIMATION_DURATION_MILLIS = 300;
private static final boolean DRAW_CENTER_DIMPLE = false;
+ private int mEdgeTriggerThresh;
public RotarySelector(Context context) {
this(context, null);
}
-
/**
* Constructor used when this widget is created from a layout file.
*/
@@ -148,6 +153,8 @@ public class RotarySelector extends View {
mArrowLongRight.setBounds(0, 0, arrowW, arrowH);
mInterpolator = new AccelerateInterpolator();
+
+ mEdgeTriggerThresh = (int) (mDensity * EDGE_TRIGGER_DIP);
}
/**
@@ -252,7 +259,6 @@ public class RotarySelector extends View {
}
}
-
// Background:
final int backgroundW = mBackground.getIntrinsicWidth();
final int backgroundH = mBackground.getIntrinsicHeight();
@@ -268,7 +274,7 @@ public class RotarySelector extends View {
Drawable currentArrow;
switch (mGrabbedState) {
case NOTHING_GRABBED:
- currentArrow = mArrowShortLeftAndRight;
+ currentArrow = null; //mArrowShortLeftAndRight;
break;
case LEFT_HANDLE_GRABBED:
currentArrow = mArrowLongLeft;
@@ -279,7 +285,7 @@ public class RotarySelector extends View {
default:
throw new IllegalStateException("invalid mGrabbedState: " + mGrabbedState);
}
- currentArrow.draw(canvas);
+ if (currentArrow != null) currentArrow.draw(canvas);
// debug: draw circle that should match the outer arc (good sanity check)
// mPaint.setColor(Color.RED);
@@ -300,7 +306,9 @@ public class RotarySelector extends View {
xOffset);
drawCentered(mDimple, canvas, xOffset, drawableY + bgTop);
- drawCentered(mLeftHandleIcon, canvas, xOffset, drawableY + bgTop);
+ if (mGrabbedState != RIGHT_HANDLE_GRABBED) {
+ drawCentered(mLeftHandleIcon, canvas, xOffset, drawableY + bgTop);
+ }
}
if (DRAW_CENTER_DIMPLE) {
@@ -323,7 +331,9 @@ public class RotarySelector extends View {
xOffset);
drawCentered(mDimple, canvas, xOffset, drawableY + bgTop);
- drawCentered(mRightHandleIcon, canvas, xOffset, drawableY + bgTop);
+ if (mGrabbedState != LEFT_HANDLE_GRABBED) {
+ drawCentered(mRightHandleIcon, canvas, xOffset, drawableY + bgTop);
+ }
}
if (mAnimating) invalidate();
@@ -407,14 +417,14 @@ public class RotarySelector extends View {
if (mGrabbedState == LEFT_HANDLE_GRABBED) {
mTouchDragOffset = eventX - mLeftHandleX;
invalidate();
- if (eventX >= mRightHandleX - EDGE_PADDING_DIP && !mTriggered) {
+ if (eventX >= getRight() - mEdgeTriggerThresh && !mTriggered) {
mTriggered = true;
mFrozen = dispatchTriggerEvent(OnDialTriggerListener.LEFT_HANDLE);
}
} else if (mGrabbedState == RIGHT_HANDLE_GRABBED) {
mTouchDragOffset = eventX - mRightHandleX;
invalidate();
- if (eventX <= mLeftHandleX + EDGE_PADDING_DIP && !mTriggered) {
+ if (eventX <= mEdgeTriggerThresh && !mTriggered) {
mTriggered = true;
mFrozen = dispatchTriggerEvent(OnDialTriggerListener.RIGHT_HANDLE);
}