mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-05-13 01:05:55 -04:00
@@ -165,7 +165,11 @@ fun ContactsScreen(
|
||||
.mapNotNull { pagedContacts[it] }
|
||||
.filter { it.contactKey in selectedContactKeys }
|
||||
}
|
||||
val selectedCount = remember(selectedContacts) { selectedContacts.sumOf { it.messageCount } }
|
||||
// Get message count directly from repository for selected contacts
|
||||
var selectedCount by remember { mutableStateOf(0) }
|
||||
LaunchedEffect(selectedContactKeys.size, selectedContactKeys.joinToString(",")) {
|
||||
selectedCount = viewModel.getTotalMessageCount(selectedContactKeys.toList())
|
||||
}
|
||||
val isAllMuted = remember(selectedContacts) { selectedContacts.all { it.isMuted } }
|
||||
|
||||
// Callback functions for item interaction
|
||||
@@ -398,7 +402,7 @@ private fun DeleteConfirmationDialog(
|
||||
pluralStringResource(
|
||||
Res.plurals.delete_messages,
|
||||
selectedCount,
|
||||
arrayOf(selectedCount), // Pass the count as a format argument
|
||||
selectedCount, // Pass the count as a format argument
|
||||
)
|
||||
|
||||
AlertDialog(
|
||||
|
||||
@@ -189,5 +189,15 @@ constructor(
|
||||
|
||||
fun getContactSettings() = packetRepository.getContactSettings()
|
||||
|
||||
/**
|
||||
* Get the total message count for a list of contact keys. This queries the repository directly, so it works even if
|
||||
* contacts aren't loaded in the paged list.
|
||||
*/
|
||||
suspend fun getTotalMessageCount(contactKeys: List<String>): Int = if (contactKeys.isEmpty()) {
|
||||
0
|
||||
} else {
|
||||
contactKeys.sumOf { contactKey -> packetRepository.getMessageCount(contactKey) }
|
||||
}
|
||||
|
||||
private fun getUser(userId: String?) = nodeRepository.getUser(userId ?: DataPacket.ID_BROADCAST)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user