preview + visitor refactor
This commit is contained in:
		
							parent
							
								
									351547f111
								
							
						
					
					
						commit
						9a18bcc414
					
				
					 2 changed files with 22 additions and 12 deletions
				
			
		| 
						 | 
				
			
			@ -15,8 +15,10 @@ import androidx.compose.ui.Modifier
 | 
			
		|||
import androidx.compose.ui.graphics.Color
 | 
			
		||||
import androidx.compose.ui.text.font.FontWeight
 | 
			
		||||
import androidx.compose.ui.text.style.TextAlign
 | 
			
		||||
import androidx.compose.ui.tooling.preview.Preview
 | 
			
		||||
import androidx.compose.ui.unit.dp
 | 
			
		||||
import androidx.compose.ui.unit.sp
 | 
			
		||||
import be.ugent.sel.studeez.data.local.models.timer_functional.FunctionalEndlessTimer
 | 
			
		||||
import be.ugent.sel.studeez.navigation.StudeezDestinations
 | 
			
		||||
import be.ugent.sel.studeez.screens.session.SessionActions
 | 
			
		||||
import kotlinx.coroutines.delay
 | 
			
		||||
| 
						 | 
				
			
			@ -66,7 +68,7 @@ abstract class AbstractSessionScreen {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    @Composable
 | 
			
		||||
    private fun Timer(
 | 
			
		||||
    fun Timer(
 | 
			
		||||
        sessionActions: SessionActions,
 | 
			
		||||
    ) {
 | 
			
		||||
        var tikker by remember { mutableStateOf(false) }
 | 
			
		||||
| 
						 | 
				
			
			@ -85,8 +87,8 @@ abstract class AbstractSessionScreen {
 | 
			
		|||
 | 
			
		||||
        if (!timerEnd && sessionActions.getTimer().hasEnded()) {
 | 
			
		||||
//        sessionActions.prepareMediaPlayer()
 | 
			
		||||
            timerEnd =
 | 
			
		||||
                true // Placeholder, vanaf hier moet het report opgestart worden en de sessie afgesloten
 | 
			
		||||
             timerEnd =
 | 
			
		||||
                 true // Placeholder, vanaf hier moet het report opgestart worden en de sessie afgesloten
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        val hms = sessionActions.getTimer().getHoursMinutesSeconds()
 | 
			
		||||
| 
						 | 
				
			
			@ -135,4 +137,15 @@ abstract class AbstractSessionScreen {
 | 
			
		|||
    @Composable
 | 
			
		||||
    abstract fun motivationString(): String
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@Preview
 | 
			
		||||
@Composable
 | 
			
		||||
fun TimerPreview() {
 | 
			
		||||
    val sessionScreen = object : AbstractSessionScreen() {
 | 
			
		||||
        @Composable
 | 
			
		||||
        override fun motivationString(): String = "Test"
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    sessionScreen.Timer(sessionActions = SessionActions({ FunctionalEndlessTimer() }, { "Preview" }, {}, {}))
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -6,15 +6,12 @@ import be.ugent.sel.studeez.data.local.models.timer_functional.FunctionalPomodor
 | 
			
		|||
import be.ugent.sel.studeez.data.local.models.timer_functional.FunctionalTimerVisitor
 | 
			
		||||
 | 
			
		||||
class GetSessionScreen : FunctionalTimerVisitor<AbstractSessionScreen> {
 | 
			
		||||
    override fun visitFunctionalCustomTimer(functionalCustomTimer: FunctionalCustomTimer): AbstractSessionScreen {
 | 
			
		||||
        return CustomSessionScreen(functionalCustomTimer)
 | 
			
		||||
    }
 | 
			
		||||
    override fun visitFunctionalCustomTimer(functionalCustomTimer: FunctionalCustomTimer): AbstractSessionScreen =
 | 
			
		||||
        CustomSessionScreen(functionalCustomTimer)
 | 
			
		||||
 | 
			
		||||
    override fun visitFunctionalEndlessTimer(functionalEndlessTimer: FunctionalEndlessTimer): AbstractSessionScreen {
 | 
			
		||||
        return EndlessSessionScreen()
 | 
			
		||||
    }
 | 
			
		||||
    override fun visitFunctionalEndlessTimer(functionalEndlessTimer: FunctionalEndlessTimer): AbstractSessionScreen =
 | 
			
		||||
        EndlessSessionScreen()
 | 
			
		||||
 | 
			
		||||
    override fun visitFunctionalBreakTimer(functionalPomodoroTimer: FunctionalPomodoroTimer): AbstractSessionScreen {
 | 
			
		||||
        return BreakSessionScreen(functionalPomodoroTimer)
 | 
			
		||||
    }
 | 
			
		||||
    override fun visitFunctionalBreakTimer(functionalPomodoroTimer: FunctionalPomodoroTimer): AbstractSessionScreen =
 | 
			
		||||
        BreakSessionScreen(functionalPomodoroTimer)
 | 
			
		||||
}
 | 
			
		||||
		Reference in a new issue