2023-04-24 15:43:42 +02:00
|
|
|
package com.denizk0461.studip.dialog
|
|
|
|
|
|
|
|
|
|
import android.app.Dialog
|
|
|
|
|
import androidx.fragment.app.DialogFragment
|
|
|
|
|
import android.app.TimePickerDialog
|
|
|
|
|
import android.os.Bundle
|
|
|
|
|
import android.widget.TimePicker
|
|
|
|
|
|
2023-04-27 20:27:42 +02:00
|
|
|
/**
|
|
|
|
|
* Dialogue used for letting the user pick a timestamp.
|
|
|
|
|
*
|
|
|
|
|
* @param timestamp timestamp that is to be edited
|
|
|
|
|
* @param listener listener for when the user finishes setting a time
|
|
|
|
|
* @param isEventStart whether the timestamp to be edited is the start of the event
|
|
|
|
|
*/
|
2023-04-24 15:43:42 +02:00
|
|
|
class TimePickerFragment(
|
|
|
|
|
private val timestamp: String,
|
|
|
|
|
private val listener: OnTimeSetListener,
|
|
|
|
|
private val isEventStart: Boolean,
|
|
|
|
|
) : DialogFragment(), TimePickerDialog.OnTimeSetListener {
|
|
|
|
|
|
|
|
|
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
|
|
|
|
val timestampSplit = timestamp.split(":")
|
2023-04-27 20:27:42 +02:00
|
|
|
return TimePickerDialog(
|
|
|
|
|
activity,
|
|
|
|
|
this,
|
|
|
|
|
timestampSplit[0].toInt(),
|
|
|
|
|
timestampSplit[1].toInt(),
|
|
|
|
|
true,
|
|
|
|
|
)
|
2023-04-24 15:43:42 +02:00
|
|
|
}
|
|
|
|
|
|
2023-04-27 20:27:42 +02:00
|
|
|
/**
|
|
|
|
|
* Custom implementation of TimePickerDialog#OnTimeSetListener that includes a boolean to find
|
|
|
|
|
* out whether the start or the end timestamp has been edited.
|
|
|
|
|
*/
|
2023-04-24 15:43:42 +02:00
|
|
|
interface OnTimeSetListener {
|
2023-04-27 20:27:42 +02:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Timestamp has been edited by the user.
|
|
|
|
|
*
|
|
|
|
|
* @param hours hour of the timestamp
|
|
|
|
|
* @param minutes minute of the timestamp
|
|
|
|
|
* @param isEventStart whether the timestamp to be edited is the start of the event
|
|
|
|
|
*/
|
2023-04-24 15:43:42 +02:00
|
|
|
fun onTimeSet(hours: Int, minutes: Int, isEventStart: Boolean)
|
|
|
|
|
}
|
|
|
|
|
|
2023-04-27 20:27:42 +02:00
|
|
|
/**
|
|
|
|
|
* Override the implementation of TimePickerDialog#OnTimeSetListener.
|
|
|
|
|
*/
|
2023-04-24 15:43:42 +02:00
|
|
|
override fun onTimeSet(picker: TimePicker?, hours: Int, minutes: Int) {
|
2023-04-27 20:27:42 +02:00
|
|
|
// Use custom implementation of OnTimeSetListener
|
2023-04-24 15:43:42 +02:00
|
|
|
listener.onTimeSet(hours, minutes, isEventStart)
|
|
|
|
|
}
|
|
|
|
|
}
|