From 54ad067cdf4052ac0fc8c2399a1571caa7f9d3b7 Mon Sep 17 00:00:00 2001 From: Myzel394 <50424412+Myzel394@users.noreply.github.com> Date: Mon, 23 Oct 2023 21:58:40 +0200 Subject: [PATCH] feat: Add showOngoing button --- .../molecules/EditNotificationInput.kt | 7 +++ .../organisms/NotificationEditor.kt | 47 +++++++++++++++++-- app/src/main/res/values/strings.xml | 1 + 3 files changed, 50 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/app/myzel394/alibi/ui/components/CustomRecordingNotificationsScreen/molecules/EditNotificationInput.kt b/app/src/main/java/app/myzel394/alibi/ui/components/CustomRecordingNotificationsScreen/molecules/EditNotificationInput.kt index 1aab0de..c3dcc54 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/components/CustomRecordingNotificationsScreen/molecules/EditNotificationInput.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/components/CustomRecordingNotificationsScreen/molecules/EditNotificationInput.kt @@ -22,6 +22,7 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.material3.TextField import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -65,6 +66,12 @@ fun EditNotificationInput( val secondaryColor = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.6f) + LaunchedEffect(showOngoing) { + if (showOngoing) { + ongoingStartTime = LocalDateTime.now() + } + } + Row( modifier = Modifier .clip(MaterialTheme.shapes.medium) diff --git a/app/src/main/java/app/myzel394/alibi/ui/components/CustomRecordingNotificationsScreen/organisms/NotificationEditor.kt b/app/src/main/java/app/myzel394/alibi/ui/components/CustomRecordingNotificationsScreen/organisms/NotificationEditor.kt index 685430c..ee1e921 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/components/CustomRecordingNotificationsScreen/organisms/NotificationEditor.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/components/CustomRecordingNotificationsScreen/organisms/NotificationEditor.kt @@ -1,27 +1,33 @@ package app.myzel394.alibi.ui.components.CustomRecordingNotificationsScreen.organisms import androidx.compose.foundation.ScrollState +import androidx.compose.foundation.background import androidx.compose.foundation.clickable -import androidx.compose.foundation.gestures.scrollable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.Checkbox +import androidx.compose.material3.CheckboxColors +import androidx.compose.material3.CheckboxDefaults import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.TopAppBarScrollBehavior +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import app.myzel394.alibi.R import app.myzel394.alibi.db.NotificationSettings @@ -50,6 +56,7 @@ fun NotificationEditor( mutableStateOf(R.drawable.launcher_monochrome_noopacity) } + // TODO: Add Preview functionality Column( modifier = Modifier .fillMaxSize() @@ -61,7 +68,7 @@ fun NotificationEditor( modifier = Modifier .fillMaxWidth() .padding(horizontal = 16.dp), - showOngoing = true, + showOngoing = showOngoing, title = title, description = description, icon = painterResource(icon), @@ -79,6 +86,36 @@ fun NotificationEditor( }, ) + Row( + horizontalArrangement = Arrangement.spacedBy(8.dp), + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier + .fillMaxSize() + .clip(MaterialTheme.shapes.medium) + .clickable { + showOngoing = showOngoing.not() + } + .background(MaterialTheme.colorScheme.tertiaryContainer) + .padding(8.dp), + ) { + Checkbox( + checked = showOngoing, + onCheckedChange = { + showOngoing = it + }, + colors = CheckboxDefaults.colors( + checkedColor = MaterialTheme.colorScheme.tertiary, + checkmarkColor = MaterialTheme.colorScheme.onTertiary, + ) + ) + Text( + text = stringResource(R.string.ui_settings_customNotifications_showOngoing_label), + style = MaterialTheme.typography.bodyMedium, + color = MaterialTheme.colorScheme.onTertiaryContainer, + fontWeight = FontWeight.Bold, + ) + } + Column( verticalArrangement = Arrangement.spacedBy(4.dp), ) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8b75438..3e5c185 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -85,4 +85,5 @@ Connected to VPN Connection Secured Apply Preset \"%s\" + Show Duration \ No newline at end of file