fix: Fix message info

This commit is contained in:
Myzel394 2023-12-31 22:45:27 +01:00
parent 5e3e2a2e22
commit e8337f2fc2
No known key found for this signature in database
GPG Key ID: 79CC92F37B3E1A2B
2 changed files with 44 additions and 19 deletions

View File

@ -1,5 +1,7 @@
package app.myzel394.alibi.ui.components.SettingsScreen.Tiles package app.myzel394.alibi.ui.components.SettingsScreen.Tiles
import android.os.Message
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.magnifier import androidx.compose.foundation.magnifier
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
@ -20,7 +22,10 @@ import app.myzel394.alibi.dataStore
import app.myzel394.alibi.db.AppLockSettings import app.myzel394.alibi.db.AppLockSettings
import app.myzel394.alibi.db.AppSettings import app.myzel394.alibi.db.AppSettings
import app.myzel394.alibi.helpers.AppLockHelper import app.myzel394.alibi.helpers.AppLockHelper
import app.myzel394.alibi.ui.components.atoms.MessageBox
import app.myzel394.alibi.ui.components.atoms.MessageType
import app.myzel394.alibi.ui.components.atoms.SettingsTile import app.myzel394.alibi.ui.components.atoms.SettingsTile
import app.myzel394.alibi.ui.components.atoms.VisualDensity
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@Composable @Composable
@ -43,12 +48,15 @@ fun EnableAppLockTile(
description = stringResource(R.string.ui_settings_option_enableAppLock_description), description = stringResource(R.string.ui_settings_option_enableAppLock_description),
tertiaryLine = { tertiaryLine = {
if (appLockSupport === AppLockHelper.SupportType.NONE_ENROLLED) { if (appLockSupport === AppLockHelper.SupportType.NONE_ENROLLED) {
Text( Box(
stringResource(R.string.ui_settings_option_enableAppLock_enrollmentRequired), modifier = Modifier.padding(top = 8.dp)
color = Color.Yellow, ) {
style = MaterialTheme.typography.bodySmall, MessageBox(
modifier = Modifier.padding(top = 4.dp) type = MessageType.WARNING,
) message = stringResource(R.string.ui_settings_option_enableAppLock_enrollmentRequired),
density = VisualDensity.COMPACT,
)
}
} }
}, },
leading = { leading = {

View File

@ -3,6 +3,7 @@ package app.myzel394.alibi.ui.components.atoms
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Check import androidx.compose.material.icons.filled.Check
@ -27,6 +28,7 @@ fun MessageBox(
type: MessageType, type: MessageType,
message: String, message: String,
title: String? = null, title: String? = null,
density: VisualDensity = VisualDensity.COMFORTABLE,
) { ) {
val isDark = rememberIsInDarkMode() val isDark = rememberIsInDarkMode()
val containerColor = when (type) { val containerColor = when (type) {
@ -51,33 +53,43 @@ fun MessageBox(
modifier = Modifier modifier = Modifier
.clip(MaterialTheme.shapes.medium) .clip(MaterialTheme.shapes.medium)
.background(backgroundColor) .background(backgroundColor)
.padding(horizontal = 8.dp, vertical = 16.dp) .let {
if (density == VisualDensity.COMFORTABLE) {
it.padding(horizontal = 8.dp, vertical = 16.dp)
} else {
it.padding(8.dp)
}
}
.then(modifier) .then(modifier)
) { ) {
Icon( if (density == VisualDensity.COMFORTABLE) {
imageVector = when (type) { Icon(
MessageType.ERROR -> Icons.Default.Error imageVector = when (type) {
MessageType.INFO -> Icons.Default.Info MessageType.ERROR -> Icons.Default.Error
MessageType.SURFACE -> Icons.Default.Info MessageType.INFO -> Icons.Default.Info
MessageType.SUCCESS -> Icons.Default.Check MessageType.SURFACE -> Icons.Default.Info
MessageType.WARNING -> Icons.Default.Warning MessageType.SUCCESS -> Icons.Default.Check
}, MessageType.WARNING -> Icons.Default.Warning
contentDescription = null, },
tint = textColor, contentDescription = null,
modifier = Modifier.padding(16.dp) tint = textColor,
) modifier = Modifier.padding(16.dp)
)
}
Column { Column {
if (title != null) { if (title != null) {
Text( Text(
text = title, text = title,
style = MaterialTheme.typography.bodyLarge, style = MaterialTheme.typography.bodyLarge,
color = textColor, color = textColor,
modifier = Modifier.fillMaxWidth()
) )
} }
Text( Text(
text = message, text = message,
style = MaterialTheme.typography.bodyMedium, style = MaterialTheme.typography.bodyMedium,
color = textColor, color = textColor,
modifier = Modifier.fillMaxWidth()
) )
} }
} }
@ -91,3 +103,8 @@ enum class MessageType {
SUCCESS, SUCCESS,
WARNING, WARNING,
} }
enum class VisualDensity {
COMPACT,
COMFORTABLE,
}