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