feat: Add showOngoing button

This commit is contained in:
Myzel394 2023-10-23 21:58:40 +02:00
parent 5a55619e55
commit 54ad067cdf
No known key found for this signature in database
GPG Key ID: 79CC92F37B3E1A2B
3 changed files with 50 additions and 5 deletions

View File

@ -22,6 +22,7 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.material3.TextField import androidx.compose.material3.TextField
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
@ -65,6 +66,12 @@ fun EditNotificationInput(
val secondaryColor = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.6f) val secondaryColor = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.6f)
LaunchedEffect(showOngoing) {
if (showOngoing) {
ongoingStartTime = LocalDateTime.now()
}
}
Row( Row(
modifier = Modifier modifier = Modifier
.clip(MaterialTheme.shapes.medium) .clip(MaterialTheme.shapes.medium)

View File

@ -1,27 +1,33 @@
package app.myzel394.alibi.ui.components.CustomRecordingNotificationsScreen.organisms package app.myzel394.alibi.ui.components.CustomRecordingNotificationsScreen.organisms
import androidx.compose.foundation.ScrollState import androidx.compose.foundation.ScrollState
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable import androidx.compose.foundation.clickable
import androidx.compose.foundation.gestures.scrollable
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.material3.Checkbox
import androidx.compose.foundation.verticalScroll import androidx.compose.material3.CheckboxColors
import androidx.compose.material3.CheckboxDefaults
import androidx.compose.material3.ExperimentalMaterial3Api 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.Composable
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.semantics.contentDescription
import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import app.myzel394.alibi.R import app.myzel394.alibi.R
import app.myzel394.alibi.db.NotificationSettings import app.myzel394.alibi.db.NotificationSettings
@ -50,6 +56,7 @@ fun NotificationEditor(
mutableStateOf(R.drawable.launcher_monochrome_noopacity) mutableStateOf(R.drawable.launcher_monochrome_noopacity)
} }
// TODO: Add Preview functionality
Column( Column(
modifier = Modifier modifier = Modifier
.fillMaxSize() .fillMaxSize()
@ -61,7 +68,7 @@ fun NotificationEditor(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.padding(horizontal = 16.dp), .padding(horizontal = 16.dp),
showOngoing = true, showOngoing = showOngoing,
title = title, title = title,
description = description, description = description,
icon = painterResource(icon), 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( Column(
verticalArrangement = Arrangement.spacedBy(4.dp), verticalArrangement = Arrangement.spacedBy(4.dp),
) { ) {

View File

@ -85,4 +85,5 @@
<string name="ui_audioRecorder_state_recording_fake_vpn_title">Connected to VPN</string> <string name="ui_audioRecorder_state_recording_fake_vpn_title">Connected to VPN</string>
<string name="ui_audioRecorder_state_recording_fake_vpn_description">Connection Secured</string> <string name="ui_audioRecorder_state_recording_fake_vpn_description">Connection Secured</string>
<string name="ui_settings_customNotifications_preset_apply_label">Apply Preset \"%s\"</string> <string name="ui_settings_customNotifications_preset_apply_label">Apply Preset \"%s\"</string>
<string name="ui_settings_customNotifications_showOngoing_label">Show Duration</string>
</resources> </resources>