Fix view once media send in CFv2.

This commit is contained in:
Cody Henthorne
2023-07-19 19:41:17 -04:00
parent 0775fc7ead
commit dc69bcf6f2
3 changed files with 22 additions and 12 deletions

View File

@@ -1639,12 +1639,20 @@ class ConversationFragment :
linkPreviews: List<LinkPreview> = linkPreviewViewModel.onSend(),
preUploadResults: List<MessageSender.PreUploadResult> = emptyList(),
bypassPreSendSafetyNumberCheck: Boolean = false,
isViewOnce: Boolean = false,
afterSendComplete: () -> Unit = {}
) {
if (scheduledDate != -1L && ReenableScheduledMessagesDialogFragment.showIfNeeded(requireContext(), childFragmentManager, null, scheduledDate)) {
return
}
if (SignalStore.uiHints().hasNotSeenTextFormattingAlert() && bodyRanges != null && bodyRanges.rangesCount > 0) {
Dialogs.showFormattedTextDialog(requireContext()) {
sendMessage(body, mentions, bodyRanges, messageToEdit, quote, scheduledDate, slideDeck, contacts, clearCompose, linkPreviews, preUploadResults, bypassPreSendSafetyNumberCheck, isViewOnce, afterSendComplete)
}
return
}
if (inputPanel.isRecordingInLockedMode) {
inputPanel.releaseRecordingLock()
return
@@ -1672,7 +1680,8 @@ class ConversationFragment :
contacts = contacts,
linkPreviews = linkPreviews,
preUploadResults = preUploadResults,
bypassPreSendSafetyNumberCheck = bypassPreSendSafetyNumberCheck
bypassPreSendSafetyNumberCheck = bypassPreSendSafetyNumberCheck,
isViewOnce = isViewOnce
)
disposables += send
@@ -3130,18 +3139,14 @@ class ConversationFragment :
slideDeck = SlideDeck().apply { slides.forEach { addSlide(it) } },
contacts = emptyList(),
clearCompose = true,
linkPreviews = emptyList()
linkPreviews = emptyList(),
isViewOnce = result.isViewOnce
) {
viewModel.deleteSlideData(slides)
}
}
private fun sendPreUploadMediaMessage(result: MediaSendActivityResult) {
if (SignalStore.uiHints().hasNotSeenTextFormattingAlert() && result.bodyRanges != null && result.bodyRanges.rangesCount > 0) {
Dialogs.showFormattedTextDialog(requireContext()) { sendPreUploadMediaMessage(result) }
return
}
sendMessage(
body = result.body,
mentions = result.mentions,
@@ -3153,7 +3158,8 @@ class ConversationFragment :
contacts = emptyList(),
clearCompose = true,
linkPreviews = emptyList(),
preUploadResults = result.preUploadResults
preUploadResults = result.preUploadResults,
isViewOnce = result.isViewOnce
)
}

View File

@@ -215,7 +215,8 @@ class ConversationRepository(
contacts: List<Contact>,
linkPreviews: List<LinkPreview>,
preUploadResults: List<PreUploadResult>,
identityRecordsState: IdentityRecordsState?
identityRecordsState: IdentityRecordsState?,
isViewOnce: Boolean
): Completable {
val sendCompletable = Completable.create { emitter ->
if (body.isEmpty() && slideDeck?.containsMediaSlide() != true && preUploadResults.isEmpty() && contacts.isEmpty()) {
@@ -259,7 +260,8 @@ class ConversationRepository(
mentions = mentions,
sharedContacts = contacts,
linkPreviews = linkPreviews,
attachments = outgoingMessageSlideDeck?.asAttachments() ?: emptyList()
attachments = outgoingMessageSlideDeck?.asAttachments() ?: emptyList(),
isViewOnce = isViewOnce
)
if (preUploadResults.isEmpty()) {

View File

@@ -346,7 +346,8 @@ class ConversationViewModel(
contacts: List<Contact>,
linkPreviews: List<LinkPreview>,
preUploadResults: List<MessageSender.PreUploadResult>,
bypassPreSendSafetyNumberCheck: Boolean
bypassPreSendSafetyNumberCheck: Boolean,
isViewOnce: Boolean
): Completable {
return repository.sendMessage(
threadId = threadId,
@@ -362,7 +363,8 @@ class ConversationViewModel(
contacts = contacts,
linkPreviews = linkPreviews,
preUploadResults = preUploadResults,
identityRecordsState = if (bypassPreSendSafetyNumberCheck) null else identityRecordsStore.state
identityRecordsState = if (bypassPreSendSafetyNumberCheck) null else identityRecordsStore.state,
isViewOnce = isViewOnce
).observeOn(AndroidSchedulers.mainThread())
}