Add parameters to Date Picker

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

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

Loading…
Cancel
Save