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 messageCount: Int,
val isMuted: Boolean, val isMuted: Boolean,
val isUnmessageable: Boolean, val isUnmessageable: Boolean,
val nodeColors: Pair<Int, Int>? = null,
) )
@Suppress("LongParameterList") @Suppress("LongParameterList")
@ -385,6 +386,7 @@ class UIViewModel @Inject constructor(
// grab usernames from NodeInfo // grab usernames from NodeInfo
val user = getUser(if (fromLocal) data.to else data.from) 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 shortName = user.shortName
val longName = if (toBroadcast) { val longName = if (toBroadcast) {
@ -403,6 +405,11 @@ class UIViewModel @Inject constructor(
messageCount = packetRepository.getMessageCount(contactKey), messageCount = packetRepository.getMessageCount(contactKey),
isMuted = settings[contactKey]?.isMuted == true, isMuted = settings[contactKey]?.isMuted == true,
isUnmessageable = user.isUnmessagable, isUnmessageable = user.isUnmessagable,
nodeColors = if (!toBroadcast) {
node.colors
} else {
null
},
) )
} }
}.stateIn( }.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.Icons
import androidx.compose.material.icons.automirrored.twotone.VolumeOff import androidx.compose.material.icons.automirrored.twotone.VolumeOff
import androidx.compose.material3.AssistChip import androidx.compose.material3.AssistChip
import androidx.compose.material3.AssistChipDefaults
import androidx.compose.material3.Card import androidx.compose.material3.Card
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
@ -69,6 +70,14 @@ fun ContactItem(
.padding(horizontal = 8.dp, vertical = 6.dp), .padding(horizontal = 8.dp, vertical = 6.dp),
shape = RoundedCornerShape(12.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( Row(
modifier = Modifier modifier = Modifier
@ -89,7 +98,8 @@ fun ContactItem(
fontWeight = FontWeight.Normal, fontWeight = FontWeight.Normal,
textAlign = TextAlign.Center, textAlign = TextAlign.Center,
) )
} },
colors = colors
) )
Column( Column(
modifier = Modifier.weight(1f), modifier = Modifier.weight(1f),