diff --git a/app/src/main/java/chat/revolt/components/settings/profile/StatusPicker.kt b/app/src/main/java/chat/revolt/components/settings/profile/StatusPicker.kt index c253a6ab..aaef0293 100644 --- a/app/src/main/java/chat/revolt/components/settings/profile/StatusPicker.kt +++ b/app/src/main/java/chat/revolt/components/settings/profile/StatusPicker.kt @@ -16,6 +16,8 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import chat.revolt.R import chat.revolt.components.generic.Presence @@ -31,6 +33,16 @@ fun Presence.stringResource(): Int { } } +fun Presence.explainerResource(): Int? { + return when (this) { + Presence.Online -> null + Presence.Idle -> null + Presence.Dnd -> R.string.status_dnd_explainer + Presence.Focus -> R.string.status_focus_explainer + Presence.Offline -> R.string.status_invisible_explainer + } +} + @Composable fun StatusPicker( currentStatus: Presence, @@ -49,7 +61,6 @@ fun StatusPicker( Row( verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.spacedBy(8.dp), modifier = Modifier .clip(MaterialTheme.shapes.small) .background(MaterialTheme.colorScheme.surfaceColorAtElevation(2.dp)) @@ -66,8 +77,18 @@ fun StatusPicker( Text( text = stringResource(currentStatus.stringResource()), - style = MaterialTheme.typography.bodyLarge + style = MaterialTheme.typography.bodyLarge.copy( + fontWeight = FontWeight.Bold + ) ) + + currentStatus.explainerResource()?.let { + Text( + text = stringResource(it), + style = MaterialTheme.typography.bodyMedium, + textAlign = TextAlign.Center + ) + } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 354ad160..abfed8ca 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -185,9 +185,12 @@ Online Idle Focus + You will not receive any notifications for messages, but you will receive notifications for @mentions. Do Not Disturb + You will not receive any notifications, including messages and @mentions. Offline Invisible + You will be able to use Revolt as usual, but you will not appear as online to other people. No connection You are not connected to the internet. Please check your connection and try again.