diff --git a/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/Tiles/EnableAppLockTile.kt b/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/Tiles/EnableAppLockTile.kt index aeddb5e..babbd08 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/Tiles/EnableAppLockTile.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/Tiles/EnableAppLockTile.kt @@ -1,5 +1,7 @@ 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.magnifier 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.AppSettings 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.VisualDensity import kotlinx.coroutines.launch @Composable @@ -43,12 +48,15 @@ fun EnableAppLockTile( description = stringResource(R.string.ui_settings_option_enableAppLock_description), tertiaryLine = { if (appLockSupport === AppLockHelper.SupportType.NONE_ENROLLED) { - Text( - stringResource(R.string.ui_settings_option_enableAppLock_enrollmentRequired), - color = Color.Yellow, - style = MaterialTheme.typography.bodySmall, - modifier = Modifier.padding(top = 4.dp) - ) + Box( + modifier = Modifier.padding(top = 8.dp) + ) { + MessageBox( + type = MessageType.WARNING, + message = stringResource(R.string.ui_settings_option_enableAppLock_enrollmentRequired), + density = VisualDensity.COMPACT, + ) + } } }, leading = { diff --git a/app/src/main/java/app/myzel394/alibi/ui/components/atoms/MessageBox.kt b/app/src/main/java/app/myzel394/alibi/ui/components/atoms/MessageBox.kt index 1c594ff..609d855 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/components/atoms/MessageBox.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/components/atoms/MessageBox.kt @@ -3,6 +3,7 @@ package app.myzel394.alibi.ui.components.atoms import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Check @@ -27,6 +28,7 @@ fun MessageBox( type: MessageType, message: String, title: String? = null, + density: VisualDensity = VisualDensity.COMFORTABLE, ) { val isDark = rememberIsInDarkMode() val containerColor = when (type) { @@ -51,33 +53,43 @@ fun MessageBox( modifier = Modifier .clip(MaterialTheme.shapes.medium) .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) ) { - Icon( - imageVector = when (type) { - MessageType.ERROR -> Icons.Default.Error - MessageType.INFO -> Icons.Default.Info - MessageType.SURFACE -> Icons.Default.Info - MessageType.SUCCESS -> Icons.Default.Check - MessageType.WARNING -> Icons.Default.Warning - }, - contentDescription = null, - tint = textColor, - modifier = Modifier.padding(16.dp) - ) + if (density == VisualDensity.COMFORTABLE) { + Icon( + imageVector = when (type) { + MessageType.ERROR -> Icons.Default.Error + MessageType.INFO -> Icons.Default.Info + MessageType.SURFACE -> Icons.Default.Info + MessageType.SUCCESS -> Icons.Default.Check + MessageType.WARNING -> Icons.Default.Warning + }, + contentDescription = null, + tint = textColor, + modifier = Modifier.padding(16.dp) + ) + } Column { if (title != null) { Text( text = title, style = MaterialTheme.typography.bodyLarge, color = textColor, + modifier = Modifier.fillMaxWidth() ) } Text( text = message, style = MaterialTheme.typography.bodyMedium, color = textColor, + modifier = Modifier.fillMaxWidth() ) } } @@ -90,4 +102,9 @@ enum class MessageType { SURFACE, SUCCESS, WARNING, +} + +enum class VisualDensity { + COMPACT, + COMFORTABLE, } \ No newline at end of file