From f73e022cfd4706403520256d8c264ca6b201305f Mon Sep 17 00:00:00 2001 From: ThomasSession Date: Wed, 25 Sep 2024 17:21:17 +1000 Subject: [PATCH] Toast confirmation on 'delete locally' --- .../conversation/v2/ConversationActivityV2.kt | 15 ++++++++++----- .../v2/dialogs/DeleteMessageDialog.kt | 8 +++++--- .../v2/dialogs/DeleteNoteToSelfDialog.kt | 8 +++++--- .../repository/ConversationRepository.kt | 3 --- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt index 915c8055e7..f30a103779 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt @@ -2083,7 +2083,7 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe //todo DELETION handle control messages deletion ( and make clickable ) - //todo DELETION handle "marked as deleted" message deletion ( and make clickable ) + //todo DELETION handle multi select scenarios //todo DELETION check that the unread status works as expected when deleting a message @@ -2093,9 +2093,7 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe //todo DELETION check notifications deleted - //todo DELETION add padding to bubble long press menu. It touches the bottom of the screen - - //todo DELETION check why I can't long press on certain messages at the bottom of some threads ( like with bruno ) + //todo DELETION handle errors: Toasts for errors, or deleting messages not fully sent yet @@ -2130,12 +2128,19 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe // creating a reusable callback val deleteDeviceOnly = { + // delete the message locally viewModel.markAsDeletedLocally( messages = messages, displayedMessage = resources.getString(R.string.deleteMessageDeletedLocally) ) endActionMode() - //todo DELETION show confirmation toast + + // show confirmation toast + Toast.makeText( + this, + resources.getQuantityString(R.plurals.deleteMessageDeleted, messages.count(), messages.count()), + Toast.LENGTH_SHORT + ).show() } // There are three types of dialogs for deletion: diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DeleteMessageDialog.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DeleteMessageDialog.kt index 4ead11ab39..2dafd8d9ee 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DeleteMessageDialog.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DeleteMessageDialog.kt @@ -58,9 +58,11 @@ class DeleteMessageDialog( cancelButton(onCancel) } - private val deleteOptions: List = listOf( - DeleteOption.DeleteDeviceOnly(requireContext()), DeleteOption.DeleteForEveryone(requireContext()) - ) + private val deleteOptions: List by lazy { + listOf( + DeleteOption.DeleteDeviceOnly(requireContext()), DeleteOption.DeleteForEveryone(requireContext()) + ) + } private sealed class DeleteOption( open val label: String diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DeleteNoteToSelfDialog.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DeleteNoteToSelfDialog.kt index 710133dbb9..464cdd0f14 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DeleteNoteToSelfDialog.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DeleteNoteToSelfDialog.kt @@ -56,9 +56,11 @@ class DeleteNoteToSelfDialog( cancelButton(onCancel) } - private val deleteOptions: List = listOf( - DeleteOption.DeleteDeviceOnly(requireContext()), DeleteOption.DeleteOnAllMyDevices(requireContext()) - ) + private val deleteOptions: List by lazy { + listOf( + DeleteOption.DeleteDeviceOnly(requireContext()), DeleteOption.DeleteOnAllMyDevices(requireContext()) + ) + } private sealed class DeleteOption( open val label: String diff --git a/app/src/main/java/org/thoughtcrime/securesms/repository/ConversationRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/repository/ConversationRepository.kt index f6d3e7221b..5a0e97a913 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/repository/ConversationRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/repository/ConversationRepository.kt @@ -206,9 +206,6 @@ class DefaultConversationRepository @Inject constructor( displayedMessage = displayedMessage ) } - - //todo DELETION delete attachments and links - //todo DELETION delete notifications } override fun deleteAllLocalMessagesInThreadFromSenderOfMessage(messageRecord: MessageRecord) {