timepicker button met popup-klok functionaliteit
This commit is contained in:
parent
6b7ec41f32
commit
5b0cff2376
10 changed files with 112 additions and 0 deletions
|
@ -0,0 +1,47 @@
|
||||||
|
package be.ugent.sel.studeez.common.composable
|
||||||
|
|
||||||
|
import android.app.TimePickerDialog
|
||||||
|
import android.app.TimePickerDialog.OnTimeSetListener
|
||||||
|
import android.content.Context
|
||||||
|
import androidx.compose.foundation.BorderStroke
|
||||||
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
|
import androidx.compose.material.Button
|
||||||
|
import androidx.compose.material.ButtonColors
|
||||||
|
import androidx.compose.material.ButtonDefaults
|
||||||
|
import androidx.compose.material.Text
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.platform.LocalContext
|
||||||
|
import androidx.compose.ui.unit.dp
|
||||||
|
import be.ugent.sel.studeez.data.local.models.timer_functional.HoursMinutesSeconds
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
|
// TODO codeduplicatie met Tibo, later wegdoen
|
||||||
|
@Composable
|
||||||
|
fun TimePickerButton(
|
||||||
|
hoursMinutesSeconds: HoursMinutesSeconds,
|
||||||
|
modifier: Modifier = Modifier,
|
||||||
|
colors: ButtonColors = ButtonDefaults.buttonColors(),
|
||||||
|
border: BorderStroke? = null,
|
||||||
|
onTimeSetListener: OnTimeSetListener
|
||||||
|
) {
|
||||||
|
val context = LocalContext.current
|
||||||
|
Button(
|
||||||
|
onClick = { pickDuration(context, onTimeSetListener) },
|
||||||
|
modifier = modifier,
|
||||||
|
shape = RoundedCornerShape(20.dp),
|
||||||
|
colors = colors,
|
||||||
|
border = border
|
||||||
|
) {
|
||||||
|
Text(text = hoursMinutesSeconds.toString())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO idem codedup Tibo
|
||||||
|
private fun pickDuration(context: Context, listener: OnTimeSetListener) {
|
||||||
|
val mCalendar = Calendar.getInstance()
|
||||||
|
val mHour = mCalendar[Calendar.HOUR]
|
||||||
|
val mMinute = mCalendar[Calendar.MINUTE]
|
||||||
|
val mTimePickerDialog = TimePickerDialog(context, listener, mHour, mMinute, true)
|
||||||
|
mTimePickerDialog.show()
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
package be.ugent.sel.studeez.data
|
||||||
|
|
||||||
|
class EditTimerState {
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
package be.ugent.sel.studeez.data.local.models.timer_info
|
||||||
|
|
||||||
|
interface TimerInfoVisitor {
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
package be.ugent.sel.studeez.screens.timer_edit
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
|
import androidx.compose.foundation.layout.Column
|
||||||
|
import androidx.compose.foundation.layout.Row
|
||||||
|
import androidx.compose.material.Text
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.ui.Modifier
|
||||||
|
import be.ugent.sel.studeez.R
|
||||||
|
import be.ugent.sel.studeez.common.composable.BasicButton
|
||||||
|
import be.ugent.sel.studeez.common.ext.basicButton
|
||||||
|
import be.ugent.sel.studeez.data.local.models.timer_info.CustomTimerInfo
|
||||||
|
import be.ugent.sel.studeez.data.local.models.timer_info.EndlessTimerInfo
|
||||||
|
import be.ugent.sel.studeez.data.local.models.timer_info.PomodoroTimerInfo
|
||||||
|
import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfoVisitor
|
||||||
|
|
||||||
|
class GetTimerEditView: TimerInfoVisitor<Unit> {
|
||||||
|
|
||||||
|
@SuppressLint("ComposableNaming")
|
||||||
|
override fun visitCustomTimerInfo(customTimerInfo: CustomTimerInfo) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressLint("ComposableNaming")
|
||||||
|
override fun visitEndlessTimerInfo(endlessTimerInfo: EndlessTimerInfo) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressLint("ComposableNaming")
|
||||||
|
override fun visitBreakTimerInfo(pomodoroTimerInfo: PomodoroTimerInfo) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,2 @@
|
||||||
|
package be.ugent.sel.studeez.screens.timer_edit
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
package be.ugent.sel.studeez.screens.timer_edit
|
||||||
|
|
||||||
|
class TimerEditViewModel {
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
package be.ugent.sel.studeez.screens.timer_edit
|
||||||
|
|
||||||
|
abstract class AbstractTimerEditScreen {
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
package be.ugent.sel.studeez.screens.timer_edit.editScreens
|
||||||
|
|
||||||
|
class BreakTimerEditScreen {
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
package be.ugent.sel.studeez.screens.timer_edit
|
||||||
|
|
||||||
|
class CustomTimerEditScreen {
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
package be.ugent.sel.studeez.screens.timer_edit.editScreens
|
||||||
|
|
||||||
|
class EndlessTimerEditScreen {
|
||||||
|
}
|
Reference in a new issue