|
|
|
|
@ -7,6 +7,7 @@ import android.content.DialogInterface |
|
|
|
|
import android.text.format.DateFormat |
|
|
|
|
import android.widget.DatePicker |
|
|
|
|
import android.widget.TimePicker |
|
|
|
|
import android.widget.Toast |
|
|
|
|
import net.pokeranalytics.android.R |
|
|
|
|
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate |
|
|
|
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
|
|
|
|
@ -17,16 +18,18 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener, |
|
|
|
|
|
|
|
|
|
private var context: Context? = null |
|
|
|
|
|
|
|
|
|
lateinit var row: RowRepresentable |
|
|
|
|
lateinit var delegate: RowRepresentableDelegate |
|
|
|
|
lateinit var calendar: Calendar |
|
|
|
|
private lateinit var row: RowRepresentable |
|
|
|
|
private lateinit var delegate: RowRepresentableDelegate |
|
|
|
|
private lateinit var calendar: Calendar |
|
|
|
|
private var minimumDate: Date? = null |
|
|
|
|
|
|
|
|
|
companion object { |
|
|
|
|
fun create( |
|
|
|
|
context: Context, |
|
|
|
|
row: RowRepresentable, |
|
|
|
|
delegate: RowRepresentableDelegate, |
|
|
|
|
date: Date? |
|
|
|
|
date: Date?, |
|
|
|
|
minimumDate: Date? = null |
|
|
|
|
) : DateTimePickerManager { |
|
|
|
|
|
|
|
|
|
val calendar = Calendar.getInstance() |
|
|
|
|
@ -37,6 +40,7 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener, |
|
|
|
|
dateTimePickerManager.row = row |
|
|
|
|
dateTimePickerManager.delegate = delegate |
|
|
|
|
dateTimePickerManager.calendar = calendar |
|
|
|
|
dateTimePickerManager.minimumDate = minimumDate |
|
|
|
|
|
|
|
|
|
dateTimePickerManager.showDatePicker() |
|
|
|
|
|
|
|
|
|
@ -54,7 +58,19 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener, |
|
|
|
|
override fun onTimeSet(view: TimePicker?, hourOfDay: Int, minute: Int) { |
|
|
|
|
calendar.set(Calendar.HOUR_OF_DAY, hourOfDay) |
|
|
|
|
calendar.set(Calendar.MINUTE, minute) |
|
|
|
|
delegate.onRowValueChanged(calendar.time, row) |
|
|
|
|
|
|
|
|
|
if (minimumDate != null) { |
|
|
|
|
minimumDate?.let { |
|
|
|
|
if (calendar.time < it) { |
|
|
|
|
Toast.makeText(context, R.string.end_date_not_possible, Toast.LENGTH_LONG).show() |
|
|
|
|
} else { |
|
|
|
|
delegate.onRowValueChanged(calendar.time, row) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
delegate.onRowValueChanged(calendar.time, row) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
@ -66,6 +82,10 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener, |
|
|
|
|
val day = calendar.get(Calendar.DAY_OF_MONTH) |
|
|
|
|
context?.let { |
|
|
|
|
val datePickerDialog = DatePickerDialog(it, this, year, month, day) |
|
|
|
|
minimumDate?.let { |
|
|
|
|
datePickerDialog.datePicker.minDate = it.time |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
datePickerDialog.setButton(DialogInterface.BUTTON_NEGATIVE, it.getString(R.string.clear)) { dialog, _ -> |
|
|
|
|
delegate.onRowValueChanged(null, row) |
|
|
|
|
dialog.dismiss() |
|
|
|
|
|