summaryrefslogtreecommitdiff
path: root/src/com/android/datetimepicker/time/RadialPickerLayout.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/datetimepicker/time/RadialPickerLayout.java')
-rw-r--r--src/com/android/datetimepicker/time/RadialPickerLayout.java36
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) {