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