This repository has been archived on 2026-05-26. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
weserplaner/app/src/main/java/com/denizk0461/studip/dialog/TimePickerFragment.kt
T

56 lines
1.8 KiB
Kotlin

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
/**
* 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
*/
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(":")
return TimePickerDialog(
activity,
this,
timestampSplit[0].toInt(),
timestampSplit[1].toInt(),
true,
)
}
/**
* Custom implementation of TimePickerDialog#OnTimeSetListener that includes a boolean to find
* out whether the start or the end timestamp has been edited.
*/
interface OnTimeSetListener {
/**
* 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
*/
fun onTimeSet(hours: Int, minutes: Int, isEventStart: Boolean)
}
/**
* Override the implementation of TimePickerDialog#OnTimeSetListener.
*/
override fun onTimeSet(picker: TimePicker?, hours: Int, minutes: Int) {
// Use custom implementation of OnTimeSetListener
listener.onTimeSet(hours, minutes, isEventStart)
}
}