From 0df2b938512ebecca8cb6b2583e6b57e723c30e8 Mon Sep 17 00:00:00 2001 From: brreynie Date: Sat, 22 Apr 2023 20:57:49 +0200 Subject: [PATCH] create and use StealthButton to start en edit timer --- .idea/kotlinc.xml | 6 ++ .idea/misc.xml | 2 +- .../common/composable/ButtonComposable.kt | 66 +++++++++++++++++-- .../timer_overview/TimerOverviewScreen.kt | 20 ++++-- 4 files changed, 84 insertions(+), 10 deletions(-) create mode 100644 .idea/kotlinc.xml diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..7e42cec --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index bdd9278..704c883 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/java/be/ugent/sel/studeez/common/composable/ButtonComposable.kt b/app/src/main/java/be/ugent/sel/studeez/common/composable/ButtonComposable.kt index 64c7352..b2568aa 100644 --- a/app/src/main/java/be/ugent/sel/studeez/common/composable/ButtonComposable.kt +++ b/app/src/main/java/be/ugent/sel/studeez/common/composable/ButtonComposable.kt @@ -1,11 +1,24 @@ package be.ugent.sel.studeez.common.composable import androidx.annotation.StringRes -import androidx.compose.material.* +import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.Button +import androidx.compose.material.ButtonColors +import androidx.compose.material.ButtonDefaults +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.material.TextButton import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource +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.common.ext.basicButton +import be.ugent.sel.studeez.common.ext.card @Composable @@ -14,12 +27,55 @@ fun BasicTextButton(@StringRes text: Int, modifier: Modifier, action: () -> Unit } @Composable -fun BasicButton(@StringRes text: Int, modifier: Modifier, action: () -> Unit) { +fun BasicButton( + @StringRes text: Int, + modifier: Modifier, + colors: ButtonColors = ButtonDefaults.buttonColors(), + border: BorderStroke? = null, + onClick: () -> Unit, +) { Button( - onClick = action, - modifier = modifier + onClick = onClick, + modifier = modifier, + shape = RoundedCornerShape(20.dp), + colors = colors, + border = border, ) { - Text(text = stringResource(text), fontSize = 16.sp) + Text( + text = stringResource(text), + fontSize = 16.sp + ) + } +} + +@Preview +@Composable +fun BasicButtonPreview() { + BasicButton(text = R.string.add_timer, modifier = Modifier.basicButton()) {} +} + +@Composable +fun StealthButton( + @StringRes text: Int, + onClick: () -> Unit, +) { + BasicButton( + text = text, + onClick = onClick, + modifier = Modifier.card(), + colors = ButtonDefaults.buttonColors( + backgroundColor = Color.Transparent, + contentColor = Color.DarkGray, + ), + border = BorderStroke(3.dp, Color.DarkGray), + ) +} + +@Preview +@Composable +fun StealthButtonCardPreview() { + StealthButton(text = R.string.edit) { + } } diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/timer_overview/TimerOverviewScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/timer_overview/TimerOverviewScreen.kt index 66ddfad..fcff7fe 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/timer_overview/TimerOverviewScreen.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/timer_overview/TimerOverviewScreen.kt @@ -1,12 +1,15 @@ package be.ugent.sel.studeez.screens.timer_overview +import android.annotation.SuppressLint import androidx.annotation.StringRes import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items +import androidx.compose.material.Scaffold import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState @@ -20,8 +23,8 @@ 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.PrimaryScreenTemplate +import be.ugent.sel.studeez.common.composable.StealthButton import be.ugent.sel.studeez.common.ext.basicButton -import be.ugent.sel.studeez.common.ext.card import be.ugent.sel.studeez.data.local.models.timer_info.CustomTimerInfo import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo import be.ugent.sel.studeez.resources @@ -77,7 +80,9 @@ fun TimerEntry( modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween ) { - Column { + Column( + Modifier.padding(horizontal = 10.dp) + ) { Text( text = timerInfo.name, fontWeight = FontWeight.Bold, @@ -90,7 +95,7 @@ fun TimerEntry( ) } if (canDisplay) { - BasicButton(buttonName, Modifier.card()) { + StealthButton(buttonName) { buttonFunction(timerInfo) } } @@ -98,6 +103,7 @@ fun TimerEntry( } } +@SuppressLint("UnusedMaterialScaffoldPaddingParameter") @Preview @Composable fun TimerEntryPreview() { @@ -106,5 +112,11 @@ fun TimerEntryPreview() { "This is the description of the timer", 60 ) - TimerEntry(timerInfo = timerInfo, true) { } + Scaffold() { + Column() { + TimerEntry(timerInfo = timerInfo, true, buttonName = R.string.edit) { } + TimerEntry(timerInfo = timerInfo, true, buttonName = R.string.edit) { } + TimerEntry(timerInfo = timerInfo, true, buttonName = R.string.edit) { } + } + } } \ No newline at end of file