From 54a2b2750c65367c71cc87d33515f5b0447b77ac Mon Sep 17 00:00:00 2001 From: infi Date: Sat, 20 Jun 2026 16:15:04 +0200 Subject: [PATCH] feat: display role icons in info sheet too --- .../stoat/composables/chat/RoleListEntry.kt | 23 ++++++++++++++++++- .../java/chat/stoat/sheets/UserInfoSheet.kt | 8 ++++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/chat/stoat/composables/chat/RoleListEntry.kt b/app/src/main/java/chat/stoat/composables/chat/RoleListEntry.kt index 908e0ea9..024f0ef7 100644 --- a/app/src/main/java/chat/stoat/composables/chat/RoleListEntry.kt +++ b/app/src/main/java/chat/stoat/composables/chat/RoleListEntry.kt @@ -5,6 +5,7 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.requiredSize +import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -12,11 +13,20 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp +import chat.stoat.composables.generic.RemoteImage +import chat.stoat.core.model.data.STOAT_FILES +import chat.stoat.core.model.schemas.AutumnResource @Composable -fun RoleListEntry(label: String, brush: Brush, modifier: Modifier = Modifier) { +fun RoleListEntry( + label: String, + brush: Brush, + icon: AutumnResource?, + modifier: Modifier = Modifier +) { Row( verticalAlignment = Alignment.CenterVertically, modifier = modifier @@ -27,6 +37,17 @@ fun RoleListEntry(label: String, brush: Brush, modifier: Modifier = Modifier) { overflow = TextOverflow.Ellipsis ) + if (icon != null) { + Spacer(Modifier.requiredSize(4.dp)) + RemoteImage( + url = "$STOAT_FILES/icons/${icon.id}", + contentScale = ContentScale.Fit, + description = null, + modifier = Modifier + .size(16.dp) + ) + } + Spacer(Modifier.weight(1f)) Box( diff --git a/app/src/main/java/chat/stoat/sheets/UserInfoSheet.kt b/app/src/main/java/chat/stoat/sheets/UserInfoSheet.kt index 76e924de..b722dad4 100644 --- a/app/src/main/java/chat/stoat/sheets/UserInfoSheet.kt +++ b/app/src/main/java/chat/stoat/sheets/UserInfoSheet.kt @@ -190,7 +190,8 @@ fun UserInfoSheet( RoleListEntry( label = role.name ?: "null", brush = role.colour?.let { BrushCompat.parseColour(it) } - ?: Brush.solidColor(LocalContentColor.current) + ?: Brush.solidColor(LocalContentColor.current), + icon = role.icon ) } } @@ -205,8 +206,9 @@ fun UserInfoSheet( role?.let { RoleListEntry( label = role.name ?: "null", - brush = role.colour?.let { BrushCompat.parseColour(it) } - ?: Brush.solidColor(LocalContentColor.current) + brush = role.colour?.let { c -> BrushCompat.parseColour(c) } + ?: Brush.solidColor(LocalContentColor.current), + icon = role.icon ) } }