added midsection implementation
This commit is contained in:
parent
3fb8b08cb4
commit
47620f69ed
1 changed files with 53 additions and 5 deletions
|
@ -1,7 +1,20 @@
|
||||||
package be.ugent.sel.studeez.screens.session.sessionScreens
|
package be.ugent.sel.studeez.screens.session.sessionScreens
|
||||||
|
|
||||||
import android.media.MediaPlayer
|
import android.media.MediaPlayer
|
||||||
|
import androidx.compose.foundation.background
|
||||||
|
import androidx.compose.foundation.layout.*
|
||||||
|
import androidx.compose.foundation.shape.CircleShape
|
||||||
|
import androidx.compose.material.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.ui.Alignment
|
||||||
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.draw.clip
|
||||||
|
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.R
|
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.FunctionalPomodoroTimer
|
||||||
import be.ugent.sel.studeez.resources
|
import be.ugent.sel.studeez.resources
|
||||||
|
@ -12,6 +25,37 @@ class BreakSessionScreen(
|
||||||
private var mediaplayer: MediaPlayer?
|
private var mediaplayer: MediaPlayer?
|
||||||
): AbstractSessionScreen() {
|
): AbstractSessionScreen() {
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
override fun MidSection() {
|
||||||
|
Dots()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun Dots() {
|
||||||
|
Row(
|
||||||
|
modifier = Modifier.fillMaxWidth(),
|
||||||
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
|
horizontalArrangement = Arrangement.Center,
|
||||||
|
) {
|
||||||
|
repeat(funPomoDoroTimer.breaksRemaining - 1) {
|
||||||
|
Dot(color = Color.DarkGray)
|
||||||
|
}
|
||||||
|
if (funPomoDoroTimer.isInBreak) Dot(Color.Green) else Dot(Color.DarkGray)
|
||||||
|
repeat(funPomoDoroTimer.repeats - funPomoDoroTimer.breaksRemaining) {
|
||||||
|
Dot(color = Color.Gray)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
private fun Dot(color: Color) {
|
||||||
|
Box(modifier = Modifier
|
||||||
|
.padding(5.dp)
|
||||||
|
.size(10.dp)
|
||||||
|
.clip(CircleShape)
|
||||||
|
.background(color))
|
||||||
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
override fun motivationString(): String {
|
override fun motivationString(): String {
|
||||||
if (funPomoDoroTimer.isInBreak) {
|
if (funPomoDoroTimer.isInBreak) {
|
||||||
|
@ -22,11 +66,7 @@ class BreakSessionScreen(
|
||||||
return resources().getString(AppText.state_done)
|
return resources().getString(AppText.state_done)
|
||||||
}
|
}
|
||||||
|
|
||||||
return resources().getQuantityString(
|
return resources().getString(AppText.state_focus)
|
||||||
R.plurals.state_focus_remaining,
|
|
||||||
funPomoDoroTimer.breaksRemaining,
|
|
||||||
funPomoDoroTimer.breaksRemaining
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun callMediaPlayer() {
|
override fun callMediaPlayer() {
|
||||||
|
@ -42,4 +82,12 @@ class BreakSessionScreen(
|
||||||
mediaplayer?.start()
|
mediaplayer?.start()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Preview
|
||||||
|
@Composable
|
||||||
|
fun MidsectionPreview() {
|
||||||
|
val funPomoDoroTimer = FunctionalPomodoroTimer(15, 60, 5)
|
||||||
|
val breakSessionScreen = BreakSessionScreen(funPomoDoroTimer, MediaPlayer())
|
||||||
|
breakSessionScreen.MidSection()
|
||||||
}
|
}
|
Reference in a new issue