diff options
Diffstat (limited to 'src/com/android/datetimepicker/time/RadialPickerLayout.java')
-rw-r--r-- | src/com/android/datetimepicker/time/RadialPickerLayout.java | 36 |
1 files changed, 8 insertions, 28 deletions
diff --git a/src/com/android/datetimepicker/time/RadialPickerLayout.java b/src/com/android/datetimepicker/time/RadialPickerLayout.java index e895e98..bad77ed 100644 --- a/src/com/android/datetimepicker/time/RadialPickerLayout.java +++ b/src/com/android/datetimepicker/time/RadialPickerLayout.java @@ -19,13 +19,11 @@ package com.android.datetimepicker.time; import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.annotation.SuppressLint; -import android.app.Service; import android.content.Context; import android.content.res.Resources; import android.os.Bundle; import android.os.Handler; import android.os.SystemClock; -import android.os.Vibrator; import android.text.format.DateUtils; import android.text.format.Time; import android.util.AttributeSet; @@ -42,8 +40,6 @@ import android.widget.FrameLayout; import com.android.datetimepicker.R; -import java.util.HashMap; - public class RadialPickerLayout extends FrameLayout implements OnTouchListener { private static final String TAG = "RadialPickerLayout"; @@ -60,10 +56,9 @@ public class RadialPickerLayout extends FrameLayout implements OnTouchListener { private static final int AM = TimePickerDialog.AM; private static final int PM = TimePickerDialog.PM; - private Vibrator mVibrator; - private long mLastVibrate; private int mLastValueSelected; + private TimePickerDialog mController; private OnValueSelectedListener mListener; private boolean mTimeInitialized; private int mCurrentHoursOfDay; @@ -125,8 +120,6 @@ public class RadialPickerLayout extends FrameLayout implements OnTouchListener { // Prepare mapping to snap touchable degrees to selectable degrees. preparePrefer30sMap(); - mVibrator = (Vibrator) context.getSystemService(Service.VIBRATOR_SERVICE); - mLastVibrate = 0; mLastValueSelected = -1; mInputEnabled = true; @@ -168,12 +161,14 @@ public class RadialPickerLayout extends FrameLayout implements OnTouchListener { * @param initialMinutes * @param is24HourMode */ - public void initialize(Context context, int initialHoursOfDay, int initialMinutes, - boolean is24HourMode) { + public void initialize(Context context, TimePickerDialog controller, + int initialHoursOfDay, int initialMinutes, boolean is24HourMode) { if (mTimeInitialized) { Log.e(TAG, "Time has already been initialized."); return; } + + mController = controller; mIs24HourMode = is24HourMode; mHideAmPm = mAccessibilityManager.isTouchExplorationEnabled()? true : mIs24HourMode; @@ -582,7 +577,7 @@ public class RadialPickerLayout extends FrameLayout implements OnTouchListener { if (mIsTouchingAmOrPm == AM || mIsTouchingAmOrPm == PM) { // If the touch is on AM or PM, set it as "touched" after the TAP_TIMEOUT // in case the user moves their finger quickly. - tryVibrate(); + mController.tryVibrate(); mDownDegrees = -1; mHandler.postDelayed(new Runnable() { @Override @@ -600,7 +595,7 @@ public class RadialPickerLayout extends FrameLayout implements OnTouchListener { if (mDownDegrees != -1) { // If it's a legal touch, set that number as "selected" after the // TAP_TIMEOUT in case the user moves their finger quickly. - tryVibrate(); + mController.tryVibrate(); mHandler.postDelayed(new Runnable() { @Override public void run() { @@ -655,7 +650,7 @@ public class RadialPickerLayout extends FrameLayout implements OnTouchListener { if (degrees != -1) { value = reselectSelector(degrees, isInnerCircle[0], false, true); if (value != mLastValueSelected) { - tryVibrate(); + mController.tryVibrate(); mLastValueSelected = value; mListener.onValueSelected(getCurrentItemShowing(), value, false); } @@ -715,21 +710,6 @@ public class RadialPickerLayout extends FrameLayout implements OnTouchListener { } /** - * Try to vibrate. To prevent this becoming a single continuous vibration, nothing will - * happen if we have vibrated very recently. - */ - public void tryVibrate() { - if (mVibrator != null) { - long now = SystemClock.uptimeMillis(); - // We want to try to vibrate each individual tick discretely. - if (now - mLastVibrate >= 125) { - mVibrator.vibrate(5); - mLastVibrate = now; - } - } - } - - /** * Set touch input as enabled or disabled, for use with keyboard mode. */ public boolean trySettingInputEnabled(boolean inputEnabled) { |