diff --git a/app/src/main/java/be/ugent/sel/studeez/data/local/models/timer_functional/FunctionalCustomTimer.kt b/app/src/main/java/be/ugent/sel/studeez/data/local/models/timer_functional/FunctionalCustomTimer.kt index 15dd00c..822d3af 100644 --- a/app/src/main/java/be/ugent/sel/studeez/data/local/models/timer_functional/FunctionalCustomTimer.kt +++ b/app/src/main/java/be/ugent/sel/studeez/data/local/models/timer_functional/FunctionalCustomTimer.kt @@ -19,8 +19,4 @@ class FunctionalCustomTimer(studyTime: Int) : FunctionalTimer(studyTime) { return hasEnded() } - override fun getView(): AbstractSessionScreen { - return CustomSessionScreen(this) - } - } \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/data/local/models/timer_functional/FunctionalEndlessTimer.kt b/app/src/main/java/be/ugent/sel/studeez/data/local/models/timer_functional/FunctionalEndlessTimer.kt index eb368f4..d9d3613 100644 --- a/app/src/main/java/be/ugent/sel/studeez/data/local/models/timer_functional/FunctionalEndlessTimer.kt +++ b/app/src/main/java/be/ugent/sel/studeez/data/local/models/timer_functional/FunctionalEndlessTimer.kt @@ -16,8 +16,4 @@ class FunctionalEndlessTimer : FunctionalTimer(0) { override fun tick() { time.plusOne() } - - override fun getView(): AbstractSessionScreen { - return EndlessSessionScreen() - } } \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/data/local/models/timer_functional/FunctionalPomodoroTimer.kt b/app/src/main/java/be/ugent/sel/studeez/data/local/models/timer_functional/FunctionalPomodoroTimer.kt index 931cbe6..f35c0f7 100644 --- a/app/src/main/java/be/ugent/sel/studeez/data/local/models/timer_functional/FunctionalPomodoroTimer.kt +++ b/app/src/main/java/be/ugent/sel/studeez/data/local/models/timer_functional/FunctionalPomodoroTimer.kt @@ -39,8 +39,4 @@ class FunctionalPomodoroTimer( override fun hasCurrentCountdownEnded(): Boolean { return time.time == 0 } - - override fun getView(): AbstractSessionScreen { - return BreakSessionScreen(this) - } } \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/data/local/models/timer_functional/FunctionalTimer.kt b/app/src/main/java/be/ugent/sel/studeez/data/local/models/timer_functional/FunctionalTimer.kt index 449b85c..71eb38a 100644 --- a/app/src/main/java/be/ugent/sel/studeez/data/local/models/timer_functional/FunctionalTimer.kt +++ b/app/src/main/java/be/ugent/sel/studeez/data/local/models/timer_functional/FunctionalTimer.kt @@ -13,7 +13,4 @@ abstract class FunctionalTimer(initialValue: Int) { abstract fun hasEnded(): Boolean abstract fun hasCurrentCountdownEnded(): Boolean - - abstract fun getView(): AbstractSessionScreen - } \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/session/SessionRoute.kt b/app/src/main/java/be/ugent/sel/studeez/screens/session/SessionRoute.kt index 0d930dc..2511fde 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/session/SessionRoute.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/session/SessionRoute.kt @@ -5,8 +5,13 @@ 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.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 data class SessionActions( val getTimer: () -> FunctionalTimer, @@ -32,7 +37,6 @@ fun SessionRoute( open: (String) -> Unit, viewModel: SessionViewModel, ) { - val sessionScreen: AbstractSessionScreen = viewModel.getTimer().getView() val context = LocalContext.current val uri: Uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION) val mediaplayer = MediaPlayer() @@ -46,8 +50,16 @@ fun SessionRoute( mediaplayer.setOnPreparedListener { // mediaplayer.start() } - sessionScreen.SessionScreen( + + 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, - sessionActions = getSessionActions(viewModel, mediaplayer), + sessionActions = getSessionActions(viewModel, mediaplayer) ) } diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/session/sessionScreens/AbstractSessionScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/session/sessionScreens/AbstractSessionScreen.kt index 9bb9d73..3db5b36 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/session/sessionScreens/AbstractSessionScreen.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/session/sessionScreens/AbstractSessionScreen.kt @@ -27,7 +27,7 @@ abstract class AbstractSessionScreen { var timerEnd = false @Composable - fun SessionScreen( + operator fun invoke( open: (String) -> Unit, sessionActions: SessionActions, ) {