From f79e04ad7b25dc0df60c2ecacb1a74af96155ee8 Mon Sep 17 00:00:00 2001 From: Amirhossein <amirhossein.naghshzan@savoirfairelinux.com> Date: Wed, 4 May 2022 12:51:12 -0400 Subject: [PATCH] conversation: delete swarm file Change-Id: I15df72081a1f5ab254767e6e666e685e251baf25 --- .../net/jami/services/ConversationFacade.kt | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/ring-android/libjamiclient/src/main/kotlin/net/jami/services/ConversationFacade.kt b/ring-android/libjamiclient/src/main/kotlin/net/jami/services/ConversationFacade.kt index a71eabfeb..7013c4067 100644 --- a/ring-android/libjamiclient/src/main/kotlin/net/jami/services/ConversationFacade.kt +++ b/ring-android/libjamiclient/src/main/kotlin/net/jami/services/ConversationFacade.kt @@ -166,20 +166,28 @@ class ConversationFacade( } fun deleteConversationItem(conversation: Conversation, element: Interaction) { - if (conversation.isSwarm) - return if (element.type === Interaction.InteractionType.DATA_TRANSFER) { val transfer = element as DataTransfer if (transfer.status === InteractionStatus.TRANSFER_ONGOING) { mAccountService.cancelDataTransfer(conversation.accountId, conversation.uri.rawRingId, transfer.messageId, transfer.fileId!!) } else { val file = mDeviceRuntimeService.getConversationPath(conversation.uri.rawRingId, transfer.storagePath) - mDisposableBag.add(Completable.mergeArrayDelayError( - mHistoryService.deleteInteraction(element.id, element.account!!), - Completable.fromAction { file.delete() } - .subscribeOn(Schedulers.io())) - .subscribe({ conversation.removeInteraction(transfer) }) + if (conversation.isSwarm) { + mDisposableBag.add(Completable.fromAction { file.delete() } + .subscribeOn(Schedulers.io()) + .subscribe({ + transfer.status = InteractionStatus.FILE_AVAILABLE + conversation.updateInteraction(transfer) + }) + { e: Throwable -> Log.e(TAG, "Can't delete file transfer", e) }) + } else { + mDisposableBag.add(Completable.mergeArrayDelayError( + mHistoryService.deleteInteraction(element.id, element.account!!), + Completable.fromAction { file.delete() } + .subscribeOn(Schedulers.io())) + .subscribe({ conversation.removeInteraction(transfer) }) { e: Throwable -> Log.e(TAG, "Can't delete file transfer", e) }) + } } } else { // handling is the same for calls and texts -- GitLab