From 3a68712cd968e93fdd0296b83ffb1fa2347fbc30 Mon Sep 17 00:00:00 2001 From: Rune Dyselinck Date: Tue, 18 Apr 2023 21:22:18 +0200 Subject: [PATCH] nieuwe SessionScreen.kt UI werkt met studystate en alle timer types --- .../local/models/timer_functional/FunctionalCustomTimer.kt | 5 +++++ .../local/models/timer_functional/FunctionalEndlessTimer.kt | 4 ++++ .../local/models/timer_functional/FunctionalPomodoroTimer.kt | 4 ++++ .../data/local/models/timer_functional/FunctionalTimer.kt | 4 +--- .../be/ugent/sel/studeez/screens/session/SessionScreen.kt | 5 ++--- .../be/ugent/sel/studeez/screens/session/SessionViewModel.kt | 1 + 6 files changed, 17 insertions(+), 6 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 5c5f396..ab533dd 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 @@ -11,6 +11,11 @@ class FunctionalCustomTimer(studyTime: Int) : FunctionalTimer(studyTime) { } override fun hasEnded(): Boolean { + return view == StudyState.DONE + } + + override fun hasCurrentCountdownEnded(): Boolean { return time.time == 0 } + } \ 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 1c055b5..70fcf7d 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 @@ -6,6 +6,10 @@ class FunctionalEndlessTimer() : FunctionalTimer(0) { return false } + override fun hasCurrentCountdownEnded(): Boolean { + return false + } + override fun tick() { time.plusOne() } 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 f18d824..3e2b97e 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 @@ -31,4 +31,8 @@ class FunctionalPomodoroTimer( override fun hasEnded(): Boolean { return breaksRemaining == 0 && time.time == 0 } + + override fun hasCurrentCountdownEnded(): Boolean { + return time.time == 0 + } } \ 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 264c621..dae27c6 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 @@ -12,9 +12,7 @@ abstract class FunctionalTimer(initialValue: Int) { abstract fun hasEnded(): Boolean - fun hasCurrentCountdownEnded(): Boolean { - return time.getTime() == 0 - } + abstract fun hasCurrentCountdownEnded(): Boolean enum class StudyState { FOCUS, DONE, BREAK, FOCUS_REMAINING diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/session/SessionScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/session/SessionScreen.kt index a458156..451f705 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/session/SessionScreen.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/session/SessionScreen.kt @@ -12,7 +12,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.Text import androidx.compose.material.TextButton -import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -31,7 +30,6 @@ import androidx.compose.ui.unit.sp import androidx.hilt.navigation.compose.hiltViewModel import be.ugent.sel.studeez.R 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.data.local.models.timer_functional.FunctionalTimer.StudyState import be.ugent.sel.studeez.resources import kotlinx.coroutines.delay @@ -43,6 +41,7 @@ var timerEnd = false fun SessionScreen( open: (String) -> Unit, openAndPopUp: (String, String) -> Unit, + viewModel: SessionViewModel = hiltViewModel() ) { val context = LocalContext.current val uri: Uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION) @@ -99,7 +98,7 @@ private fun Timer(viewModel: SessionViewModel = hiltViewModel(), mediaplayer: Me LaunchedEffect(tikker) { delay(1.seconds) viewModel.getTimer().tick() - ticker = !ticker + tikker = !tikker } if (viewModel.getTimer().hasCurrentCountdownEnded() && !viewModel.getTimer().hasEnded()) { diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/session/SessionViewModel.kt b/app/src/main/java/be/ugent/sel/studeez/screens/session/SessionViewModel.kt index 0e8960a..b45364e 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/session/SessionViewModel.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/session/SessionViewModel.kt @@ -4,6 +4,7 @@ import be.ugent.sel.studeez.data.local.models.timer_functional.FunctionalTimer import be.ugent.sel.studeez.domain.LogService import be.ugent.sel.studeez.screens.StudeezViewModel import be.ugent.sel.studeez.data.SelectedTimerState +import be.ugent.sel.studeez.data.local.models.timer_functional.FunctionalPomodoroTimer import dagger.hilt.android.lifecycle.HiltViewModel import javax.inject.Inject