Select DateRange UsingRangePicker.

 



/*
* This Method is for select range from picker.
* */
private fun selectDateRangeUsingRangePicker() {
pageNumber = 1
val displayFormat = SimpleDateFormat(DateUtility.DATE)
val calendarStartDate = Calendar.getInstance()
calendarStartDate.add(Calendar.DAY_OF_YEAR, -14)
calendarStartDate[Calendar.HOUR_OF_DAY] = 0
if(mDefaultStartDate != null){
mDefaultStartDate
} else {
MaterialDatePicker.todayInUtcMilliseconds()
}

if(mDefaultEndDate != null){
mDefaultEndDate
} else {
MaterialDatePicker.todayInUtcMilliseconds()
}
val builder: MaterialDatePicker.Builder<Pair<Long, Long>> = MaterialDatePicker.Builder.dateRangePicker().setTheme(R.style.ThemeOverlay_MaterialComponents_MaterialCalendar)
builder.setTitleText(getString(R.string.select_date_range))
val preselect = Pair(mDefaultStartDate, mDefaultEndDate)
val constraintsBuilder = CalendarConstraints.Builder()
val calendarStart = Calendar.getInstance()
calendarStart[2000, 1] = 1
constraintsBuilder.setStart(calendarStart.timeInMillis)
constraintsBuilder.setEnd(MaterialDatePicker.todayInUtcMilliseconds())
builder.setCalendarConstraints(constraintsBuilder.build())
val validators: MutableList<CalendarConstraints.DateValidator> = ArrayList()
validators.add(DateValidatorPointForward.from(calendarStart.timeInMillis))
validators.add(DateValidatorPointForward.now())
builder.setSelection(preselect)
val picker = builder.build()
picker.show(this.supportFragmentManager, "DateRange")
picker.addOnPositiveButtonClickListener { selection: Any ->
val selected = selection as Pair<Long, Long>
dateToPlotStart = DateUtility.getStartOfDayDate(DateUtility.DATE_PATTERN_DELIVERY_MEDIUM_HISTORY, selected.first!!)
dateToPlotEnd = DateUtility.getEndOfDayDate(DateUtility.DATE_PATTERN_DELIVERY_MEDIUM_HISTORY, selected.second!!)
displayStartData = displayFormat.format(selected.first)
displayEndDate = displayFormat.format(selected.second)
mDefaultStartDate = selected.first!!
mDefaultEndDate = selected.second!!
if (displayStartData.equals(displayEndDate, ignoreCase = true)) {
dateTextView.text = displayStartData
tripStartDate = dateToPlotStart
tripEndDate = dateToPlotEnd
enableLoadingView(getString(R.string.please_wait_dialog))
tripSummaryDataViewModel.handleUserAction(TripSummaryActions.TripSummaryAPI(dateToPlotStart, dateToPlotEnd, pageNumber, pageSize))
} else {
dateTextView.text = "$displayStartData - $displayEndDate"
tripStartDate = dateToPlotStart
tripEndDate = dateToPlotEnd
enableLoadingView(getString(R.string.please_wait_dialog))
tripSummaryDataViewModel.handleUserAction(TripSummaryActions.TripSummaryAPI(dateToPlotStart, dateToPlotEnd, pageNumber, pageSize))
}
}
}

No comments:

Select DateRange UsingRangePicker.

  /* * This Method is for select range from picker. * */ private fun selectDateRangeUsingRangePicker () { pageNumber = 1 val displ...