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

@ -69,6 +69,8 @@ interface IMeshService {
void delete(int position);
void deleteAllMessages();
/**
Get the IDs of everyone on the mesh. You should also subscribe for NODE_CHANGE broadcasts.
*/

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

View file

@ -122,4 +122,5 @@
<string name="modem_config_slow_medium">Medium Range / Slow</string>
<string name="delete_selected_message">Delete selected message?</string>
<string name="delete">Delete</string>
<string name="delete_all_messages">Delete All Messages</string>
</resources>