diff --git a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomCreationViewModel.kt b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomCreationViewModel.kt index 24ced613a..8ce5b21fc 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomCreationViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomCreationViewModel.kt @@ -108,14 +108,23 @@ class ChatRoomCreationViewModel : ContactsSelectionViewModel() { Log.w("[Chat Room Creation] Couldn't find existing 1-1 chat room with remote ${address.asStringUriOnly()}, encryption=$encrypted and local identity ${localAddress?.asStringUriOnly()}") room = coreContext.core.createChatRoom(params, localAddress, participants) - if (encrypted) { - room?.addListener(listener) - } else { - if (room != null) { - chatRoomCreatedEvent.value = Event(room) + if (room != null) { + if (encrypted) { + val state = room.state + if (state == ChatRoom.State.Created) { + Log.i("[Chat Room Creation] Found already created chat room, using it") + chatRoomCreatedEvent.value = Event(room) + waitForChatRoomCreation.value = false + } else { + Log.i("[Chat Room Creation] Chat room creation is pending [$state], waiting for Created state") + room.addListener(listener) + } } else { - Log.e("[Chat Room Creation] Couldn't create chat room with remote ${address.asStringUriOnly()} and local identity ${localAddress?.asStringUriOnly()}") + chatRoomCreatedEvent.value = Event(room) + waitForChatRoomCreation.value = false } + } else { + Log.e("[Chat Room Creation] Couldn't create chat room with remote ${address.asStringUriOnly()} and local identity ${localAddress?.asStringUriOnly()}") waitForChatRoomCreation.value = false } } else { diff --git a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomViewModel.kt b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomViewModel.kt index 4dbd6cc00..c2c0f12e3 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomViewModel.kt @@ -116,7 +116,7 @@ class ChatRoomViewModel(val chatRoom: ChatRoom) : ViewModel(), ContactDataInterf private val contactsUpdatedListener = object : ContactsUpdatedListenerStub() { override fun onContactsUpdated() { - Log.i("[Chat Room] Contacts have changed") + Log.d("[Chat Room] Contacts have changed") contactLookup() updateLastMessageToDisplay() }