mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-23 19:26:17 +00:00
Fix view once media send in CFv2.
This commit is contained in:
@@ -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
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
@@ -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())
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user