diff --git a/jami-android/libjamiclient/src/main/kotlin/net/jami/model/Account.kt b/jami-android/libjamiclient/src/main/kotlin/net/jami/model/Account.kt index dc4bcc95657978957d80108df384c3ed985df433..765a1eb3e23edff0ea50d2108bbd05993a0e6214 100644 --- a/jami-android/libjamiclient/src/main/kotlin/net/jami/model/Account.kt +++ b/jami-android/libjamiclient/src/main/kotlin/net/jami/model/Account.kt @@ -95,7 +95,7 @@ class Account( fun isContact(uri: Uri): Boolean = getContact(uri) != null - fun conversationStarted(conversation: Conversation) { + fun conversationStarted(conversation: Conversation, newMode: Conversation.Mode? = null) { //Log.w(TAG, "conversationStarted ${conversation.accountId} ${conversation.uri} ${conversation.isSwarm} ${conversation.contacts.size} ${conversation.mode.blockingFirst()}") synchronized(conversations) { if (conversation.isSwarm) { @@ -103,7 +103,11 @@ class Account( swarmConversations[conversation.uri.rawRingId] = conversation } conversations[conversation.uri.uri] = conversation - if (conversation.isSwarm && conversation.mode.blockingFirst() === Conversation.Mode.OneToOne) { + + if (newMode != null) conversation.setMode(newMode) + + val mode = newMode ?: conversation.mode.blockingFirst() + if (conversation.isSwarm && mode === Conversation.Mode.OneToOne) { try { val contact = conversation.contact!! val key = contact.uri.uri diff --git a/jami-android/libjamiclient/src/main/kotlin/net/jami/services/AccountService.kt b/jami-android/libjamiclient/src/main/kotlin/net/jami/services/AccountService.kt index 6a7a0c0e24299b6b548ef8d68ff86bea974a41e9..727f32144c6a585425d506a0e633d07df48a2d23 100644 --- a/jami-android/libjamiclient/src/main/kotlin/net/jami/services/AccountService.kt +++ b/jami-android/libjamiclient/src/main/kotlin/net/jami/services/AccountService.kt @@ -1448,10 +1448,8 @@ class AccountService( } if (!conversation.lastElementLoadedSubject.hasValue()) conversation.lastElementLoadedSubject.onSuccess(loadMore(conversation, 8).ignoreElement().cache()) - if (setMode) - conversation.setMode(mode) } - account.conversationStarted(conversation) + account.conversationStarted(conversation, if (setMode) mode else null) loadMore(conversation, 2) }