isSession vervangend door null waaarden

This commit is contained in:
Rune Dyselinck 2023-04-25 20:58:14 +02:00
parent b30edf6538
commit f46063eba1
3 changed files with 37 additions and 29 deletions

View file

@ -0,0 +1,34 @@
package be.ugent.sel.studeez.screens.session
import android.media.MediaPlayer
import kotlinx.coroutines.delay
import javax.inject.Singleton
import kotlin.time.Duration.Companion.seconds
@Singleton
object InvisibleSessionManager {
private var viewModel: SessionViewModel? = null
private var mediaplayer: MediaPlayer? = null
fun setParameters(viewModel: SessionViewModel, mediaplayer: MediaPlayer) {
this.viewModel = viewModel
this.mediaplayer = mediaplayer
}
suspend fun updateTimer() {
if (viewModel != null) {
while (true) {
delay(1.seconds)
viewModel!!.getTimer().tick()
if (viewModel!!.getTimer().hasCurrentCountdownEnded() && !viewModel!!.getTimer().hasEnded()) {
mediaplayer?.start()
}
}
}
}
fun removeParameters() {
viewModel = null
mediaplayer = null
}
}

View file

@ -35,7 +35,6 @@ 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
import javax.inject.Singleton
import kotlin.time.Duration.Companion.seconds
data class SessionActions(
@ -99,7 +98,7 @@ fun SessionScreen(
TextButton(
onClick = {
sessionActions.releaseMediaPlayer
InvisibleSessionManager.removeParameters()
open(StudeezDestinations.HOME_SCREEN)
// Vanaf hier ook naar report gaan als "end session" knop word ingedrukt
},
@ -109,7 +108,7 @@ fun SessionScreen(
.background(Color.Transparent)
) {
Text(
text = "End session",
text = resources().getString(R.string.end_session),
color = Color.Red,
fontWeight = FontWeight.Bold,
fontSize = 18.sp,
@ -190,32 +189,6 @@ private fun Timer(
}
}
@Singleton
object InvisibleSessionManager {
private lateinit var viewModel: SessionViewModel
private lateinit var mediaplayer: MediaPlayer
var isSession: Boolean = false
fun setParameters(viewModel: SessionViewModel, mediaplayer: MediaPlayer) {
isSession = true
this.viewModel = viewModel
this.mediaplayer = mediaplayer
}
suspend fun updateTimer() {
if (isSession) {
while (true) {
delay(1.seconds)
viewModel.getTimer().tick()
if (viewModel.getTimer().hasCurrentCountdownEnded() && !viewModel.getTimer().hasEnded()) {
mediaplayer.start()
}
}
}
}
}
@Preview
@Composable
fun TimerPreview() {

View file

@ -44,6 +44,7 @@
<!-- Sessions -->
<string name="sessions">Sessions</string>
<string name="end_session">End session</string>
<!-- Profile -->
<string name="profile">Profile</string>