From ae59117596b9dae43816871b1357021d16d951c9 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 14 Jun 2022 13:06:37 +0200 Subject: [PATCH] Fixed secured chat room button in contact/history if existing chat room is found but in terminated state --- .../activities/main/contact/viewmodels/ContactViewModel.kt | 4 +++- .../activities/main/history/viewmodels/CallLogViewModel.kt | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/linphone/activities/main/contact/viewmodels/ContactViewModel.kt b/app/src/main/java/org/linphone/activities/main/contact/viewmodels/ContactViewModel.kt index f8f0b63fb..58e02e2ac 100644 --- a/app/src/main/java/org/linphone/activities/main/contact/viewmodels/ContactViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/contact/viewmodels/ContactViewModel.kt @@ -115,7 +115,9 @@ class ContactViewModel(friend: Friend, async: Boolean = false) : MessageNotifier val chatRoom = LinphoneUtils.createOneToOneChatRoom(address, isSecured) if (chatRoom != null) { - if (chatRoom.state == ChatRoom.State.Created) { + val state = chatRoom.state + Log.i("[Contact Detail] Found existing chat room in state $state") + if (state == ChatRoom.State.Created || state == ChatRoom.State.Terminated) { waitForChatRoomCreation.value = false chatRoomCreatedEvent.value = Event(chatRoom) } else { diff --git a/app/src/main/java/org/linphone/activities/main/history/viewmodels/CallLogViewModel.kt b/app/src/main/java/org/linphone/activities/main/history/viewmodels/CallLogViewModel.kt index 466447415..c31ae9331 100644 --- a/app/src/main/java/org/linphone/activities/main/history/viewmodels/CallLogViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/history/viewmodels/CallLogViewModel.kt @@ -188,8 +188,11 @@ class CallLogViewModel(val callLog: CallLog, private val isRelated: Boolean = fa fun startChat(isSecured: Boolean) { waitForChatRoomCreation.value = true val chatRoom = LinphoneUtils.createOneToOneChatRoom(callLog.remoteAddress, isSecured) + if (chatRoom != null) { - if (chatRoom.state == ChatRoom.State.Created) { + val state = chatRoom.state + Log.i("[History Detail] Found existing chat room in state $state") + if (state == ChatRoom.State.Created || state == ChatRoom.State.Terminated) { waitForChatRoomCreation.value = false chatRoomCreatedEvent.value = Event(chatRoom) } else {