Extrahiere DatePicker-Logik in eigene Klasse
parent
b802e3798d
commit
ad1fa586c5
@ -0,0 +1,37 @@
|
||||
package com.cyb3rko.techniklogger.modals
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import com.google.android.material.datepicker.MaterialDatePicker
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
|
||||
internal class DatePickerBuilder {
|
||||
companion object {
|
||||
private const val TAG = "DatePickerDialog"
|
||||
}
|
||||
|
||||
@SuppressLint("SimpleDateFormat")
|
||||
private val simpleDateFormat = SimpleDateFormat("dd.MM.yyyy")
|
||||
private var initialDate = 0L
|
||||
|
||||
internal fun setInitialDate(date: String) {
|
||||
initialDate = simpleDateFormat.parse(date)!!.time + 7200000
|
||||
}
|
||||
|
||||
internal fun show(activity: FragmentActivity, action: (date: String) -> Unit) {
|
||||
val builder = MaterialDatePicker.Builder.datePicker()
|
||||
.setTitleText("Datum")
|
||||
|
||||
if (initialDate != 0L) builder.setSelection(initialDate)
|
||||
|
||||
val picker = builder.build()
|
||||
|
||||
picker.addOnPositiveButtonClickListener {
|
||||
val date = simpleDateFormat.format(Date(it))
|
||||
action(date)
|
||||
}
|
||||
|
||||
picker.show(activity.supportFragmentManager, TAG)
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue