From c3a9826001aed884c23df606c013fd15317daceb Mon Sep 17 00:00:00 2001 From: Lukas Barragan Torres Date: Wed, 26 Apr 2023 11:05:08 +0200 Subject: [PATCH] remove getView from functional timer and add when in sessionRoute --- .../timer_functional/FunctionalCustomTimer.kt | 4 ---- .../FunctionalEndlessTimer.kt | 4 ---- .../FunctionalPomodoroTimer.kt | 4 ---- .../timer_functional/FunctionalTimer.kt | 3 --- .../studeez/screens/session/SessionRoute.kt | 20 +++++++++++++++---- .../sessionScreens/AbstractSessionScreen.kt | 2 +- 6 files changed, 17 insertions(+), 20 deletions(-) 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, ) {