diff --git a/ring-android/libringclient/src/main/java/net/jami/facades/ConversationFacade.java b/ring-android/libringclient/src/main/java/net/jami/facades/ConversationFacade.java index fdcd012ab6ced1e600bdbbcfc14c80fe64a5130c..168d9e1a90403a9a500f533b5c03fc23bd868c9a 100644 --- a/ring-android/libringclient/src/main/java/net/jami/facades/ConversationFacade.java +++ b/ring-android/libringclient/src/main/java/net/jami/facades/ConversationFacade.java @@ -693,7 +693,17 @@ public class ConversationFacade { public Completable removeConversation(String accountId, Uri conversationUri) { if (conversationUri.isSwarm()) { - return mAccountService.removeConversation(accountId, conversationUri); + // For a one to one conversation, contact is strongly related, so remove the contact. + // This will remove related conversations + Account account = mAccountService.getAccount(accountId); + Conversation conversation = account.getSwarm(conversationUri.getRawRingId()); + if (conversation != null && conversation.getMode().blockingFirst() == Conversation.Mode.OneToOne) { + Contact contact = conversation.getContact(); + mAccountService.removeContact(accountId, contact.getUri().getRawRingId(), false); + return Completable.complete(); + } else { + return mAccountService.removeConversation(accountId, conversationUri); + } } else { return mHistoryService .clearHistory(conversationUri.getUri(), accountId, true)