From 9d9ad63b4def6a0a52ad41affbfc38552c4218b8 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Fri, 25 Aug 2023 17:15:17 -0400 Subject: [PATCH] BugFix deleting status --- .../com/vitorpamplona/amethyst/model/Account.kt | 15 +++++++++++++++ .../ui/screen/loggedIn/AccountViewModel.kt | 15 +++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt index 6b74a58558..7b556e08d5 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt @@ -1027,6 +1027,21 @@ class Account( LocalCache.consume(event, null) } + fun deleteStatus(oldStatus: AddressableNote) { + if (!isWriteable()) return + val oldEvent = oldStatus.event as? StatusEvent ?: return + + val event = StatusEvent.clear(oldEvent, keyPair.privKey!!) + + Client.send(event) + LocalCache.consume(event, null) + + val event2 = DeletionEvent.create(listOf(event.id), keyPair.privKey!!) + + Client.send(event2) + LocalCache.consume(event2) + } + fun removeEmojiPack(usersEmojiList: Note, emojiList: Note) { if (!isWriteable()) return diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt index eabb999d92..5300f38a40 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt @@ -456,11 +456,22 @@ class AccountViewModel(val account: Account) : ViewModel() { } fun createStatus(newStatus: String) { - account.createStatus(newStatus) + viewModelScope.launch(Dispatchers.IO) { + account.createStatus(newStatus) + } } fun updateStatus(it: AddressableNote, newStatus: String) { - account.updateStatus(it, newStatus) + viewModelScope.launch(Dispatchers.IO) { + account.updateStatus(it, newStatus) + } + } + + fun deleteStatus(it: AddressableNote) { + viewModelScope.launch(Dispatchers.IO) { + account.deleteStatus(it) + } + } fun checkIfOnline(url: String, onResult: (Boolean) -> Unit) { viewModelScope.launch(Dispatchers.IO) {