feat: Use node colors for contact chip (#1891)

pull/1892/head
James Rich 2025-05-20 23:30:11 -05:00 zatwierdzone przez GitHub
rodzic 01fb50647a
commit 2f13aee171
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
2 zmienionych plików z 18 dodań i 1 usunięć

Wyświetl plik

@ -167,6 +167,7 @@ data class Contact(
val messageCount: Int,
val isMuted: Boolean,
val isUnmessageable: Boolean,
val nodeColors: Pair<Int, Int>? = null,
)
@Suppress("LongParameterList")
@ -385,6 +386,7 @@ class UIViewModel @Inject constructor(
// grab usernames from NodeInfo
val user = getUser(if (fromLocal) data.to else data.from)
val node = getNode(if (fromLocal) data.to else data.from)
val shortName = user.shortName
val longName = if (toBroadcast) {
@ -403,6 +405,11 @@ class UIViewModel @Inject constructor(
messageCount = packetRepository.getMessageCount(contactKey),
isMuted = settings[contactKey]?.isMuted == true,
isUnmessageable = user.isUnmessagable,
nodeColors = if (!toBroadcast) {
node.colors
} else {
null
},
)
}
}.stateIn(

Wyświetl plik

@ -31,6 +31,7 @@ import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.twotone.VolumeOff
import androidx.compose.material3.AssistChip
import androidx.compose.material3.AssistChipDefaults
import androidx.compose.material3.Card
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
@ -69,6 +70,14 @@ fun ContactItem(
.padding(horizontal = 8.dp, vertical = 6.dp),
shape = RoundedCornerShape(12.dp),
) {
val colors = if (contact.nodeColors != null) {
AssistChipDefaults.assistChipColors(
labelColor = Color(contact.nodeColors.first),
containerColor = Color(contact.nodeColors.second),
)
} else {
AssistChipDefaults.assistChipColors()
}
Row(
modifier = Modifier
@ -89,7 +98,8 @@ fun ContactItem(
fontWeight = FontWeight.Normal,
textAlign = TextAlign.Center,
)
}
},
colors = colors
)
Column(
modifier = Modifier.weight(1f),