'How to disable future dates in Android MaterialDatePicker?

I am trying to create a simple DatePicker using MaterialDatePicker where future dates are disabled. I tried few answers from other similar StackOverflow questions but it didn't work. This is my code so far:-

val datePicker = MaterialDatePicker.Builder.datePicker().apply {
        setTitleText(getString(R.string.label_select_dob))
        setCalendarConstraints(limitRange().build())
    }.build()

 private fun limitRange(): CalendarConstraints.Builder {
    val calendarStart: Calendar = Calendar.getInstance()
    val calendarEnd: Calendar = Calendar.getInstance()
    val year = 1900
    val startMonth = 1
    val startDate = 1
    calendarStart.set(year, startMonth, startDate)
    calendarEnd.set(2021, 3, 27)
    val minDate: Long = calendarStart.timeInMillis
    val maxDate: Long = calendarEnd.timeInMillis

    val constraintsBuilder = CalendarConstraints.Builder()
    val validators: ArrayList<CalendarConstraints.DateValidator> = ArrayList()
    validators.add(DateValidatorPointForward.from(minDate))
    validators.add(DateValidatorPointBackward.before(maxDate))
    constraintsBuilder.setValidator(CompositeDateValidator.allOf(validators))

    return constraintsBuilder
}


Solution 1:[1]

val constraintsBuilder =
            CalendarConstraints.Builder()
                .setValidator(DateValidatorPointBackward.now())

val dataPicker = MaterialDatePicker.Builder.datePicker().apply {
            setTitleText("Select Previous Dates")
            setCalendarConstraints(constraintsBuilder.build())
        }.build()

Solution 2:[2]

First Create a Constraints Builder

 val constraintsBuilder = CalendarConstraints.Builder().setValidator(DateValidatorPointBackward.now())

Second Pass it to setCalendarConstraints method

val dialog1 = MaterialDatePicker.Builder.datePicker().setCalendarConstraints(constraintsBuilder.build())

Assign it to a variable and display

val picker = dialog1.build()
           
picker.show(adapter.getFragmentManager(), picker.toString())

For more information on Material Date Picker Library, you can visit the below link:

https://material.io/components/date-pickers/android

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Vishnu Vidhyadhran
Solution 2 benson23