isSession vervangend door null waaarden
This commit is contained in:
		
							parent
							
								
									b30edf6538
								
							
						
					
					
						commit
						f46063eba1
					
				
					 3 changed files with 37 additions and 29 deletions
				
			
		| 
						 | 
				
			
			@ -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
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -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() {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue