|
|
@ -1,11 +1,13 @@ |
|
|
|
package com.henninghall.date_picker; |
|
|
|
|
|
|
|
import android.view.View; |
|
|
|
import android.view.ViewManager; |
|
|
|
import android.widget.RelativeLayout; |
|
|
|
|
|
|
|
import com.facebook.react.bridge.Arguments; |
|
|
|
import com.facebook.react.bridge.WritableMap; |
|
|
|
import com.facebook.react.uimanager.events.RCTEventEmitter; |
|
|
|
import com.henninghall.date_picker.wheels.AmPmWheel; |
|
|
|
import com.henninghall.date_picker.wheels.DayWheel; |
|
|
|
import com.henninghall.date_picker.wheels.HourWheel; |
|
|
|
import com.henninghall.date_picker.wheels.MinutesWheel; |
|
|
@ -24,6 +26,7 @@ public class PickerView extends RelativeLayout { |
|
|
|
private HourWheel hourWheel; |
|
|
|
private DayWheel dayWheel; |
|
|
|
private MinutesWheel minutesWheel; |
|
|
|
private AmPmWheel ampmWheel; |
|
|
|
|
|
|
|
public PickerView() { |
|
|
|
super(DatePickerManager.context); |
|
|
@ -39,8 +42,12 @@ public class PickerView extends RelativeLayout { |
|
|
|
NumberPickerView minutePicker = (NumberPickerView) rootView.findViewById(R.id.minutes); |
|
|
|
minutesWheel = new MinutesWheel(minutePicker, onWheelChangeListener, locale); |
|
|
|
|
|
|
|
NumberPickerView ampmPicker = (NumberPickerView) rootView.findViewById(R.id.ampm); |
|
|
|
ampmWheel = new AmPmWheel(ampmPicker, onWheelChangeListener, locale); |
|
|
|
|
|
|
|
dateFormat = new SimpleDateFormat(getDateFormatTemplate(), locale); |
|
|
|
|
|
|
|
((ViewManager) ampmPicker.getParent()).removeView(ampmPicker); |
|
|
|
} |
|
|
|
|
|
|
|
WheelChangeListener onWheelChangeListener = new WheelChangeListener(){ |
|
|
@ -48,8 +55,7 @@ public class PickerView extends RelativeLayout { |
|
|
|
public void onChange() { |
|
|
|
WritableMap event = Arguments.createMap(); |
|
|
|
try { |
|
|
|
String dateString = dayWheel.getValue() + " " + hourWheel.getValue() + " " + minutesWheel.getValue(); |
|
|
|
Date date = dateFormat.parse(dateString); |
|
|
|
Date date = dateFormat.parse(getDateString()); |
|
|
|
event.putDouble("date", date.getTime()); |
|
|
|
} catch (ParseException e) { |
|
|
|
e.printStackTrace(); |
|
|
@ -60,13 +66,30 @@ public class PickerView extends RelativeLayout { |
|
|
|
|
|
|
|
|
|
|
|
private String getDateFormatTemplate() { |
|
|
|
return dayWheel.getFormatTemplate() + " " + hourWheel.getFormatTemplate() + " " + minutesWheel.getFormatTemplate(); |
|
|
|
return dayWheel.getFormatTemplate() + " " |
|
|
|
+ hourWheel.getFormatTemplate() + " " |
|
|
|
+ minutesWheel.getFormatTemplate() + " " |
|
|
|
+ ampmWheel.getFormatTemplate(); |
|
|
|
} |
|
|
|
|
|
|
|
private String getDateString() { |
|
|
|
return dayWheel.getValue() |
|
|
|
+ " " + hourWheel.getValue() |
|
|
|
+ " " + minutesWheel.getValue() |
|
|
|
+ " " + ampmWheel.getValue(); |
|
|
|
} |
|
|
|
|
|
|
|
public void setDate(Date date) { |
|
|
|
dayWheel.setValue(date); |
|
|
|
hourWheel.setValue(date); |
|
|
|
minutesWheel.setValue(date); |
|
|
|
ampmWheel.setValue(date); |
|
|
|
} |
|
|
|
|
|
|
|
public void setLocale(Locale locale) { |
|
|
|
dayWheel.setLocale(locale); |
|
|
|
hourWheel.setLocale(locale); |
|
|
|
minutesWheel.setLocale(locale); |
|
|
|
ampmWheel.setLocale(locale); |
|
|
|
} |
|
|
|
} |