|
|
|
@ -22,6 +22,8 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener, |
|
|
|
private lateinit var delegate: RowRepresentableDelegate |
|
|
|
private lateinit var delegate: RowRepresentableDelegate |
|
|
|
private lateinit var calendar: Calendar |
|
|
|
private lateinit var calendar: Calendar |
|
|
|
private var minimumDate: Date? = null |
|
|
|
private var minimumDate: Date? = null |
|
|
|
|
|
|
|
private var onlyDate: Boolean = false |
|
|
|
|
|
|
|
private var isClearable: Boolean = true |
|
|
|
|
|
|
|
|
|
|
|
companion object { |
|
|
|
companion object { |
|
|
|
fun create( |
|
|
|
fun create( |
|
|
|
@ -29,7 +31,9 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener, |
|
|
|
row: RowRepresentable, |
|
|
|
row: RowRepresentable, |
|
|
|
delegate: RowRepresentableDelegate, |
|
|
|
delegate: RowRepresentableDelegate, |
|
|
|
date: Date?, |
|
|
|
date: Date?, |
|
|
|
minimumDate: Date? = null |
|
|
|
minimumDate: Date? = null, |
|
|
|
|
|
|
|
onlyDate: Boolean? = false, |
|
|
|
|
|
|
|
isClearable: Boolean? = true |
|
|
|
): DateTimePickerManager { |
|
|
|
): DateTimePickerManager { |
|
|
|
|
|
|
|
|
|
|
|
val calendar = Calendar.getInstance() |
|
|
|
val calendar = Calendar.getInstance() |
|
|
|
@ -41,6 +45,8 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener, |
|
|
|
dateTimePickerManager.delegate = delegate |
|
|
|
dateTimePickerManager.delegate = delegate |
|
|
|
dateTimePickerManager.calendar = calendar |
|
|
|
dateTimePickerManager.calendar = calendar |
|
|
|
dateTimePickerManager.minimumDate = minimumDate |
|
|
|
dateTimePickerManager.minimumDate = minimumDate |
|
|
|
|
|
|
|
dateTimePickerManager.onlyDate = onlyDate ?: false |
|
|
|
|
|
|
|
dateTimePickerManager.isClearable = isClearable ?: true |
|
|
|
|
|
|
|
|
|
|
|
dateTimePickerManager.showDatePicker() |
|
|
|
dateTimePickerManager.showDatePicker() |
|
|
|
|
|
|
|
|
|
|
|
@ -52,7 +58,11 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener, |
|
|
|
calendar.set(Calendar.YEAR, year) |
|
|
|
calendar.set(Calendar.YEAR, year) |
|
|
|
calendar.set(Calendar.MONTH, month) |
|
|
|
calendar.set(Calendar.MONTH, month) |
|
|
|
calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth) |
|
|
|
calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth) |
|
|
|
|
|
|
|
if (!onlyDate) { |
|
|
|
showTimePicker() |
|
|
|
showTimePicker() |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
delegate.onRowValueChanged(calendar.time, row) |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
override fun onTimeSet(view: TimePicker?, hourOfDay: Int, minute: Int) { |
|
|
|
override fun onTimeSet(view: TimePicker?, hourOfDay: Int, minute: Int) { |
|
|
|
@ -86,10 +96,13 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener, |
|
|
|
datePickerDialog.datePicker.minDate = it.time |
|
|
|
datePickerDialog.datePicker.minDate = it.time |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (isClearable) { |
|
|
|
datePickerDialog.setButton(DialogInterface.BUTTON_NEGATIVE, it.getString(R.string.clear)) { dialog, _ -> |
|
|
|
datePickerDialog.setButton(DialogInterface.BUTTON_NEGATIVE, it.getString(R.string.clear)) { dialog, _ -> |
|
|
|
delegate.onRowValueChanged(null, row) |
|
|
|
delegate.onRowValueChanged(null, row) |
|
|
|
dialog.dismiss() |
|
|
|
dialog.dismiss() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
datePickerDialog.show() |
|
|
|
datePickerDialog.show() |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|