#118 new visitor for session screen
This commit is contained in:
parent
b614f7d530
commit
052ebb8c32
1 changed files with 46 additions and 1 deletions
|
@ -1,4 +1,49 @@
|
||||||
package be.ugent.sel.studeez.screens.session.sessionScreens.composables
|
package be.ugent.sel.studeez.screens.session.sessionScreens.composables
|
||||||
|
|
||||||
class GetSessionScreenComposable {
|
import android.media.MediaPlayer
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
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
|
||||||
|
import be.ugent.sel.studeez.screens.session.SessionActions
|
||||||
|
import be.ugent.sel.studeez.screens.session.sessionScreens.AbstractSessionScreen
|
||||||
|
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
|
||||||
|
|
||||||
|
class GetSessionScreenComposable(
|
||||||
|
private val mediaplayer: MediaPlayer?,
|
||||||
|
private val open: (String) -> Unit,
|
||||||
|
private val sessionActions: SessionActions
|
||||||
|
) :
|
||||||
|
FunctionalTimerVisitor<@Composable () -> Unit> {
|
||||||
|
|
||||||
|
override fun visitFunctionalCustomTimer(functionalCustomTimer: FunctionalCustomTimer): @Composable () -> Unit {
|
||||||
|
return { CustomTimerSessionScreenComposable(
|
||||||
|
open = open,
|
||||||
|
sessionActions = sessionActions,
|
||||||
|
customTimer = functionalCustomTimer
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun visitFunctionalEndlessTimer(functionalEndlessTimer: FunctionalEndlessTimer): @Composable () -> Unit {
|
||||||
|
return {
|
||||||
|
EndlessTimerSessionScreenComposable(
|
||||||
|
open = open,
|
||||||
|
sessionActions = sessionActions,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun visitFunctionalBreakTimer(functionalPomodoroTimer: FunctionalPomodoroTimer): @Composable () -> Unit {
|
||||||
|
return {
|
||||||
|
BreakSessionScreenComposable(
|
||||||
|
open = open,
|
||||||
|
sessionActions = sessionActions,
|
||||||
|
pomodoroTimer = functionalPomodoroTimer
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
Reference in a new issue