public void setRangeDates(CalendarDay min, CalendarDay max) { this.minDate = min; this.maxDate = max; for (MonthView monthView : currentViews) { monthView.setMinimumDate(min); monthView.setMaximumDate(max); } if (min == null) { Calendar worker = CalendarUtils.getInstance(); worker.add(Calendar.YEAR, -200); min = CalendarDay.from(worker); } if (max == null) { Calendar worker = CalendarUtils.getInstance(); worker.add(Calendar.YEAR, 200); max = CalendarDay.from(worker); } rangeIndex = new DateRangeIndex(min, max); CalendarDay prevDate = selectedDate; notifyDataSetChanged(); setSelectedDate(prevDate); if (prevDate != null) { if (!prevDate.equals(selectedDate)) { callbacks.onDateChanged(selectedDate); } } }