From d9f4170fbd24c173ee217d90bcbe858dd0c31c98 Mon Sep 17 00:00:00 2001 From: Rune Dyselinck Date: Wed, 10 May 2023 15:10:01 +0200 Subject: [PATCH 1/5] emojis in sessionrecap --- .idea/misc.xml | 1 - .../FloatingActionButtonComposable.kt | 1 - .../common/composable/ImageComposable.kt | 39 +++++++++++ .../session_recap/SessionRecapScreen.kt | 67 ++++++++++++++++++- app/src/main/res/drawable/mood_1.xml | 5 ++ app/src/main/res/drawable/mood_2.xml | 5 ++ app/src/main/res/values/strings.xml | 7 ++ 7 files changed, 122 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/be/ugent/sel/studeez/common/composable/ImageComposable.kt create mode 100644 app/src/main/res/drawable/mood_1.xml create mode 100644 app/src/main/res/drawable/mood_2.xml diff --git a/.idea/misc.xml b/.idea/misc.xml index 0ad17cb..8978d23 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/app/src/main/java/be/ugent/sel/studeez/common/composable/FloatingActionButtonComposable.kt b/app/src/main/java/be/ugent/sel/studeez/common/composable/FloatingActionButtonComposable.kt index bc40ead..ea2b52d 100644 --- a/app/src/main/java/be/ugent/sel/studeez/common/composable/FloatingActionButtonComposable.kt +++ b/app/src/main/java/be/ugent/sel/studeez/common/composable/FloatingActionButtonComposable.kt @@ -2,7 +2,6 @@ package be.ugent.sel.studeez.common.composable import androidx.compose.animation.core.animateFloat import androidx.compose.animation.core.updateTransition -import androidx.compose.foundation.border import androidx.compose.foundation.layout.* import androidx.compose.material.FloatingActionButton import androidx.compose.material.Icon diff --git a/app/src/main/java/be/ugent/sel/studeez/common/composable/ImageComposable.kt b/app/src/main/java/be/ugent/sel/studeez/common/composable/ImageComposable.kt new file mode 100644 index 0000000..39e7272 --- /dev/null +++ b/app/src/main/java/be/ugent/sel/studeez/common/composable/ImageComposable.kt @@ -0,0 +1,39 @@ +package be.ugent.sel.studeez.common.composable + +import androidx.compose.foundation.Image +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.painter.Painter +import androidx.compose.ui.unit.dp + +@Composable +fun ImageBackgroundButton( + paint: Painter, + str: String, + background2: Color, + setBackground1: (Color) -> Unit, + setBackground2: (Color) -> Unit +) { + Image( + painter = paint, + str, + modifier = Modifier + .clickable { + if (background2 == Color.Transparent) { + setBackground1(Color.LightGray) + setBackground2(Color.Transparent) + } else { + setBackground2(Color.Transparent) + } + } + .border( + width = 2.dp, + color = background2, + shape = RoundedCornerShape(16.dp) + ) + ) +} \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/session_recap/SessionRecapScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/session_recap/SessionRecapScreen.kt index 2d06e0b..1e02ad9 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/session_recap/SessionRecapScreen.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/session_recap/SessionRecapScreen.kt @@ -1,13 +1,30 @@ package be.ugent.sel.studeez.screens.session_recap +import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding import androidx.compose.material.ButtonDefaults import androidx.compose.material.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +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 androidx.hilt.navigation.compose.hiltViewModel import be.ugent.sel.studeez.R import be.ugent.sel.studeez.common.composable.BasicButton +import be.ugent.sel.studeez.common.composable.ImageBackgroundButton import be.ugent.sel.studeez.common.ext.basicButton import be.ugent.sel.studeez.data.local.models.SessionReport import be.ugent.sel.studeez.data.local.models.timer_functional.HoursMinutesSeconds @@ -47,10 +64,49 @@ fun SessionRecapScreen(modifier: Modifier, sessionRecapActions: SessionRecapActi val sessionReport: SessionReport = sessionRecapActions.getSessionReport() val studyTime: Int = sessionReport.studyTime val hms: HoursMinutesSeconds = Time(studyTime).getAsHMS() + val (background1, setBackground1) = remember { mutableStateOf(Color.Transparent) } + val (background2, setBackground2) = remember { mutableStateOf(Color.Transparent) } Column( modifier = modifier + .fillMaxWidth() + .fillMaxHeight() + .padding(16.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center ) { - Text(text = "You studied: $hms") + Text( + text = stringResource(R.string.congrats) + hms, + modifier = Modifier.fillMaxWidth(), + textAlign = TextAlign.Center, + fontWeight = FontWeight.Light, + fontSize = 30.sp + ) + + Text( + text = stringResource(R.string.how_did_it_go), + modifier = Modifier.fillMaxWidth(), + textAlign = TextAlign.Center, + fontWeight = FontWeight.Light, + fontSize = 30.sp + ) + + Row { + ImageBackgroundButton( + paint = painterResource(id = R.drawable.mood_1), + str = stringResource(id = R.string.good), + background2 = background2, + setBackground1 = setBackground2, + setBackground2 = setBackground1 + ) + + ImageBackgroundButton( + paint = painterResource(id = R.drawable.mood_2), + str = stringResource(id = R.string.bad), + background2 = background1, + setBackground1 = setBackground1, + setBackground2 = setBackground2 + ) + } BasicButton( R.string.save, Modifier.basicButton() @@ -65,3 +121,12 @@ fun SessionRecapScreen(modifier: Modifier, sessionRecapActions: SessionRecapActi } } } + +@Preview +@Composable +fun SessionRecapScreenPreview() { + SessionRecapScreen( + modifier = Modifier, + sessionRecapActions = SessionRecapActions(hiltViewModel(), {}, {}) + ) +} \ No newline at end of file diff --git a/app/src/main/res/drawable/mood_1.xml b/app/src/main/res/drawable/mood_1.xml new file mode 100644 index 0000000..bf009f2 --- /dev/null +++ b/app/src/main/res/drawable/mood_1.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/mood_2.xml b/app/src/main/res/drawable/mood_2.xml new file mode 100644 index 0000000..0fd3daa --- /dev/null +++ b/app/src/main/res/drawable/mood_2.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0ec0e9d..9ebb196 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -138,4 +138,11 @@ Break Time Number of Repeats + + "Congratulations! You studied: " + How did it go? + Good + Bad + + From 6bef378fc043d8566fd56301a8477bdbc34d040a Mon Sep 17 00:00:00 2001 From: Rune Dyselinck Date: Wed, 10 May 2023 15:32:39 +0200 Subject: [PATCH 2/5] correct aligment --- .../session_recap/SessionRecapScreen.kt | 83 +++++++++++-------- 1 file changed, 48 insertions(+), 35 deletions(-) diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/session_recap/SessionRecapScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/session_recap/SessionRecapScreen.kt index 1e02ad9..06a15e1 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/session_recap/SessionRecapScreen.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/session_recap/SessionRecapScreen.kt @@ -72,52 +72,65 @@ fun SessionRecapScreen(modifier: Modifier, sessionRecapActions: SessionRecapActi .fillMaxHeight() .padding(16.dp), horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.Center + verticalArrangement = Arrangement.SpaceBetween ) { Text( text = stringResource(R.string.congrats) + hms, - modifier = Modifier.fillMaxWidth(), + modifier = Modifier + .fillMaxWidth(), textAlign = TextAlign.Center, fontWeight = FontWeight.Light, - fontSize = 30.sp + fontSize = 30.sp, + ) - Text( - text = stringResource(R.string.how_did_it_go), - modifier = Modifier.fillMaxWidth(), - textAlign = TextAlign.Center, - fontWeight = FontWeight.Light, - fontSize = 30.sp - ) - - Row { - ImageBackgroundButton( - paint = painterResource(id = R.drawable.mood_1), - str = stringResource(id = R.string.good), - background2 = background2, - setBackground1 = setBackground2, - setBackground2 = setBackground1 + Column( + modifier = Modifier.fillMaxWidth() + ) { + Text( + text = stringResource(R.string.how_did_it_go), + modifier = Modifier.fillMaxWidth(), + textAlign = TextAlign.Center, + fontWeight = FontWeight.Light, + fontSize = 30.sp ) - ImageBackgroundButton( - paint = painterResource(id = R.drawable.mood_2), - str = stringResource(id = R.string.bad), - background2 = background1, - setBackground1 = setBackground1, - setBackground2 = setBackground2 - ) + Row( + horizontalArrangement = Arrangement.Center, + modifier = Modifier + .fillMaxWidth() + .align(Alignment.CenterHorizontally) + ) { + ImageBackgroundButton( + paint = painterResource(id = R.drawable.mood_1), + str = stringResource(id = R.string.good), + background2 = background2, + setBackground1 = setBackground2, + setBackground2 = setBackground1 + ) + + ImageBackgroundButton( + paint = painterResource(id = R.drawable.mood_2), + str = stringResource(id = R.string.bad), + background2 = background1, + setBackground1 = setBackground1, + setBackground2 = setBackground2 + ) + } } - BasicButton( - R.string.save, Modifier.basicButton() - ) { - sessionRecapActions.saveSession() - } - BasicButton( - R.string.discard, Modifier.basicButton(), - colors = ButtonDefaults.buttonColors(backgroundColor = Color.Red) - ) { - sessionRecapActions.discardSession() + Column { + BasicButton( + R.string.save, Modifier.basicButton() + ) { + sessionRecapActions.saveSession() + } + BasicButton( + R.string.discard, Modifier.basicButton(), + colors = ButtonDefaults.buttonColors(backgroundColor = Color.Red) + ) { + sessionRecapActions.discardSession() + } } } } From 45efd5cb3f82d7abeb68edbaef14b28501c3737a Mon Sep 17 00:00:00 2001 From: Rune Dyselinck Date: Wed, 10 May 2023 15:37:34 +0200 Subject: [PATCH 3/5] small fix --- .../sel/studeez/screens/session_recap/SessionRecapScreen.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/session_recap/SessionRecapScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/session_recap/SessionRecapScreen.kt index 06a15e1..72082c8 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/session_recap/SessionRecapScreen.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/session_recap/SessionRecapScreen.kt @@ -142,4 +142,4 @@ fun SessionRecapScreenPreview() { modifier = Modifier, sessionRecapActions = SessionRecapActions(hiltViewModel(), {}, {}) ) -} \ No newline at end of file +} From 61de50ea557bcf2f736b718a326210f7db7fe806 Mon Sep 17 00:00:00 2001 From: brreynie Date: Wed, 10 May 2023 16:52:41 +0200 Subject: [PATCH 4/5] reformat and optimize imports --- .../screens/session_recap/SessionRecapScreen.kt | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/session_recap/SessionRecapScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/session_recap/SessionRecapScreen.kt index 72082c8..f3a5739 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/session_recap/SessionRecapScreen.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/session_recap/SessionRecapScreen.kt @@ -1,11 +1,6 @@ package be.ugent.sel.studeez.screens.session_recap -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxHeight -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.* import androidx.compose.material.ButtonDefaults import androidx.compose.material.Text import androidx.compose.runtime.Composable @@ -42,8 +37,8 @@ fun getSessionRecapActions( ): SessionRecapActions { return SessionRecapActions( viewModel::getSessionReport, - {viewModel.saveSession(openAndPopUp)}, - {viewModel.discardSession(openAndPopUp)} + { viewModel.saveSession(openAndPopUp) }, + { viewModel.discardSession(openAndPopUp) } ) } @@ -82,7 +77,7 @@ fun SessionRecapScreen(modifier: Modifier, sessionRecapActions: SessionRecapActi fontWeight = FontWeight.Light, fontSize = 30.sp, - ) + ) Column( modifier = Modifier.fillMaxWidth() From 9ea4f73187835fe465f9c1db5d409e192d7aa65e Mon Sep 17 00:00:00 2001 From: brreynie Date: Mon, 15 May 2023 20:54:47 +0200 Subject: [PATCH 5/5] i18n improvement --- .../screens/session_recap/SessionRecapScreen.kt | 11 ++++++++--- app/src/main/res/values/strings.xml | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/session_recap/SessionRecapScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/session_recap/SessionRecapScreen.kt index f3a5739..73f4100 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/session_recap/SessionRecapScreen.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/session_recap/SessionRecapScreen.kt @@ -16,7 +16,6 @@ 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 androidx.hilt.navigation.compose.hiltViewModel import be.ugent.sel.studeez.R import be.ugent.sel.studeez.common.composable.BasicButton import be.ugent.sel.studeez.common.composable.ImageBackgroundButton @@ -70,7 +69,7 @@ fun SessionRecapScreen(modifier: Modifier, sessionRecapActions: SessionRecapActi verticalArrangement = Arrangement.SpaceBetween ) { Text( - text = stringResource(R.string.congrats) + hms, + text = stringResource(R.string.congrats, hms), modifier = Modifier .fillMaxWidth(), textAlign = TextAlign.Center, @@ -135,6 +134,12 @@ fun SessionRecapScreen(modifier: Modifier, sessionRecapActions: SessionRecapActi fun SessionRecapScreenPreview() { SessionRecapScreen( modifier = Modifier, - sessionRecapActions = SessionRecapActions(hiltViewModel(), {}, {}) + sessionRecapActions = SessionRecapActions( + { SessionReport( + studyTime = 100, + ) }, + {}, + {}, + ) ) } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index be6b7ef..58e952d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -150,7 +150,7 @@ Number of Repeats - "Congratulations! You studied: " + "Congratulations! You studied: %s" How did it go? Good Bad