notification tweaks

This commit is contained in:
qimiko committed 2024-06-18 05:03:33 -07:00
1 parent d4bacc4afb
commit 50f4a5d8e3
1 file changed
+45 -59
@@ -7,16 +7,17 @@ import androidx.compose.animation.expandHorizontally
import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeIn
import androidx.compose.animation.fadeOut import androidx.compose.animation.fadeOut
import androidx.compose.animation.shrinkHorizontally import androidx.compose.animation.shrinkHorizontally
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.IntrinsicSize
import androidx.compose.foundation.layout.displayCutoutPadding import androidx.compose.foundation.layout.displayCutoutPadding
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Info import androidx.compose.material.icons.filled.Info
import androidx.compose.material.icons.filled.Warning import androidx.compose.material.icons.filled.Warning
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
import androidx.compose.material3.ListItem
import androidx.compose.material3.LocalContentColor import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedCard import androidx.compose.material3.OutlinedCard
@@ -26,7 +27,6 @@ import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
@@ -74,6 +74,7 @@ fun NotificationCardFromType(type: LaunchNotificationType) {
when (type) { when (type) {
LaunchNotificationType.LAUNCHER_UPDATE_AVAILABLE -> { LaunchNotificationType.LAUNCHER_UPDATE_AVAILABLE -> {
AnimatedNotificationCard( AnimatedNotificationCard(
displayLength = 5000L,
onClick = { onClick = {
downloadLauncherUpdate(context) downloadLauncherUpdate(context)
} }
@@ -123,7 +124,7 @@ fun LaunchNotification() {
} }
@Composable @Composable
fun AnimatedNotificationCard(visibilityDelay: Long = 0L, onClick: (() -> Unit)? = null, modifier: Modifier = Modifier, contents: @Composable () -> Unit) { fun AnimatedNotificationCard(visibilityDelay: Long = 0L, displayLength: Long = 3000L, onClick: (() -> Unit)? = null, modifier: Modifier = Modifier, contents: @Composable () -> Unit) {
val state = remember { val state = remember {
MutableTransitionState(false).apply { MutableTransitionState(false).apply {
targetState = visibilityDelay <= 0 targetState = visibilityDelay <= 0
@@ -136,7 +137,7 @@ fun AnimatedNotificationCard(visibilityDelay: Long = 0L, onClick: (() -> Unit)?
state.targetState = true state.targetState = true
} }
delay(3000L) delay(displayLength)
state.targetState = false state.targetState = false
} }
@@ -174,67 +175,52 @@ fun CardView(onClick: (() -> Unit)?, modifier: Modifier = Modifier, contents: @C
@Composable @Composable
fun LauncherUpdateContent(modifier: Modifier = Modifier) { fun LauncherUpdateContent(modifier: Modifier = Modifier) {
Row( ListItem(
horizontalArrangement = Arrangement.spacedBy(12.dp), headlineContent = {
verticalAlignment = Alignment.CenterVertically, Text(text = stringResource(id = R.string.launcher_update_available))
modifier = modifier.padding(16.dp) },
) { supportingContent = {
Icon( Text(text = stringResource(id = R.string.launcher_notification_update_cta))
Icons.Filled.Info, },
contentDescription = null, leadingContent = {
modifier = Modifier.size(32.dp, 32.dp) Icon(
) Icons.Filled.Info,
contentDescription = null,
Column {
Text(
text = stringResource(id = R.string.launcher_update_available),
style = MaterialTheme.typography.titleLarge
) )
},
Text( modifier = modifier.width(IntrinsicSize.Max)
text = stringResource(id = R.string.launcher_notification_update_cta), )
style = MaterialTheme.typography.titleMedium
)
}
}
} }
@Composable @Composable
fun UpdateNotificationContent(modifier: Modifier = Modifier) { fun UpdateNotificationContent(modifier: Modifier = Modifier) {
Row( ListItem(
horizontalArrangement = Arrangement.spacedBy(12.dp), headlineContent = {
verticalAlignment = Alignment.CenterVertically, Text(text = stringResource(id = R.string.launcher_notification_update_success))
modifier = modifier.padding(16.dp) },
) { leadingContent = {
Icon( Icon(
painterResource(R.drawable.geode_monochrome), painterResource(R.drawable.geode_monochrome),
contentDescription = null, contentDescription = null,
modifier = Modifier.size(32.dp, 32.dp) modifier = Modifier.size(24.dp)
) )
},
Text( modifier = modifier.width(IntrinsicSize.Max)
text = stringResource(id = R.string.launcher_notification_update_success), )
style = MaterialTheme.typography.titleLarge
)
}
} }
@Composable @Composable
fun UpdateFailedContent(modifier: Modifier = Modifier) { fun UpdateFailedContent(modifier: Modifier = Modifier) {
Row( ListItem(
horizontalArrangement = Arrangement.spacedBy(12.dp), headlineContent = {
verticalAlignment = Alignment.CenterVertically, Text(text = stringResource(id = R.string.launcher_notification_update_failed))
modifier = modifier.padding(16.dp) },
) { leadingContent = {
Icon( Icon(
Icons.Filled.Warning, Icons.Filled.Warning,
contentDescription = null, contentDescription = null,
modifier = Modifier.size(32.dp, 32.dp) )
) },
modifier = modifier.width(IntrinsicSize.Max)
Text( )
text = stringResource(id = R.string.launcher_notification_update_failed),
style = MaterialTheme.typography.titleLarge
)
}
} }