Add Delete for Me sync support.

This commit is contained in:
Cody Henthorne
2024-05-21 15:11:06 -04:00
parent 1c66da7873
commit a81a675d59
40 changed files with 2274 additions and 198 deletions

View File

@@ -108,6 +108,7 @@ import org.thoughtcrime.securesms.badges.gifts.viewgift.sent.ViewSentGiftBottomS
import org.thoughtcrime.securesms.components.AnimatingToggle
import org.thoughtcrime.securesms.components.ComposeText
import org.thoughtcrime.securesms.components.ConversationSearchBottomBar
import org.thoughtcrime.securesms.components.DeleteSyncEducationDialog
import org.thoughtcrime.securesms.components.HidingLinearLayout
import org.thoughtcrime.securesms.components.InputAwareConstraintLayout
import org.thoughtcrime.securesms.components.InputPanel
@@ -2375,10 +2376,26 @@ class ConversationFragment :
}
private fun handleDeleteMessages(messageParts: Set<MultiselectPart>) {
if (DeleteSyncEducationDialog.shouldShow()) {
DeleteSyncEducationDialog
.show(childFragmentManager)
.observeOn(AndroidSchedulers.mainThread())
.subscribe { handleDeleteMessages(messageParts) }
.addTo(disposables)
return
}
val records = messageParts.map(MultiselectPart::getMessageRecord).toSet()
disposables += DeleteDialog.show(
context = requireContext(),
messageRecords = records
messageRecords = records,
message = if (TextSecurePreferences.isMultiDevice(requireContext()) && FeatureFlags.deleteSyncEnabled()) {
resources.getQuantityString(R.plurals.ConversationFragment_delete_on_linked_warning, records.size)
} else {
null
}
).observeOn(AndroidSchedulers.mainThread())
.subscribe { (deleted: Boolean, _: Boolean) ->
if (!deleted) return@subscribe