kopia lustrzana https://github.com/meshtastic/Meshtastic-Android
feat: Use node colors for contact chip (#1891)
rodzic
01fb50647a
commit
2f13aee171
|
@ -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(
|
||||||
|
|
|
@ -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),
|
||||||
|
|
Ładowanie…
Reference in New Issue