diff --git a/app/src/main/java/chat/revolt/components/generic/ListHeader.kt b/app/src/main/java/chat/revolt/components/generic/ListHeader.kt new file mode 100644 index 00000000..f899feb1 --- /dev/null +++ b/app/src/main/java/chat/revolt/components/generic/ListHeader.kt @@ -0,0 +1,28 @@ +package chat.revolt.components.generic + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.LocalTextStyle +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp + +@Composable +fun ListHeader( + content: @Composable () -> Unit, +) { + CompositionLocalProvider(LocalTextStyle provides MaterialTheme.typography.labelLarge) { + Box( + modifier = Modifier + .fillMaxWidth() + .background(MaterialTheme.colorScheme.background) + .padding(top = 24.dp, bottom = 8.dp, start = 16.dp, end = 16.dp) + ) { + content() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/chat/revolt/screens/settings/AppearanceSettingsScreen.kt b/app/src/main/java/chat/revolt/screens/settings/AppearanceSettingsScreen.kt index 6edefe0c..1df6feea 100644 --- a/app/src/main/java/chat/revolt/screens/settings/AppearanceSettingsScreen.kt +++ b/app/src/main/java/chat/revolt/screens/settings/AppearanceSettingsScreen.kt @@ -67,6 +67,7 @@ import chat.revolt.api.RevoltCbor import chat.revolt.api.RevoltJson import chat.revolt.api.settings.GlobalState import chat.revolt.api.settings.SyncedSettings +import chat.revolt.components.generic.ListHeader import chat.revolt.components.generic.PageHeader import chat.revolt.components.screens.settings.appearance.ColourChip import chat.revolt.ui.theme.ClearRippleTheme @@ -280,11 +281,9 @@ fun AppearanceSettingsScreen( .fillMaxSize() .verticalScroll(rememberScrollState()) ) { - Text( - text = stringResource(id = R.string.settings_appearance_theme), - style = MaterialTheme.typography.labelLarge, - modifier = Modifier.padding(start = 20.dp, end = 20.dp, bottom = 10.dp) - ) + ListHeader { + Text(stringResource(R.string.settings_appearance_theme)) + } FlowRow( horizontalArrangement = Arrangement.spacedBy(10.dp), diff --git a/app/src/main/java/chat/revolt/screens/settings/SessionSettngsScreen.kt b/app/src/main/java/chat/revolt/screens/settings/SessionSettngsScreen.kt index 43fb481d..0b6bc664 100644 --- a/app/src/main/java/chat/revolt/screens/settings/SessionSettngsScreen.kt +++ b/app/src/main/java/chat/revolt/screens/settings/SessionSettngsScreen.kt @@ -44,6 +44,7 @@ import chat.revolt.api.routes.auth.fetchAllSessions import chat.revolt.api.routes.auth.logoutAllSessions import chat.revolt.api.routes.auth.logoutSessionById import chat.revolt.api.schemas.Session +import chat.revolt.components.generic.ListHeader import chat.revolt.components.generic.PageHeader import chat.revolt.components.generic.UIMarkdown import chat.revolt.components.settings.sessions.SessionItem @@ -153,14 +154,9 @@ fun SessionSettingsScreen( } else { LazyColumn { stickyHeader(key = "thisDevice") { - Text( - text = stringResource(id = R.string.settings_sessions_this_device), - style = MaterialTheme.typography.labelLarge, - modifier = Modifier - .fillMaxWidth() - .background(MaterialTheme.colorScheme.background) - .padding(10.dp) - ) + ListHeader { + Text(stringResource(id = R.string.settings_sessions_this_device)) + } } viewModel.currentSession?.let { @@ -172,6 +168,7 @@ fun SessionSettingsScreen( onLogout = {}, modifier = Modifier.padding(horizontal = 8.dp) ) + Spacer(Modifier.height(8.dp)) } } ?: run { item(key = "noCurrentSession") { @@ -186,14 +183,9 @@ fun SessionSettingsScreen( } stickyHeader(key = "otherSessions") { - Text( - text = stringResource(id = R.string.settings_sessions_other_sessions), - style = MaterialTheme.typography.labelLarge, - modifier = Modifier - .fillMaxWidth() - .background(MaterialTheme.colorScheme.background) - .padding(10.dp) - ) + ListHeader { + Text(stringResource(id = R.string.settings_sessions_other_sessions)) + } } item(key = "logoutOtherSessions") {