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