diff --git a/.idea/misc.xml b/.idea/misc.xml index 704c883..bdd9278 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/java/be/ugent/sel/studeez/activities/MainActivity.kt b/app/src/main/java/be/ugent/sel/studeez/activities/MainActivity.kt index 318fe7a..6829e7f 100644 --- a/app/src/main/java/be/ugent/sel/studeez/activities/MainActivity.kt +++ b/app/src/main/java/be/ugent/sel/studeez/activities/MainActivity.kt @@ -1,6 +1,7 @@ package be.ugent.sel.studeez.activities import android.os.Bundle +import android.util.Log import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.fillMaxSize @@ -11,6 +12,8 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import be.ugent.sel.studeez.StudeezApp +import be.ugent.sel.studeez.screens.session.SessionTest +import be.ugent.sel.studeez.screens.session.test import be.ugent.sel.studeez.ui.theme.StudeezTheme import dagger.hilt.android.AndroidEntryPoint @@ -30,6 +33,16 @@ class MainActivity : ComponentActivity() { } } } + + override fun onStop() { + test() + super.onStop() + } + + override fun onStart() { + SessionTest.updateTimer() + super.onStart() + } } @Composable 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 dae27c6..bb7423e 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 @@ -1,7 +1,7 @@ package be.ugent.sel.studeez.data.local.models.timer_functional abstract class FunctionalTimer(initialValue: Int) { - val time: Time = Time(initialValue) + var time: Time = Time(initialValue) var view: StudyState = StudyState.FOCUS fun getHoursMinutesSeconds(): HoursMinutesSeconds { diff --git a/app/src/main/java/be/ugent/sel/studeez/data/local/models/timer_functional/Time.kt b/app/src/main/java/be/ugent/sel/studeez/data/local/models/timer_functional/Time.kt index ec7702d..83be75d 100644 --- a/app/src/main/java/be/ugent/sel/studeez/data/local/models/timer_functional/Time.kt +++ b/app/src/main/java/be/ugent/sel/studeez/data/local/models/timer_functional/Time.kt @@ -4,6 +4,10 @@ class Time(initialTime: Int) { var time = initialTime + fun min(i: Int) { + time -= i + } + fun minOne() { time-- } 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 0559291..dee4f12 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 @@ -3,6 +3,7 @@ package be.ugent.sel.studeez.screens.session import android.media.MediaPlayer import android.media.RingtoneManager import android.net.Uri +import android.util.Log import androidx.compose.foundation.background import androidx.compose.foundation.border import androidx.compose.foundation.layout.Box @@ -31,10 +32,20 @@ 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.StudyState +import be.ugent.sel.studeez.data.local.models.timer_functional.Time import be.ugent.sel.studeez.resources import kotlinx.coroutines.delay +import java.time.Duration +import java.time.LocalDateTime +import java.time.ZoneId +import java.util.* +import kotlin.properties.Delegates +import kotlin.time.Duration.Companion.hours +import kotlin.time.Duration.Companion.minutes import kotlin.time.Duration.Companion.seconds +var start: LocalDateTime = Calendar.getInstance().time.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime() + @Composable fun SessionScreen( open: (String) -> Unit, @@ -46,6 +57,8 @@ fun SessionScreen( val mediaplayer = MediaPlayer.create(context, uri) mediaplayer.isLooping = false + SessionTest.setNewViewModel(viewModel = viewModel) + Column( modifier = Modifier.padding(10.dp) ) { @@ -81,6 +94,11 @@ fun SessionScreen( } } +private operator fun Time.minus(time: Time): Time { + return Time(this.time - time.time) + +} + @Composable private fun Timer(viewModel: SessionViewModel = hiltViewModel(), mediaplayer: MediaPlayer) { var tikker by remember { mutableStateOf(false) } @@ -146,6 +164,33 @@ private fun Timer(viewModel: SessionViewModel = hiltViewModel(), mediaplayer: Me } } } +} + +fun test() { + start = Calendar.getInstance().time.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime() +} + +object SessionTest { + lateinit var viewModel: SessionViewModel + private var isSession: Boolean = false + + fun setNewViewModel(viewModel: SessionViewModel) { + isSession = true + this.viewModel = viewModel + } + + fun updateTimer() { + if (isSession) { + val end = Calendar.getInstance().time.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime() + + val duration = Duration.between(start, end) + + val hours = duration.toHours() + val minutes = duration.toMinutes() % 60 + val seconds = duration.seconds % 60 + viewModel.getTimer().time.min((hours + minutes + seconds).toInt()) + } + } } \ No newline at end of file