import java.util.Calendar;
import kankan.wheel.widget.OnWheelChangedListener;
import kankan.wheel.widget.OnWheelClickedListener;
import kankan.wheel.widget.OnWheelScrollListener;
import kankan.wheel.widget.WheelView;
import kankan.wheel.widget.adapters.NumericWheelAdapter;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;
import cst.com.gbmerchant.R;
import cst.com.gbmerchant.myinterface.SetTimeForView;
public class TimePickerWheel extends DialogFragment{
// Time changed flag
privateboolean timeChanged = false;
// Time scrolled flag
private boolean timeScrolled = false;
Dialog d;
Context context;
SetTimeForView timeSet;
TextView tv_hours;
TextView tv_minutes;
public TimePickerWheel(Context context, SetTimeForView timeSet){
d = new Dialog(context);
this.context = context;
this.timeSet = timeSet;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
d.requestWindowFeature(Window.FEATURE_NO_TITLE);
d.setContentView(R.layout.fragment_time_picker);
final WheelView hours = (WheelView) d.findViewById(R.id.hour);
hours.setViewAdapter(new NumericWheelAdapter(context, 0, 59, “%02d”));
hours.setCyclic(true);
final WheelView mins = (WheelView) d.findViewById(R.id.mins);
mins.setViewAdapter(new NumericWheelAdapter(context, 0, 59, “%02d”));
mins.setCyclic(true);
tv_hours = (TextView) d.findViewById(R.id.tv_timePicker_hours);
tv_minutes = (TextView) d.findViewById(R.id.tv_timePicker_minutes);
Button btnSetTime = (Button) d.findViewById(R.id.btn_timePicker_setTime);
// set current time
//Calendar c = Calendar.getInstance();
//int curHours = c.get(Calendar.HOUR_OF_DAY);
//int curMinutes = c.get(Calendar.MINUTE);
int curHours = 0;
int curMinutes = 30;
hours.setCurrentItem(curHours);
mins.setCurrentItem(curMinutes);
tv_hours.setText(curHours + “”);
tv_minutes.setText(curMinutes + “”);
// add listeners
addChangingListener(mins, “min”);
addChangingListener(hours, “hour”);
OnWheelChangedListener wheelListener = new OnWheelChangedListener() {
public void onChanged(WheelView wheel, int oldValue, int newValue) {
if (!timeScrolled) {
timeChanged = true;
tv_hours.setText(hours.getCurrentItem() + “”);
tv_minutes.setText(mins.getCurrentItem() + “”);
timeChanged = false;
}
}
};
hours.addChangingListener(wheelListener);
mins.addChangingListener(wheelListener);
OnWheelClickedListener click = new OnWheelClickedListener() {
public void onItemClicked(WheelView wheel, int itemIndex) {
wheel.setCurrentItem(itemIndex, true);
}
};
hours.addClickingListener(click);
mins.addClickingListener(click);
OnWheelScrollListener scrollListener = new OnWheelScrollListener() {
public void onScrollingStarted(WheelView wheel) {
timeScrolled = true;
}
public void onScrollingFinished(WheelView wheel) {
timeScrolled = false;
timeChanged = true;
tv_hours.setText(hours.getCurrentItem() + “”);
tv_minutes.setText(mins.getCurrentItem() + “”);
timeChanged = false;
}
};
hours.addScrollingListener(scrollListener);
mins.addScrollingListener(scrollListener);
btnSetTime.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
handleSetTime();
}
});
return d;
}
private void handleSetTime(){
String h = tv_hours.getText().toString();
String m = tv_minutes.getText().toString();
timeSet.setTimeForView(h, m);
this.dismiss();
}
private void addChangingListener(final WheelView wheel, final String label) {
wheel.addChangingListener(new OnWheelChangedListener() {
public void onChanged(WheelView wheel, int oldValue, int newValue) {
//wheel.setLabel(newValue != 1 ? label + “s” : label);
}
});
}
}