diff --git a/app/src/main/java/chat/zekochat/composables/screens/chat/discover/DiscoverServersList.kt b/app/src/main/java/chat/zekochat/composables/screens/chat/discover/DiscoverServersList.kt
index 08a2a418..67aad9ed 100644
--- a/app/src/main/java/chat/zekochat/composables/screens/chat/discover/DiscoverServersList.kt
+++ b/app/src/main/java/chat/zekochat/composables/screens/chat/discover/DiscoverServersList.kt
@@ -180,7 +180,7 @@ fun ServerItem(
) {
// Safely convert the hex string to a Color, or return null if invalid
fun parseColorOrNull(hex: String?): Color? {
- return hex?.let { raw ->
+ return hex?.trim()?.takeIf { it.isNotEmpty() }?.let { raw ->
val normalized = if (raw.startsWith("#")) raw else "#$raw"
try {
Color(normalized.toColorInt())
@@ -190,24 +190,19 @@ fun ServerItem(
}
}
- // Determine card colors based on server.showColor
- val containerColor = parseColorOrNull(server.showColor)
- val cardColors = if (containerColor != null) {
- CardDefaults.cardColors(containerColor = containerColor)
- } else {
- CardDefaults.cardColors()
- }
-
- // Calculate alpha values based on disabled state
- val contentAlpha = if (server.disabled) 0.5f else 1.0f
- val descriptionAlpha = if (server.disabled) 0.4f else 0.7f
+ // Use server color for icon and text (like website), not for card background
+ val accentColor = parseColorOrNull(server.showColor)
+ val contentColor = accentColor?.copy(alpha = if (server.disabled) 0.5f else 1f)
+ ?: MaterialTheme.colorScheme.onBackground.copy(alpha = if (server.disabled) 0.5f else 1f)
+ val descriptionColor = accentColor?.copy(alpha = if (server.disabled) 0.4f else 0.7f)
+ ?: MaterialTheme.colorScheme.onBackground.copy(alpha = if (server.disabled) 0.4f else 0.7f)
Card(
modifier = Modifier
.fillMaxWidth()
.padding(vertical = 8.dp)
.clickable(enabled = !isProcessing) { onClick() },
- colors = cardColors,
+ colors = CardDefaults.cardColors(),
) {
Row(
modifier = Modifier
@@ -215,12 +210,18 @@ fun ServerItem(
.padding(8.dp),
verticalAlignment = Alignment.CenterVertically
) {
+ // Left icon: boxicons (Lock / MessageDots / MessageAdd) — same as website
Image(
- painter = painterResource(R.drawable.three_person),
- contentDescription = "",
- colorFilter = ColorFilter.tint(
- color = MaterialTheme.colorScheme.onBackground.copy(alpha = contentAlpha)
- )
+ painter = painterResource(
+ when {
+ server.disabled -> R.drawable.ic_discover_lock
+ isJoined -> R.drawable.ic_discover_message_dots
+ else -> R.drawable.ic_discover_message_add
+ }
+ ),
+ contentDescription = null,
+ modifier = Modifier.size(32.dp),
+ colorFilter = ColorFilter.tint(contentColor)
)
Spacer(modifier = Modifier.width(12.dp))
@@ -230,9 +231,7 @@ fun ServerItem(
Text(
text = server.name,
style = MaterialTheme.typography.titleMedium,
- color = MaterialTheme.colorScheme.onBackground.copy(
- alpha = contentAlpha
- )
+ color = contentColor
)
Spacer(modifier = Modifier.height(4.dp))
@@ -240,9 +239,7 @@ fun ServerItem(
Text(
text = server.description,
style = MaterialTheme.typography.bodySmall,
- color = MaterialTheme.colorScheme.onBackground.copy(
- alpha = descriptionAlpha,
- ),
+ color = descriptionColor,
maxLines = 2,
overflow = TextOverflow.Ellipsis
)
@@ -282,11 +279,7 @@ fun ServerItem(
painter = painterResource(R.drawable.icn_arrow_forward_24dp),
contentDescription = "Join server",
modifier = Modifier.align(Alignment.Center),
- colorFilter = ColorFilter.tint(
- color = MaterialTheme.colorScheme.onBackground.copy(
- alpha = contentAlpha
- )
- )
+ colorFilter = ColorFilter.tint(contentColor)
)
}
}
diff --git a/app/src/main/res/drawable/ic_discover_lock.xml b/app/src/main/res/drawable/ic_discover_lock.xml
new file mode 100644
index 00000000..8729bf0c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_discover_lock.xml
@@ -0,0 +1,10 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_discover_message_add.xml b/app/src/main/res/drawable/ic_discover_message_add.xml
new file mode 100644
index 00000000..39cd691f
--- /dev/null
+++ b/app/src/main/res/drawable/ic_discover_message_add.xml
@@ -0,0 +1,10 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_discover_message_dots.xml b/app/src/main/res/drawable/ic_discover_message_dots.xml
new file mode 100644
index 00000000..c9c052f2
--- /dev/null
+++ b/app/src/main/res/drawable/ic_discover_message_dots.xml
@@ -0,0 +1,10 @@
+
+
+
+