visitor
This commit is contained in:
parent
c3a9826001
commit
351547f111
7 changed files with 55 additions and 16 deletions
|
@ -5,13 +5,9 @@ import android.media.RingtoneManager
|
|||
import android.net.Uri
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import be.ugent.sel.studeez.data.local.models.timer_functional.FunctionalCustomTimer
|
||||
import be.ugent.sel.studeez.data.local.models.timer_functional.FunctionalEndlessTimer
|
||||
import be.ugent.sel.studeez.data.local.models.timer_functional.FunctionalPomodoroTimer
|
||||
import be.ugent.sel.studeez.data.local.models.timer_functional.FunctionalTimer
|
||||
import be.ugent.sel.studeez.screens.session.sessionScreens.BreakSessionScreen
|
||||
import be.ugent.sel.studeez.screens.session.sessionScreens.CustomSessionScreen
|
||||
import be.ugent.sel.studeez.screens.session.sessionScreens.EndlessSessionScreen
|
||||
import be.ugent.sel.studeez.screens.session.sessionScreens.AbstractSessionScreen
|
||||
import be.ugent.sel.studeez.screens.session.sessionScreens.GetSessionScreen
|
||||
|
||||
data class SessionActions(
|
||||
val getTimer: () -> FunctionalTimer,
|
||||
|
@ -51,12 +47,14 @@ fun SessionRoute(
|
|||
// mediaplayer.start()
|
||||
}
|
||||
|
||||
val sessionScreen = when (val timer = viewModel.getTimer()) {
|
||||
is FunctionalCustomTimer -> CustomSessionScreen(timer)
|
||||
is FunctionalPomodoroTimer -> BreakSessionScreen(timer)
|
||||
is FunctionalEndlessTimer -> EndlessSessionScreen()
|
||||
else -> throw java.lang.IllegalArgumentException("Unknown Timer")
|
||||
}
|
||||
val sessionScreen: AbstractSessionScreen = viewModel.getTimer().accept(GetSessionScreen())
|
||||
|
||||
//val sessionScreen = when (val timer = viewModel.getTimer()) {
|
||||
// is FunctionalCustomTimer -> CustomSessionScreen(timer)
|
||||
// is FunctionalPomodoroTimer -> BreakSessionScreen(timer)
|
||||
// is FunctionalEndlessTimer -> EndlessSessionScreen()
|
||||
// else -> throw java.lang.IllegalArgumentException("Unknown Timer")
|
||||
//}
|
||||
|
||||
sessionScreen(
|
||||
open = open,
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
package be.ugent.sel.studeez.screens.session.sessionScreens
|
||||
|
||||
import be.ugent.sel.studeez.data.local.models.timer_functional.FunctionalCustomTimer
|
||||
import be.ugent.sel.studeez.data.local.models.timer_functional.FunctionalEndlessTimer
|
||||
import be.ugent.sel.studeez.data.local.models.timer_functional.FunctionalPomodoroTimer
|
||||
import be.ugent.sel.studeez.data.local.models.timer_functional.FunctionalTimerVisitor
|
||||
|
||||
class GetSessionScreen : FunctionalTimerVisitor<AbstractSessionScreen> {
|
||||
override fun visitFunctionalCustomTimer(functionalCustomTimer: FunctionalCustomTimer): AbstractSessionScreen {
|
||||
return CustomSessionScreen(functionalCustomTimer)
|
||||
}
|
||||
|
||||
override fun visitFunctionalEndlessTimer(functionalEndlessTimer: FunctionalEndlessTimer): AbstractSessionScreen {
|
||||
return EndlessSessionScreen()
|
||||
}
|
||||
|
||||
override fun visitFunctionalBreakTimer(functionalPomodoroTimer: FunctionalPomodoroTimer): AbstractSessionScreen {
|
||||
return BreakSessionScreen(functionalPomodoroTimer)
|
||||
}
|
||||
}
|
Reference in a new issue