From f5775a63b268ec37e66119249bfab1a5a3e7fb44 Mon Sep 17 00:00:00 2001 From: Henning Hall Date: Mon, 26 Feb 2024 17:28:35 +0100 Subject: [PATCH] fix: occasional setSeconds errors on min/maxDate (#766) * fix: occasional setSeconds error on min/maxDate * null check --- .../com/henninghall/date_picker/State.java | 18 ++++++++++++++---- src/DatePickerAndroid.js | 16 +--------------- 2 files changed, 15 insertions(+), 19 deletions(-) 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 b09b6c5..10d627f 100644 --- a/android/src/main/java/com/henninghall/date_picker/State.java +++ b/android/src/main/java/com/henninghall/date_picker/State.java @@ -1,7 +1,5 @@ package com.henninghall.date_picker; -import android.util.Log; - import com.facebook.react.bridge.Dynamic; import com.henninghall.date_picker.models.Is24HourSource; import com.henninghall.date_picker.models.Mode; @@ -97,11 +95,23 @@ public class State { } public Calendar getMinimumDate() { - return Utils.isoToCalendar(minimumDateProp.getValue(), getTimeZone()); + return boundaryPropToCal(minimumDateProp); } public Calendar getMaximumDate() { - return Utils.isoToCalendar(maximumDateProp.getValue(), getTimeZone()); + return boundaryPropToCal(maximumDateProp); + } + + private Calendar boundaryPropToCal(Prop prop){ + Calendar cal = Utils.isoToCalendar(prop.getValue(), getTimeZone()); + clearSecondsAndMilliseconds(cal); + return cal; + } + + private void clearSecondsAndMilliseconds(Calendar cal) { + if (cal == null) return; + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); } public TimeZone getTimeZone() { diff --git a/src/DatePickerAndroid.js b/src/DatePickerAndroid.js index 286a65c..128f36a 100644 --- a/src/DatePickerAndroid.js +++ b/src/DatePickerAndroid.js @@ -27,14 +27,7 @@ class DatePickerAndroid extends React.PureComponent { if (props.modal) return null - return ( - - ) + return } getId = () => { @@ -117,13 +110,6 @@ class DatePickerAndroid extends React.PureComponent { this.isClosing = true this.props.onCancel() } - - _withoutSecond = (date) => { - if (!date) return date - date.setSeconds(0) - date.setMilliseconds(0) - return date - } } export default DatePickerAndroid