From a84d570ade808238a60e3777da134d4725021cf7 Mon Sep 17 00:00:00 2001 From: Henning Hall Date: Wed, 19 Apr 2023 23:51:30 +0200 Subject: [PATCH] fix: incorrect initial date when date in past (#644) --- .maestro/display-text.yml | 31 +++++++++++++++++-- .maestro/utils/swipe-wheel-1.yml | 2 +- .../henninghall/date_picker/props/Prop.java | 4 --- .../date_picker/wheels/DayWheel.java | 16 +++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/.maestro/display-text.yml b/.maestro/display-text.yml index 3ab6290..7e68538 100644 --- a/.maestro/display-text.yml +++ b/.maestro/display-text.yml @@ -1,8 +1,35 @@ appId: com.rn069 --- +- runFlow: + file: utils/set-timezone.yml + env: + REGION: Sweden + GMT: GMT+01:00 + STATE: '' + +# test: can have initial date in past - runFlow: utils/launch.yml -- tapOn: androidVariant -- tapOn: nativeAndroid +- runFlow: + file: utils/change-prop.yml + env: + PROP: maximumDate + VALUE: undefined +- runFlow: + file: utils/change-prop.yml + env: + PROP: minimumDate + VALUE: undefined +- runFlow: + file: utils/change-prop.yml + env: + PROP: date + VALUE: '1999-01-01' +- runFlow: utils/swipe-wheel-1.yml +- assertVisible: '1999-01-02 01:00:00' + +- runFlow: utils/reset.yml + +# test: display text - runFlow: file: utils/change-prop.yml env: diff --git a/.maestro/utils/swipe-wheel-1.yml b/.maestro/utils/swipe-wheel-1.yml index ee62e90..044f45f 100644 --- a/.maestro/utils/swipe-wheel-1.yml +++ b/.maestro/utils/swipe-wheel-1.yml @@ -2,4 +2,4 @@ appId: com.rn069 --- - swipe: start: 25%, 40% - end: 25%, 30% + end: 25%, 35% diff --git a/android/src/main/java/com/henninghall/date_picker/props/Prop.java b/android/src/main/java/com/henninghall/date_picker/props/Prop.java index d9ccf99..5d7c945 100644 --- a/android/src/main/java/com/henninghall/date_picker/props/Prop.java +++ b/android/src/main/java/com/henninghall/date_picker/props/Prop.java @@ -17,10 +17,6 @@ public abstract class Prop { this.value = toValue(value); } - public void setValue(T value){ - this.value = value; - } - public T getValue(){ return value; } 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 9753f9f..d81173b 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 @@ -18,7 +18,7 @@ import java.util.HashMap; public class DayWheel extends Wheel { private String todayValue; - private static int defaultNumberOfDays = Calendar.getInstance().getActualMaximum(Calendar.DAY_OF_YEAR); + private static int defaultNumberOfDays = 150; private HashMap displayValues; public DayWheel(Picker picker, State state) { @@ -54,7 +54,7 @@ public class DayWheel extends Wheel { cal = (Calendar) max.clone(); cal.add(Calendar.DATE, -cal.getActualMaximum(Calendar.DAY_OF_YEAR) / 2); } else { - cal = (Calendar) getInitialDate().clone(); + cal = getInitialDate(); cal.add(Calendar.DATE, -defaultNumberOfDays / 2); } return cal; @@ -70,20 +70,12 @@ public class DayWheel extends Wheel { cal = (Calendar) min.clone(); cal.add(Calendar.DATE, cal.getActualMaximum(Calendar.DAY_OF_YEAR) / 2); } else { - cal = (Calendar) getInitialDate().clone(); - cal.setTime(new Date()); + cal = getInitialDate(); cal.add(Calendar.DATE, defaultNumberOfDays / 2); } return cal; } - private void resetToMidnight(Calendar cal){ - cal.set(Calendar.HOUR_OF_DAY, 0); - cal.set(Calendar.MINUTE, 0); - cal.set(Calendar.SECOND, 0); - cal.set(Calendar.MILLISECOND, 0); - } - private String getValue(Calendar cal){ return format.format(cal.getTime()); } @@ -141,7 +133,7 @@ public class DayWheel extends Wheel { // Rounding cal to closest minute interval private Calendar getInitialDate() { - Calendar cal = Calendar.getInstance(); + Calendar cal = state.getDate(); int minuteInterval = state.getMinuteInterval(); if(minuteInterval <= 1) return cal; SimpleDateFormat minuteFormat = new SimpleDateFormat("mm", state.getLocale());