|
|
|
|
@ -3,9 +3,11 @@ package net.pokeranalytics.android.ui.fragment.components |
|
|
|
|
import android.app.DatePickerDialog |
|
|
|
|
import android.app.TimePickerDialog |
|
|
|
|
import android.content.Context |
|
|
|
|
import android.content.DialogInterface |
|
|
|
|
import android.text.format.DateFormat |
|
|
|
|
import android.widget.DatePicker |
|
|
|
|
import android.widget.TimePicker |
|
|
|
|
import net.pokeranalytics.android.R |
|
|
|
|
import net.pokeranalytics.android.ui.adapter.components.DynamicRowInterface |
|
|
|
|
import java.util.* |
|
|
|
|
|
|
|
|
|
@ -13,11 +15,10 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener, |
|
|
|
|
TimePickerDialog.OnTimeSetListener { |
|
|
|
|
|
|
|
|
|
private var context: Context? = null |
|
|
|
|
private val calendar = Calendar.getInstance() |
|
|
|
|
|
|
|
|
|
lateinit var row: DynamicRowInterface |
|
|
|
|
lateinit var bottomSheetDelegate: BottomSheetDelegate |
|
|
|
|
|
|
|
|
|
lateinit var calendar: Calendar |
|
|
|
|
|
|
|
|
|
companion object { |
|
|
|
|
fun create( |
|
|
|
|
@ -26,16 +27,22 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener, |
|
|
|
|
bottomSheetDelegate: BottomSheetDelegate, |
|
|
|
|
date: Date? |
|
|
|
|
) : DateTimePickerManager { |
|
|
|
|
|
|
|
|
|
val calendar = Calendar.getInstance() |
|
|
|
|
calendar.time = date ?: Date() |
|
|
|
|
|
|
|
|
|
val dateTimePickerManager = DateTimePickerManager() |
|
|
|
|
dateTimePickerManager.context = context |
|
|
|
|
dateTimePickerManager.showDatePicker() |
|
|
|
|
dateTimePickerManager.row = row |
|
|
|
|
dateTimePickerManager.bottomSheetDelegate = bottomSheetDelegate |
|
|
|
|
dateTimePickerManager.calendar = calendar |
|
|
|
|
|
|
|
|
|
dateTimePickerManager.showDatePicker() |
|
|
|
|
|
|
|
|
|
return dateTimePickerManager |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun onDateSet(view: DatePicker?, year: Int, month: Int, dayOfMonth: Int) { |
|
|
|
|
calendar.set(Calendar.YEAR, year) |
|
|
|
|
calendar.set(Calendar.MONTH, month) |
|
|
|
|
@ -58,6 +65,10 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener, |
|
|
|
|
val day = calendar.get(Calendar.DAY_OF_MONTH) |
|
|
|
|
context?.let { |
|
|
|
|
val datePickerDialog = DatePickerDialog(it, this, year, month, day) |
|
|
|
|
datePickerDialog.setButton(DialogInterface.BUTTON_NEGATIVE, it.getString(R.string.clear)) { dialog, _ -> |
|
|
|
|
bottomSheetDelegate.clickOnClear(row) |
|
|
|
|
dialog.dismiss() |
|
|
|
|
} |
|
|
|
|
datePickerDialog.show() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
@ -66,10 +77,14 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener, |
|
|
|
|
* Show the time picker |
|
|
|
|
*/ |
|
|
|
|
private fun showTimePicker() { |
|
|
|
|
val hour = calendar.get(Calendar.YEAR) |
|
|
|
|
val minute = calendar.get(Calendar.MONTH) |
|
|
|
|
val hour = calendar.get(Calendar.HOUR_OF_DAY) |
|
|
|
|
val minute = calendar.get(Calendar.MINUTE) |
|
|
|
|
context?.let { |
|
|
|
|
val timePickerDialog = TimePickerDialog(context, this, hour, minute, DateFormat.is24HourFormat(context)) |
|
|
|
|
timePickerDialog.setButton(DialogInterface.BUTTON_NEGATIVE, it.getString(R.string.clear)) { dialog, _ -> |
|
|
|
|
bottomSheetDelegate.clickOnClear(row) |
|
|
|
|
dialog.dismiss() |
|
|
|
|
} |
|
|
|
|
timePickerDialog.show() |
|
|
|
|
} |
|
|
|
|
} |