Add parameters to Date Picker

feature/top10
Aurelien Hubert 7 years ago
parent 4888acf985
commit 56cb8b4143
  1. 17
      app/src/main/java/net/pokeranalytics/android/ui/helpers/DateTimePickerManager.kt

@ -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,8 +31,10 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener,
row: RowRepresentable, row: RowRepresentable,
delegate: RowRepresentableDelegate, delegate: RowRepresentableDelegate,
date: Date?, date: Date?,
minimumDate: Date? = null minimumDate: Date? = null,
) : DateTimePickerManager { onlyDate: Boolean? = false,
isClearable: Boolean? = true
): DateTimePickerManager {
val calendar = Calendar.getInstance() val calendar = Calendar.getInstance()
calendar.time = date ?: Date() calendar.time = date ?: Date()
@ -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()
} }
} }

Loading…
Cancel
Save