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