Loading core/java/com/android/internal/widget/RotarySelector.java +18 −8 Original line number Diff line number Diff line Loading @@ -105,6 +105,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. */ Loading @@ -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. */ Loading Loading @@ -148,6 +153,8 @@ public class RotarySelector extends View { mArrowLongRight.setBounds(0, 0, arrowW, arrowH); mInterpolator = new AccelerateInterpolator(); mEdgeTriggerThresh = (int) (mDensity * EDGE_TRIGGER_DIP); } /** Loading Loading @@ -252,7 +259,6 @@ public class RotarySelector extends View { } } // Background: final int backgroundW = mBackground.getIntrinsicWidth(); final int backgroundH = mBackground.getIntrinsicHeight(); Loading @@ -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; Loading @@ -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); Loading @@ -300,8 +306,10 @@ public class RotarySelector extends View { xOffset); drawCentered(mDimple, canvas, xOffset, drawableY + bgTop); if (mGrabbedState != RIGHT_HANDLE_GRABBED) { drawCentered(mLeftHandleIcon, canvas, xOffset, drawableY + bgTop); } } if (DRAW_CENTER_DIMPLE) { final int xOffset = getWidth() / 2 + mTouchDragOffset; Loading @@ -323,8 +331,10 @@ public class RotarySelector extends View { xOffset); drawCentered(mDimple, canvas, xOffset, drawableY + bgTop); if (mGrabbedState != LEFT_HANDLE_GRABBED) { drawCentered(mRightHandleIcon, canvas, xOffset, drawableY + bgTop); } } if (mAnimating) invalidate(); } Loading Loading @@ -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); } Loading Loading
core/java/com/android/internal/widget/RotarySelector.java +18 −8 Original line number Diff line number Diff line Loading @@ -105,6 +105,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. */ Loading @@ -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. */ Loading Loading @@ -148,6 +153,8 @@ public class RotarySelector extends View { mArrowLongRight.setBounds(0, 0, arrowW, arrowH); mInterpolator = new AccelerateInterpolator(); mEdgeTriggerThresh = (int) (mDensity * EDGE_TRIGGER_DIP); } /** Loading Loading @@ -252,7 +259,6 @@ public class RotarySelector extends View { } } // Background: final int backgroundW = mBackground.getIntrinsicWidth(); final int backgroundH = mBackground.getIntrinsicHeight(); Loading @@ -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; Loading @@ -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); Loading @@ -300,8 +306,10 @@ public class RotarySelector extends View { xOffset); drawCentered(mDimple, canvas, xOffset, drawableY + bgTop); if (mGrabbedState != RIGHT_HANDLE_GRABBED) { drawCentered(mLeftHandleIcon, canvas, xOffset, drawableY + bgTop); } } if (DRAW_CENTER_DIMPLE) { final int xOffset = getWidth() / 2 + mTouchDragOffset; Loading @@ -323,8 +331,10 @@ public class RotarySelector extends View { xOffset); drawCentered(mDimple, canvas, xOffset, drawableY + bgTop); if (mGrabbedState != LEFT_HANDLE_GRABBED) { drawCentered(mRightHandleIcon, canvas, xOffset, drawableY + bgTop); } } if (mAnimating) invalidate(); } Loading Loading @@ -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); } Loading