Added delete all messages into the AlertDialog.

This commit is contained in:
Jackson Rosenthal
2022-01-31 19:11:32 -05:00
parent 863426ce6b
commit 93e81e4639
5 changed files with 33 additions and 1 deletions

View File

@@ -53,6 +53,13 @@ class MessagesState(private val ui: UIViewModel) : Logging {
messages.value = messagesList
}
private fun removeAllMessages() {
debug("Removing all messages")
messagesList.clear()
messages.value = messagesList
}
fun updateStatus(id: Int, status: MessageStatus) {
// Super inefficent but this is rare
debug("Handling message status change $id: $status")
@@ -102,4 +109,16 @@ class MessagesState(private val ui: UIViewModel) : Logging {
}
removeMessage(packet)
}
fun deleteAllMessages() {
val service = ui.meshService
if (service != null) {
try {
service.deleteAllMessages()
} catch (ex: RemoteException) {
}
removeAllMessages()
}
}
}

View File

@@ -1789,6 +1789,10 @@ class MeshService : Service(), Logging {
}
}
override fun deleteAllMessages() {
recentDataPackets.clear()
}
override fun send(p: DataPacket) {
toRemoteExceptions {
// Init from and id

View File

@@ -173,9 +173,15 @@ class MessagesFragment : ScreenFragment("Messages"), Logging {
) { _, _ ->
model.messagesState.deleteMessage((messages[position]), position)
}
deleteMessageDialog.setNegativeButton(R.string.cancel
deleteMessageDialog.setNeutralButton(
R.string.cancel
) { _, _ ->
}
deleteMessageDialog.setNegativeButton(
R.string.delete_all_messages
) { _, _ ->
model.messagesState.deleteAllMessages()
}
deleteMessageDialog.create()
deleteMessageDialog.show()
true