Add resend handler to CFV2.

This commit is contained in:
Alex Hart
2023-06-15 15:30:33 -03:00
committed by Cody Henthorne
parent 1b95177e0e
commit 361727cec6
3 changed files with 15 additions and 1 deletions

View File

@@ -1474,6 +1474,10 @@ class ConversationFragment :
viewModel.copyToClipboard(requireContext(), messageParts).subscribe().addTo(disposables)
}
private fun handleResend(conversationMessage: ConversationMessage) {
viewModel.resendMessage(conversationMessage).subscribe()
}
private fun handleEnterMultiselect(conversationMessage: ConversationMessage) {
val parts = conversationMessage.multiselectCollection.toSet()
parts.forEach { adapter.toggleSelection(it) }
@@ -2372,7 +2376,7 @@ class ConversationFragment :
ConversationReactionOverlay.Action.REPLY -> handleReplyToMessage(conversationMessage)
ConversationReactionOverlay.Action.EDIT -> handleEditMessage(conversationMessage)
ConversationReactionOverlay.Action.FORWARD -> handleForwardMessageParts(conversationMessage.multiselectCollection.toSet())
ConversationReactionOverlay.Action.RESEND -> Unit // TODO [cfv2]
ConversationReactionOverlay.Action.RESEND -> handleResend(conversationMessage)
ConversationReactionOverlay.Action.DOWNLOAD -> handleSaveAttachment(conversationMessage.messageRecord as MediaMmsMessageRecord)
ConversationReactionOverlay.Action.COPY -> handleCopyMessage(conversationMessage.multiselectCollection.toSet())
ConversationReactionOverlay.Action.MULTISELECT -> handleEnterMultiselect(conversationMessage)

View File

@@ -416,6 +416,12 @@ class ConversationRepository(
}
}
fun resendMessage(messageRecord: MessageRecord): Completable {
return Completable.fromAction {
MessageSender.resend(applicationContext, messageRecord)
}.subscribeOn(Schedulers.io())
}
private fun extractBodies(context: Context, messageParts: Set<MultiselectPart>): CharSequence {
return messageParts
.asSequence()

View File

@@ -333,6 +333,10 @@ class ConversationViewModel(
return repository.copyToClipboard(context, messageParts)
}
fun resendMessage(conversationMessage: ConversationMessage): Completable {
return repository.resendMessage(conversationMessage.messageRecord)
}
fun getRequestReviewState(): Observable<RequestReviewState> {
return _inputReadyState
.flatMapSingle { (recipient, messageRequestState, group) -> repository.getRequestReviewState(recipient, group, messageRequestState) }