Server icons updated to be same as website
This commit is contained in:
parent
3e8865060e
commit
5f957d96f7
|
|
@ -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)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M12,2C9.243,2 7,4.243 7,7v3H6a2,2 0 0,0 -2,2v8a2,2 0 0,0 2,2h12a2,2 0 0,0 2,-2v-8a2,2 0 0,0 -2,-2h-1V7c0,-2.757 -2.243,-5 -5,-5zM9,7c0,-1.654 1.346,-3 3,-3s3,1.346 3,3v3H9V7zm4,10.723V20h-2v-2.277a1.993,1.993 0 0,1 0.567,-3.677A2.001,2.001 0 0,1 14,16a1.99,1.99 0 0,1 -1,1.723z"/>
|
||||
</vector>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M20,2H4c-1.103,0 -2,0.894 -2,1.992v12.016C2,17.106 2.897,18 4,18h3v4l6.351,-4H20c1.103,0 2,-0.894 2,-1.992V3.992A1.998,1.998 0 0,0 20,2zM17,11h-4v4h-2v-4H7V9h4V5h2v4h4v2z"/>
|
||||
</vector>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M20,2H4c-1.103,0 -2,0.894 -2,1.992v12.017C2,17.106 2.897,18 4,18h3v4l6.351,-4H20c1.103,0 2,-0.894 2,-1.992V3.992A1.998,1.998 0 0,0 20,2zM11,10a2,2 0 1,1 -2,-2c0.086,0 0.167,0.015 0.25,0.025 0.082,-0.014 0.164,-0.025 0.25,-0.025A1.5,1.5 0 0,1 11,9.5c0,0.086 -0.012,0.168 -0.025,0.25 0.01,0.083 0.025,0.165 0.025,0.25zM15,12a2,2 0 0,1 -2,-2c0,-0.086 0.015,-0.167 0.025,-0.25A1.592,1.592 0 0,1 13,9.5 1.5,1.5 0 0,1 14.5,8c0.086,0 0.168,0.011 0.25,0.025 0.083,-0.01 0.164,-0.025 0.25,-0.025a2,2 0 0,1 0,4z"/>
|
||||
</vector>
|
||||
Loading…
Reference in New Issue