Skip to content

Commit a003d51

Browse files
HeinrichLohsecodinguser
authored andcommitted
proper handling of custom date range selections - fixes #611 (#639)
1 parent daaf416 commit a003d51

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

app/src/main/java/org/gnucash/android/ui/util/dialog/DateRangePickerDialogFragment.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public class DateRangePickerDialogFragment extends DialogFragment{
5252
private Date mStartRange = LocalDate.now().minusMonths(1).toDate();
5353
private Date mEndRange = LocalDate.now().toDate();
5454
private OnDateRangeSetListener mDateRangeSetListener;
55+
private static final long ONE_DAY_IN_MILLIS = 24 * 60 * 60 * 1000;
5556

5657
public static DateRangePickerDialogFragment newInstance(OnDateRangeSetListener dateRangeSetListener){
5758
DateRangePickerDialogFragment fragment = new DateRangePickerDialogFragment();
@@ -89,7 +90,11 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
8990
public void onClick(View v) {
9091
List<Date> selectedDates = mCalendarPickerView.getSelectedDates();
9192
Date startDate = selectedDates.get(0);
92-
Date endDate = selectedDates.size() == 2 ? selectedDates.get(1) : new Date();
93+
// If only one day is selected (no interval) start and end should be the same (the selected one)
94+
Date endDate = selectedDates.size() > 1 ? selectedDates.get(selectedDates.size() - 1) : new Date(startDate.getTime());
95+
// CaledarPicker returns the start of the selected day but we want all transactions of that day to be included.
96+
// Therefore we have to add 24 hours to the endDate.
97+
endDate.setTime(endDate.getTime() + ONE_DAY_IN_MILLIS);
9398
mDateRangeSetListener.onDateRangeSet(startDate, endDate);
9499
dismiss();
95100
}

0 commit comments

Comments
 (0)