diff --git a/app/src/main/java/net/pokeranalytics/android/ui/helpers/DateTimePickerManager.kt b/app/src/main/java/net/pokeranalytics/android/ui/helpers/DateTimePickerManager.kt index f4935267..eea9bd32 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/helpers/DateTimePickerManager.kt +++ b/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() } }