diff --git a/android/src/main/java/com/henninghall/date_picker/DatePickerManager.java b/android/src/main/java/com/henninghall/date_picker/DatePickerManager.java index f08a0d8..6cb67ae 100644 --- a/android/src/main/java/com/henninghall/date_picker/DatePickerManager.java +++ b/android/src/main/java/com/henninghall/date_picker/DatePickerManager.java @@ -7,6 +7,7 @@ import com.facebook.react.common.MapBuilder; import com.facebook.react.uimanager.SimpleViewManager; import com.facebook.react.uimanager.ThemedReactContext; import com.facebook.react.uimanager.annotations.ReactPropGroup; +import com.henninghall.date_picker.props.VariantProp; import com.henninghall.date_picker.props.DateProp; import com.henninghall.date_picker.props.FadeToColorProp; import com.henninghall.date_picker.props.LocaleProp; @@ -41,7 +42,9 @@ public class DatePickerManager extends SimpleViewManager { } @ReactPropGroup(names = { DateProp.name, ModeProp.name, LocaleProp.name, MaximumDateProp.name, - MinimumDateProp.name, FadeToColorProp.name, TextColorProp.name, UtcProp.name, MinuteIntervalProp.name}) + MinimumDateProp.name, FadeToColorProp.name, TextColorProp.name, UtcProp.name, MinuteIntervalProp.name, + VariantProp.name + }) public void setProps(PickerView view, int index, Dynamic value) { updateProp("setProps", view, index, value); } diff --git a/android/src/main/java/com/henninghall/date_picker/DerivedData.java b/android/src/main/java/com/henninghall/date_picker/DerivedData.java index a1ea1e3..79e5a7e 100644 --- a/android/src/main/java/com/henninghall/date_picker/DerivedData.java +++ b/android/src/main/java/com/henninghall/date_picker/DerivedData.java @@ -3,6 +3,7 @@ package com.henninghall.date_picker; import android.util.Log; import com.henninghall.date_picker.models.Mode; +import com.henninghall.date_picker.models.Variant; import com.henninghall.date_picker.models.WheelType; import java.util.ArrayList; @@ -96,4 +97,8 @@ public class DerivedData { return oddShowCount; } + public boolean isIosClone() { + return state.getVariant() == Variant.iosClone; + } + } diff --git a/android/src/main/java/com/henninghall/date_picker/PickerView.java b/android/src/main/java/com/henninghall/date_picker/PickerView.java index 725aa6f..ff81fdb 100644 --- a/android/src/main/java/com/henninghall/date_picker/PickerView.java +++ b/android/src/main/java/com/henninghall/date_picker/PickerView.java @@ -1,9 +1,12 @@ package com.henninghall.date_picker; +import android.util.Log; import android.view.View; +import android.widget.NumberPicker; import android.widget.RelativeLayout; import com.facebook.react.bridge.Dynamic; +import com.henninghall.date_picker.props.VariantProp; import com.henninghall.date_picker.props.DateProp; import com.henninghall.date_picker.props.FadeToColorProp; import com.henninghall.date_picker.props.HeightProp; @@ -16,7 +19,8 @@ import java.util.ArrayList; public class PickerView extends RelativeLayout { - private final View rootView = inflate(getContext(), R.layout.datepicker_view, this); +// private final View rootView = inflate(getContext(), R.layout.datepicker_view, this); + private View rootView = inflate(getContext(), R.layout.native_picker, this); private final UIManager uiManager; private State state; private ArrayList updatedProps = new ArrayList<>(); @@ -29,6 +33,21 @@ public class PickerView extends RelativeLayout { public void update() { + if(updatedProps.contains(VariantProp.name)) { + uiManager.setVariant(); +// rootView = inflate(getContext(), R.layout.native_picker, this); +// NumberPicker np = findViewById(R.id.numberPicker); +// np.setMinValue(0); +// np.setMaxValue(1); +// np.setDisplayedValues(new String[]{"Today", "Tomorrow"}); +// np.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() { +// @Override +// public void onValueChange(NumberPicker numberPicker, int i, int i1) { +// Log.d("onValueChange", String.valueOf(i)); +// } +// }); + } + if(updatedProps.contains(FadeToColorProp.name)) { uiManager.updateFadeToColor(); } diff --git a/android/src/main/java/com/henninghall/date_picker/State.java b/android/src/main/java/com/henninghall/date_picker/State.java index f540525..dd1e98f 100644 --- a/android/src/main/java/com/henninghall/date_picker/State.java +++ b/android/src/main/java/com/henninghall/date_picker/State.java @@ -2,6 +2,8 @@ package com.henninghall.date_picker; import com.facebook.react.bridge.Dynamic; import com.henninghall.date_picker.models.Mode; +import com.henninghall.date_picker.models.Variant; +import com.henninghall.date_picker.props.VariantProp; import com.henninghall.date_picker.props.DateProp; import com.henninghall.date_picker.props.FadeToColorProp; import com.henninghall.date_picker.props.HeightProp; @@ -22,7 +24,7 @@ import java.util.TimeZone; public class State { private final DateProp dateProp = new DateProp(); - private final Prop modeProp = new ModeProp(); + private final ModeProp modeProp = new ModeProp(); private final LocaleProp localeProp = new LocaleProp(); private final FadeToColorProp fadeToColorProp = new FadeToColorProp(); private final TextColorProp textColorProp = new TextColorProp(); @@ -31,6 +33,7 @@ public class State { private final MaximumDateProp maximumDateProp = new MaximumDateProp(); private final UtcProp utcProp = new UtcProp(); private final HeightProp heightProp = new HeightProp(); + private final VariantProp variantProp = new VariantProp(); private final HashMap props = new HashMap() {{ put(DateProp.name, dateProp); @@ -43,6 +46,7 @@ public class State { put(MaximumDateProp.name, maximumDateProp); put(UtcProp.name, utcProp); put(HeightProp.name, heightProp); + put(VariantProp.name, variantProp); }}; public DerivedData derived; @@ -106,5 +110,8 @@ public class State { return localeProp.getLanguageTag(); } + public Variant getVariant(){ + return variantProp.getValue(); + } } diff --git a/android/src/main/java/com/henninghall/date_picker/models/Variant.java b/android/src/main/java/com/henninghall/date_picker/models/Variant.java new file mode 100644 index 0000000..955b152 --- /dev/null +++ b/android/src/main/java/com/henninghall/date_picker/models/Variant.java @@ -0,0 +1,5 @@ +package com.henninghall.date_picker.models; + +public enum Variant { + iosClone, nativeAndroid +} diff --git a/android/src/main/java/com/henninghall/date_picker/pickers/AndroidNative.java b/android/src/main/java/com/henninghall/date_picker/pickers/AndroidNative.java new file mode 100644 index 0000000..3d42a9f --- /dev/null +++ b/android/src/main/java/com/henninghall/date_picker/pickers/AndroidNative.java @@ -0,0 +1,77 @@ +package com.henninghall.date_picker.pickers; + +import android.content.Context; +import android.graphics.Paint; +import android.os.Build; +import android.support.annotation.RequiresApi; +import android.util.AttributeSet; +import android.view.View; +import android.widget.NumberPicker; + +import cn.carbswang.android.numberpickerview.library.NumberPickerView; + +public class AndroidNative extends NumberPicker implements Picker { + + public AndroidNative(Context context) { + super(context); + } + + public AndroidNative(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public AndroidNative(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + @Override + public void setTextAlign(Paint.Align align) { + + } + + @Override + public void smoothScrollToValue(int value) { + // TODO + setValue(value); + } + + @Override + public void smoothScrollToValue(int value, boolean needRespond) { + smoothScrollToValue(value); + } + + @Override + public void setNormalTextColor(int value) { + + } + + @Override + public void setSelectedTextColor(int value) { + + } + + @Override + public void setOnValueChangeListenerInScrolling(OnValueChangeListenerInScrolling listener) { + + } + + @Override + public void setOnValueChangedListener(final Picker.OnValueChangeListener listener) { + super.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() { + @Override + public void onValueChange(NumberPicker numberPicker, int from, int to) { + listener.onValueChange(); + } + }); + } + + + @Override + public void setShownCount(int count) { + } + + @Override + public View getView() { + return this; + } +} diff --git a/android/src/main/java/com/henninghall/date_picker/pickers/IosClone.java b/android/src/main/java/com/henninghall/date_picker/pickers/IosClone.java new file mode 100644 index 0000000..aea14a5 --- /dev/null +++ b/android/src/main/java/com/henninghall/date_picker/pickers/IosClone.java @@ -0,0 +1,47 @@ +package com.henninghall.date_picker.pickers; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; +import cn.carbswang.android.numberpickerview.library.NumberPickerView; + +public class IosClone extends NumberPickerView implements Picker { + + public IosClone(Context context) { + super(context); + } + + public IosClone(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public IosClone(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + @Override + public void setOnValueChangeListenerInScrolling(final Picker.OnValueChangeListenerInScrolling listener) { + final Picker self = this; + super.setOnValueChangeListenerInScrolling(new NumberPickerView.OnValueChangeListenerInScrolling() { + @Override + public void onValueChangeInScrolling(NumberPickerView picker, int oldVal, int newVal) { + listener.onValueChangeInScrolling(self, oldVal, newVal); + } + }); + } + + @Override + public void setOnValueChangedListener(final Picker.OnValueChangeListener listener) { + super.setOnValueChangedListener(new NumberPickerView.OnValueChangeListener() { + @Override + public void onValueChange(NumberPickerView picker, int oldVal, int newVal) { + listener.onValueChange(); + } + }); + } + + @Override + public View getView() { + return this; + } +} diff --git a/android/src/main/java/com/henninghall/date_picker/pickers/Picker.java b/android/src/main/java/com/henninghall/date_picker/pickers/Picker.java new file mode 100644 index 0000000..0ba7ede --- /dev/null +++ b/android/src/main/java/com/henninghall/date_picker/pickers/Picker.java @@ -0,0 +1,33 @@ +package com.henninghall.date_picker.pickers; + +import android.graphics.Paint; +import android.view.View; + +public interface Picker { + void setTextAlign(Paint.Align align); + void smoothScrollToValue(int value); + void smoothScrollToValue(int value, boolean needRespond); + void setMaxValue(int value); + void setMinValue(int value); + int getMaxValue(); + boolean getWrapSelectorWheel(); + void setDisplayedValues(String[] value); + int getValue(); + void setValue(int value); + void setNormalTextColor(int value); + void setSelectedTextColor(int value); + void setOnValueChangeListenerInScrolling(Picker.OnValueChangeListenerInScrolling listener); + void setOnValueChangedListener(Picker.OnValueChangeListener onValueChangeListener); + + void setShownCount(int count); + View getView(); + void setVisibility(int visibility); + + interface OnValueChangeListenerInScrolling { + void onValueChangeInScrolling(Picker picker, int oldVal, int newVal); + } + + interface OnValueChangeListener { + void onValueChange(); + } +} diff --git a/android/src/main/java/com/henninghall/date_picker/props/VariantProp.java b/android/src/main/java/com/henninghall/date_picker/props/VariantProp.java new file mode 100644 index 0000000..1e84ec1 --- /dev/null +++ b/android/src/main/java/com/henninghall/date_picker/props/VariantProp.java @@ -0,0 +1,14 @@ +package com.henninghall.date_picker.props; + +import com.facebook.react.bridge.Dynamic; +import com.henninghall.date_picker.models.Variant; + +public class VariantProp extends Prop { + public static final String name = "androidVariant"; + + @Override + public Variant toValue(Dynamic value){ + return Variant.valueOf(value.asString()); + } + +} \ No newline at end of file diff --git a/android/src/main/java/com/henninghall/date_picker/ui/EmptyWheels.java b/android/src/main/java/com/henninghall/date_picker/ui/EmptyWheels.java index 0500a63..c954156 100644 --- a/android/src/main/java/com/henninghall/date_picker/ui/EmptyWheels.java +++ b/android/src/main/java/com/henninghall/date_picker/ui/EmptyWheels.java @@ -33,6 +33,7 @@ class EmptyWheels { private ArrayList getAll() { ArrayList wheels = new ArrayList<>(); + if(!state.derived.isIosClone()) return wheels; for (int id: emptyWheelIds) { NumberPickerView view = (NumberPickerView) rootView.findViewById(id); wheels.add(view); @@ -41,6 +42,7 @@ class EmptyWheels { } void add() { + if(!state.derived.isIosClone()) return; int numberOfVisibleWheels = state.derived.getVisibleWheels().size(); int emptyViewsToAdd = numberOfVisibleWheels + 1; for (int i = 0; i < emptyViewsToAdd; i++) { diff --git a/android/src/main/java/com/henninghall/date_picker/ui/UIManager.java b/android/src/main/java/com/henninghall/date_picker/ui/UIManager.java index 08f8822..4cbc14f 100644 --- a/android/src/main/java/com/henninghall/date_picker/ui/UIManager.java +++ b/android/src/main/java/com/henninghall/date_picker/ui/UIManager.java @@ -25,7 +25,7 @@ public class UIManager { this.state = state; this.rootView = rootView; wheels = new Wheels(state, rootView); - fadingOverlay = new FadingOverlay(state, rootView); +// fadingOverlay = new FadingOverlay(state, rootView); addOnChangeListener(); } @@ -38,6 +38,7 @@ public class UIManager { } public void updateFadeToColor(){ + if(!state.derived.isIosClone()) return; fadingOverlay.updateColor(); } @@ -80,4 +81,7 @@ public class UIManager { } + public void setVariant() { + + } } diff --git a/android/src/main/java/com/henninghall/date_picker/ui/WheelScroller.java b/android/src/main/java/com/henninghall/date_picker/ui/WheelScroller.java index 18f2d73..dc20acf 100644 --- a/android/src/main/java/com/henninghall/date_picker/ui/WheelScroller.java +++ b/android/src/main/java/com/henninghall/date_picker/ui/WheelScroller.java @@ -1,13 +1,12 @@ package com.henninghall.date_picker.ui; +import com.henninghall.date_picker.pickers.Picker; import com.henninghall.date_picker.wheels.Wheel; -import cn.carbswang.android.numberpickerview.library.NumberPickerView; - public class WheelScroller { public void scroll(Wheel wheel, int scrollTimes) { - NumberPickerView picker = wheel.picker; + Picker picker = wheel.picker; int currentIndex = picker.getValue(); int maxValue = picker.getMaxValue(); boolean isWrapping = picker.getWrapSelectorWheel(); diff --git a/android/src/main/java/com/henninghall/date_picker/ui/Wheels.java b/android/src/main/java/com/henninghall/date_picker/ui/Wheels.java index 3b5a700..b4c531d 100644 --- a/android/src/main/java/com/henninghall/date_picker/ui/Wheels.java +++ b/android/src/main/java/com/henninghall/date_picker/ui/Wheels.java @@ -2,6 +2,7 @@ package com.henninghall.date_picker.ui; import android.view.View; +import com.henninghall.date_picker.pickers.Picker; import com.henninghall.date_picker.R; import com.henninghall.date_picker.State; import com.henninghall.date_picker.Utils; @@ -24,8 +25,6 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; -import cn.carbswang.android.numberpickerview.library.NumberPickerView; - public class Wheels { private final State state; @@ -60,8 +59,8 @@ public class Wheels { changeAmPmWhenPassingMidnightOrNoon(); } - private NumberPickerView getPickerWithId(int id){ - return (NumberPickerView) rootView.findViewById(id); + private Picker getPickerWithId(int id){ + return (Picker) rootView.findViewById(id); } private Collection getVisible() { @@ -122,7 +121,7 @@ public class Wheels { ArrayList wheels = state.derived.getOrderedVisibleWheels(); for (WheelType wheelType : wheels) { Wheel wheel = getWheel(wheelType); - pickerWrapper.addPicker(wheel.picker); + pickerWrapper.addPicker(wheel.picker.getView()); } } @@ -135,9 +134,9 @@ public class Wheels { } private void changeAmPmWhenPassingMidnightOrNoon() { - hourWheel.picker.setOnValueChangeListenerInScrolling(new NumberPickerView.OnValueChangeListenerInScrolling() { + hourWheel.picker.setOnValueChangeListenerInScrolling(new Picker.OnValueChangeListenerInScrolling() { @Override - public void onValueChangeInScrolling(NumberPickerView picker, int oldVal, int newVal) { + public void onValueChangeInScrolling(Picker picker, int oldVal, int newVal) { if(Utils.usesAmPm()){ String oldValue = hourWheel.getValueAtIndex(oldVal); String newValue = hourWheel.getValueAtIndex(newVal); diff --git a/android/src/main/java/com/henninghall/date_picker/wheelFunctions/AddOnChangeListener.java b/android/src/main/java/com/henninghall/date_picker/wheelFunctions/AddOnChangeListener.java index 7b7f67d..af9e441 100644 --- a/android/src/main/java/com/henninghall/date_picker/wheelFunctions/AddOnChangeListener.java +++ b/android/src/main/java/com/henninghall/date_picker/wheelFunctions/AddOnChangeListener.java @@ -1,5 +1,6 @@ package com.henninghall.date_picker.wheelFunctions; +import com.henninghall.date_picker.pickers.Picker; import com.henninghall.date_picker.ui.WheelChangeListener; import com.henninghall.date_picker.wheels.Wheel; @@ -15,9 +16,9 @@ public class AddOnChangeListener implements WheelFunction { @Override public void apply(final Wheel wheel) { - wheel.picker.setOnValueChangedListener(new NumberPickerView.OnValueChangeListener() { + wheel.picker.setOnValueChangedListener(new Picker.OnValueChangeListener() { @Override - public void onValueChange(NumberPickerView picker, int oldVal, int newVal) { + public void onValueChange() { onChangeListener.onChange(wheel); } }); diff --git a/android/src/main/java/com/henninghall/date_picker/wheels/AmPmWheel.java b/android/src/main/java/com/henninghall/date_picker/wheels/AmPmWheel.java index 97a686c..6e40b0d 100644 --- a/android/src/main/java/com/henninghall/date_picker/wheels/AmPmWheel.java +++ b/android/src/main/java/com/henninghall/date_picker/wheels/AmPmWheel.java @@ -2,6 +2,7 @@ package com.henninghall.date_picker.wheels; import android.graphics.Paint; +import com.henninghall.date_picker.pickers.Picker; import com.henninghall.date_picker.State; import com.henninghall.date_picker.Utils; import com.henninghall.date_picker.models.Mode; @@ -9,12 +10,10 @@ import com.henninghall.date_picker.models.Mode; import java.util.ArrayList; import java.util.Calendar; -import cn.carbswang.android.numberpickerview.library.NumberPickerView; - public class AmPmWheel extends Wheel { - public AmPmWheel(final NumberPickerView picker, State state) { + public AmPmWheel(final Picker picker, State state) { super(picker, state); } diff --git a/android/src/main/java/com/henninghall/date_picker/wheels/DateWheel.java b/android/src/main/java/com/henninghall/date_picker/wheels/DateWheel.java index b875521..6595303 100644 --- a/android/src/main/java/com/henninghall/date_picker/wheels/DateWheel.java +++ b/android/src/main/java/com/henninghall/date_picker/wheels/DateWheel.java @@ -5,12 +5,11 @@ import android.graphics.Paint; import java.util.*; import com.henninghall.date_picker.*; import com.henninghall.date_picker.models.Mode; - -import cn.carbswang.android.numberpickerview.library.NumberPickerView; +import com.henninghall.date_picker.pickers.Picker; public class DateWheel extends Wheel { - public DateWheel(final NumberPickerView picker, final State id) { + public DateWheel(final Picker picker, final State id) { super(picker, id); } diff --git a/android/src/main/java/com/henninghall/date_picker/wheels/DayWheel.java b/android/src/main/java/com/henninghall/date_picker/wheels/DayWheel.java index 59af7d7..60e7555 100644 --- a/android/src/main/java/com/henninghall/date_picker/wheels/DayWheel.java +++ b/android/src/main/java/com/henninghall/date_picker/wheels/DayWheel.java @@ -1,23 +1,20 @@ package com.henninghall.date_picker.wheels; import android.graphics.Paint; -import android.text.TextUtils; import com.henninghall.date_picker.DayFormats; import com.henninghall.date_picker.LocaleUtils; +import com.henninghall.date_picker.pickers.Picker; import com.henninghall.date_picker.State; import com.henninghall.date_picker.models.Mode; import com.henninghall.date_picker.Utils; -import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; -import cn.carbswang.android.numberpickerview.library.NumberPickerView; - public class DayWheel extends Wheel { @@ -25,7 +22,7 @@ public class DayWheel extends Wheel { private static int defaultNumberOfDays = Calendar.getInstance().getActualMaximum(Calendar.DAY_OF_YEAR); private HashMap displayValues; - public DayWheel(NumberPickerView picker, State state) { + public DayWheel(Picker picker, State state) { super(picker, state); } diff --git a/android/src/main/java/com/henninghall/date_picker/wheels/HourWheel.java b/android/src/main/java/com/henninghall/date_picker/wheels/HourWheel.java index 2ce30f3..1bee710 100644 --- a/android/src/main/java/com/henninghall/date_picker/wheels/HourWheel.java +++ b/android/src/main/java/com/henninghall/date_picker/wheels/HourWheel.java @@ -2,6 +2,7 @@ package com.henninghall.date_picker.wheels; import android.graphics.Paint; +import com.henninghall.date_picker.pickers.Picker; import com.henninghall.date_picker.State; import com.henninghall.date_picker.Utils; import com.henninghall.date_picker.models.Mode; @@ -9,11 +10,9 @@ import com.henninghall.date_picker.models.Mode; import java.util.ArrayList; import java.util.Calendar; -import cn.carbswang.android.numberpickerview.library.NumberPickerView; - public class HourWheel extends Wheel { - public HourWheel(NumberPickerView picker, State id) { + public HourWheel(Picker picker, State id) { super(picker, id); } diff --git a/android/src/main/java/com/henninghall/date_picker/wheels/MinutesWheel.java b/android/src/main/java/com/henninghall/date_picker/wheels/MinutesWheel.java index 62cc224..de6837b 100644 --- a/android/src/main/java/com/henninghall/date_picker/wheels/MinutesWheel.java +++ b/android/src/main/java/com/henninghall/date_picker/wheels/MinutesWheel.java @@ -2,6 +2,7 @@ package com.henninghall.date_picker.wheels; import android.graphics.Paint; +import com.henninghall.date_picker.pickers.Picker; import com.henninghall.date_picker.State; import com.henninghall.date_picker.Utils; import com.henninghall.date_picker.models.Mode; @@ -9,11 +10,9 @@ import com.henninghall.date_picker.models.Mode; import java.util.ArrayList; import java.util.Calendar; -import cn.carbswang.android.numberpickerview.library.NumberPickerView; - public class MinutesWheel extends Wheel { - public MinutesWheel(NumberPickerView picker, State id) { + public MinutesWheel(Picker picker, State id) { super(picker, id); } diff --git a/android/src/main/java/com/henninghall/date_picker/wheels/MonthWheel.java b/android/src/main/java/com/henninghall/date_picker/wheels/MonthWheel.java index 05b17ef..85984a3 100644 --- a/android/src/main/java/com/henninghall/date_picker/wheels/MonthWheel.java +++ b/android/src/main/java/com/henninghall/date_picker/wheels/MonthWheel.java @@ -5,16 +5,14 @@ import android.graphics.Paint; import java.util.*; import com.henninghall.date_picker.*; import com.henninghall.date_picker.models.Mode; - -import cn.carbswang.android.numberpickerview.library.NumberPickerView; +import com.henninghall.date_picker.pickers.Picker; public class MonthWheel extends Wheel { - public MonthWheel(final NumberPickerView pickerView, final State id) { - super(pickerView, id); + public MonthWheel(final Picker picker, final State id) { + super(picker, id); } - @Override public ArrayList getValues() { ArrayList values = new ArrayList<>(); diff --git a/android/src/main/java/com/henninghall/date_picker/wheels/Wheel.java b/android/src/main/java/com/henninghall/date_picker/wheels/Wheel.java index 671e009..0b86d0c 100644 --- a/android/src/main/java/com/henninghall/date_picker/wheels/Wheel.java +++ b/android/src/main/java/com/henninghall/date_picker/wheels/Wheel.java @@ -3,7 +3,7 @@ package com.henninghall.date_picker.wheels; import android.graphics.Paint; import android.view.View; -import cn.carbswang.android.numberpickerview.library.NumberPickerView; +import com.henninghall.date_picker.pickers.Picker; import com.henninghall.date_picker.State; import java.text.SimpleDateFormat; @@ -26,10 +26,10 @@ public abstract class Wheel { } private ArrayList values = new ArrayList<>(); - public NumberPickerView picker; + public Picker picker; public SimpleDateFormat format; - public Wheel(NumberPickerView picker, State state) { + public Wheel(Picker picker, State state) { this.state = state; this.picker = picker; this.format = new SimpleDateFormat(getFormatPattern(), state.getLocale()); diff --git a/android/src/main/java/com/henninghall/date_picker/wheels/YearWheel.java b/android/src/main/java/com/henninghall/date_picker/wheels/YearWheel.java index ceb6863..6772678 100644 --- a/android/src/main/java/com/henninghall/date_picker/wheels/YearWheel.java +++ b/android/src/main/java/com/henninghall/date_picker/wheels/YearWheel.java @@ -3,21 +3,19 @@ package com.henninghall.date_picker.wheels; import android.graphics.Paint; import com.henninghall.date_picker.LocaleUtils; +import com.henninghall.date_picker.pickers.Picker; import com.henninghall.date_picker.State; import com.henninghall.date_picker.models.Mode; -import com.henninghall.date_picker.PickerView; import java.util.ArrayList; import java.util.Calendar; -import cn.carbswang.android.numberpickerview.library.NumberPickerView; - public class YearWheel extends Wheel { private int defaultStartYear; private int defaultEndYear; - public YearWheel(final NumberPickerView picker, final State id) { + public YearWheel(final Picker picker, final State id) { super(picker, id); this.defaultStartYear = 1900; this.defaultEndYear = 2100; diff --git a/android/src/main/res/layout/datepicker_view.xml b/android/src/main/res/layout/datepicker_view.xml index ed71829..04893b5 100644 --- a/android/src/main/res/layout/datepicker_view.xml +++ b/android/src/main/res/layout/datepicker_view.xml @@ -12,7 +12,7 @@ android:layout_height="match_parent" android:orientation="horizontal" > - - - - - - - - - + - - - + + + + + + + + + + + + + diff --git a/examples/detox/src/examples/Minimal.js b/examples/detox/src/examples/Minimal.js index 27bc566..4686e28 100644 --- a/examples/detox/src/examples/Minimal.js +++ b/examples/detox/src/examples/Minimal.js @@ -8,6 +8,7 @@ export default class MinimalExample extends Component { this.setState({ date })} + androidVariant="nativeAndroid" /> ) } diff --git a/examples/detox/yarn.lock b/examples/detox/yarn.lock index ab42ae0..b9330c4 100644 --- a/examples/detox/yarn.lock +++ b/examples/detox/yarn.lock @@ -689,11 +689,6 @@ xcode "^2.0.0" xmldoc "^0.4.0" -"@yarnpkg/lockfile@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" - integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== - abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -712,13 +707,6 @@ accepts@~1.3.5, accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" -ansi-align@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" - integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= - dependencies: - string-width "^2.0.0" - ansi-colors@3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" @@ -1004,19 +992,6 @@ bluebird@3.5.x: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== -boxen@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" - integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== - dependencies: - ansi-align "^2.0.0" - camelcase "^4.0.0" - chalk "^2.0.1" - cli-boxes "^1.0.0" - string-width "^2.0.0" - term-size "^1.2.0" - widest-line "^2.0.0" - bplist-creator@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.0.7.tgz#37df1536092824b87c42f957b01344117372ae45" @@ -1143,7 +1118,7 @@ callsites@^2.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= -camelcase@^4.0.0, camelcase@^4.1.0: +camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= @@ -1160,11 +1135,6 @@ capture-exit@^1.2.0: dependencies: rsvp "^3.3.3" -capture-stack-trace@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" - integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== - chalk@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -1204,16 +1174,6 @@ chownr@^1.1.1: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A== -ci-info@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" - integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -1224,11 +1184,6 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -cli-boxes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" - integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= - cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -1358,18 +1313,6 @@ concat-stream@^1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" -configstore@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" - integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw== - dependencies: - dot-prop "^4.1.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - unique-string "^1.0.0" - write-file-atomic "^2.0.0" - xdg-basedir "^3.0.0" - connect@^3.6.5: version "3.7.0" resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" @@ -1427,13 +1370,6 @@ cosmiconfig@^5.0.5: js-yaml "^3.13.1" parse-json "^4.0.0" -create-error-class@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" - integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= - dependencies: - capture-stack-trace "^1.0.0" - create-react-class@^15.6.3: version "15.6.3" resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" @@ -1460,7 +1396,7 @@ cross-spawn@^5.0.1, cross-spawn@^5.1.0: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^6.0.0, cross-spawn@^6.0.5: +cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -1471,11 +1407,6 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -crypto-random-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" - integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= - debug@2.6.9, debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -1602,13 +1533,6 @@ dom-walk@^0.1.0: resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" integrity sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg= -dot-prop@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" - integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== - dependencies: - is-obj "^1.0.0" - dtrace-provider@~0.8: version "0.8.7" resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.7.tgz#dc939b4d3e0620cfe0c1cd803d0d2d7ed04ffd04" @@ -1616,11 +1540,6 @@ dtrace-provider@~0.8: dependencies: nan "^2.10.0" -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -1979,14 +1898,6 @@ find-up@^2.0.0: dependencies: locate-path "^2.0.0" -find-yarn-workspace-root@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-1.2.1.tgz#40eb8e6e7c2502ddfaa2577c176f221422f860db" - integrity sha512-dVtfb0WuQG+8Ag2uWkbG79hOUzEsRrhBzgfn86g2sJPkzmcpGdghbNTfUKGTxymFrY/tLIodDzLoW9nOJ4FY8Q== - dependencies: - fs-extra "^4.0.3" - micromatch "^3.1.4" - flat@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" @@ -2027,7 +1938,7 @@ fs-extra@^1.0.0: jsonfile "^2.1.0" klaw "^1.0.0" -fs-extra@^4.0.2, fs-extra@^4.0.3: +fs-extra@^4.0.2: version "4.0.3" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== @@ -2184,13 +2095,6 @@ glob@^7.1.1, glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -global-dirs@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= - dependencies: - ini "^1.3.4" - global@^4.3.0: version "4.4.0" resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" @@ -2204,23 +2108,6 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -got@^6.7.1: - version "6.7.1" - resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" - integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= - dependencies: - create-error-class "^3.0.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-redirect "^1.0.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - unzip-response "^2.0.1" - url-parse-lax "^1.0.0" - graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.2.1" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.1.tgz#1c1f0c364882c868f5bff6512146328336a11b1d" @@ -2346,11 +2233,6 @@ import-fresh@^2.0.0: caller-path "^2.0.0" resolve-from "^3.0.0" -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -2445,20 +2327,6 @@ is-callable@^1.1.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== -is-ci@^1.0.10: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" - integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== - dependencies: - ci-info "^1.5.0" - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -2549,19 +2417,6 @@ is-glob@^2.0.0, is-glob@^2.0.1: dependencies: is-extglob "^1.0.0" -is-installed-globally@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" - integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= - dependencies: - global-dirs "^0.1.0" - is-path-inside "^1.0.0" - -is-npm@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" - integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= - is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" @@ -2581,18 +2436,6 @@ is-number@^4.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= - dependencies: - path-is-inside "^1.0.1" - is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -2615,11 +2458,6 @@ is-promise@^2.1.0: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= -is-redirect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= - is-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" @@ -2627,12 +2465,7 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" -is-retry-allowed@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" - integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== - -is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: +is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -2812,13 +2645,6 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== -klaw-sync@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" - integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== - dependencies: - graceful-fs "^4.1.11" - klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" @@ -2826,13 +2652,6 @@ klaw@^1.0.0: optionalDependencies: graceful-fs "^4.1.9" -latest-version@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" - integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= - dependencies: - package-json "^4.0.0" - lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" @@ -2912,11 +2731,6 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1, loose-envify@^1.4 dependencies: js-tokens "^3.0.0 || ^4.0.0" -lowercase-keys@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - lru-cache@^4.0.1: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" @@ -2932,13 +2746,6 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - make-dir@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -3855,16 +3662,6 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -package-json@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" - integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= - dependencies: - got "^6.7.1" - registry-auth-token "^3.0.1" - registry-url "^3.0.3" - semver "^5.1.0" - parse-glob@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" @@ -3905,25 +3702,6 @@ pascalcase@^0.1.1: resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= -patch-package@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-6.2.0.tgz#677de858e352b6ca4e6cb48a6efde2cec9fde566" - integrity sha512-HWlQflaBBMjLBfOWomfolF8aqsFDeNbSNro1JDUgYqnVvPM5OILJ9DQdwIRiKmGaOsmHvhkl1FYkvv1I9r2ZJw== - dependencies: - "@yarnpkg/lockfile" "^1.1.0" - chalk "^2.4.2" - cross-spawn "^6.0.5" - find-yarn-workspace-root "^1.2.1" - fs-extra "^7.0.1" - is-ci "^2.0.0" - klaw-sync "^6.0.0" - minimist "^1.2.0" - rimraf "^2.6.3" - semver "^5.6.0" - slash "^2.0.0" - tmp "^0.0.33" - update-notifier "^2.5.0" - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -3934,11 +3712,6 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-is-inside@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" @@ -3961,11 +3734,6 @@ pify@^2.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - pify@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" @@ -4022,11 +3790,6 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" @@ -4112,7 +3875,7 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: +rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -4313,21 +4076,6 @@ regexpu-core@^4.5.4: unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.1.0" -registry-auth-token@^3.0.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" - integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== - dependencies: - rc "^1.1.6" - safe-buffer "^5.0.1" - -registry-url@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" - integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= - dependencies: - rc "^1.0.1" - regjsgen@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" @@ -4412,13 +4160,6 @@ rimraf@^2.5.4, rimraf@^2.6.1: dependencies: glob "^7.1.3" -rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - rimraf@~2.2.6: version "2.2.8" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" @@ -4460,7 +4201,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@^5.0.1, safe-buffer@^5.1.2: +safe-buffer@^5.1.2: version "5.2.0" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== @@ -4524,13 +4265,6 @@ scheduler@^0.13.3: loose-envify "^1.1.0" object-assign "^4.1.1" -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= - dependencies: - semver "^5.0.3" - "semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0: version "5.7.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" @@ -4921,13 +4655,6 @@ tempfile@^2.0.0: temp-dir "^1.0.0" uuid "^3.0.1" -term-size@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" - integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= - dependencies: - execa "^0.7.0" - throat@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" @@ -4951,11 +4678,6 @@ time-stamp@^1.0.0: resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= -timed-out@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -5081,13 +4803,6 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" -unique-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" - integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= - dependencies: - crypto-random-string "^1.0.0" - universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -5106,39 +4821,11 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -unzip-response@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" - integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= - -update-notifier@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" - integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== - dependencies: - boxen "^1.2.1" - chalk "^2.0.1" - configstore "^3.0.0" - import-lazy "^2.1.0" - is-ci "^1.0.10" - is-installed-globally "^0.1.0" - is-npm "^1.0.0" - latest-version "^3.0.0" - semver-diff "^2.0.0" - xdg-basedir "^3.0.0" - urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= - dependencies: - prepend-http "^1.0.1" - use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" @@ -5216,13 +4903,6 @@ wide-align@1.1.3, wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" -widest-line@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" - integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== - dependencies: - string-width "^2.1.1" - wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" @@ -5264,15 +4944,6 @@ write-file-atomic@^1.2.0: imurmurhash "^0.1.4" slide "^1.1.5" -write-file-atomic@^2.0.0: - version "2.4.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" - integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - ws@^1.1.0, ws@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51" @@ -5298,11 +4969,6 @@ xcode@^2.0.0: simple-plist "^1.0.0" uuid "^3.3.2" -xdg-basedir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" - integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= - xmlbuilder@^9.0.7: version "9.0.7" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" diff --git a/propTypes.js b/propTypes.js index 7a3b70b..7b656c6 100644 --- a/propTypes.js +++ b/propTypes.js @@ -3,6 +3,7 @@ import PropTypes from 'prop-types' const androidProptypes = { fadeToColor: PropTypes.string, + androidVariant: PropTypes.oneOf(['iosClone', 'nativeAndroid']), } const DateType = PropTypes.instanceOf(Date) @@ -14,7 +15,7 @@ export default { minimumDate: DateType, maximumDate: DateType, mode: PropTypes.oneOf(['date', 'time', 'datetime']), - minuteInterval: PropTypes.oneOf([1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30]), + minuteInterval: PropTypes.oneOf([1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30]), locale: PropTypes.string, textColor: PropTypes.string, timeZoneOffsetInMinutes: PropTypes.number,