From bf305964bc7010ebd522e23c03eee649ab6baab2 Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Mon, 30 Jun 2025 16:34:42 +0000 Subject: [PATCH] android, desktop: fix accepting contact request (#6021) --- .../kotlin/chat/simplex/common/model/SimpleXAPI.kt | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt index ea1e14c497..0f6dc299ab 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt @@ -2435,12 +2435,11 @@ object ChatController { val contactRequest = r.contactRequest if (active(r.user)) { withContext(Dispatchers.Main) { - if (r.contact_ != null) { // means contact request was created with contact, so we need to add/update contact chat - val contact = r.contact_ - if (chatModel.chatsContext.hasChat(rhId, contact.id)) { - chatModel.chatsContext.updateContact(rhId, contact) + if (r.chat_ != null) { // means contact request was created with contact, so we need to add/update contact chat + if (chatModel.chatsContext.hasChat(rhId, r.chat_.id)) { + chatModel.chatsContext.updateChatInfo(rhId, r.chat_.chatInfo) } else { - chatModel.chatsContext.addChat(Chat(remoteHostId = rhId, chatInfo = ChatInfo.Direct(contact), chatItems = listOf())) + chatModel.chatsContext.addChat(r.chat_) } } else { val cInfo = ChatInfo.ContactRequest(contactRequest) @@ -5948,7 +5947,7 @@ sealed class CR { @Serializable @SerialName("contactConnected") class ContactConnected(val user: UserRef, val contact: Contact, val userCustomProfile: Profile? = null): CR() @Serializable @SerialName("contactConnecting") class ContactConnecting(val user: UserRef, val contact: Contact): CR() @Serializable @SerialName("contactSndReady") class ContactSndReady(val user: UserRef, val contact: Contact): CR() - @Serializable @SerialName("receivedContactRequest") class ReceivedContactRequest(val user: UserRef, val contactRequest: UserContactRequest, val contact_: Contact?): CR() + @Serializable @SerialName("receivedContactRequest") class ReceivedContactRequest(val user: UserRef, val contactRequest: UserContactRequest, val chat_: Chat?): CR() @Serializable @SerialName("acceptingContactRequest") class AcceptingContactRequest(val user: UserRef, val contact: Contact): CR() @Serializable @SerialName("contactRequestRejected") class ContactRequestRejected(val user: UserRef, val contactRequest: UserContactRequest, val contact_: Contact?): CR() @Serializable @SerialName("contactUpdated") class ContactUpdated(val user: UserRef, val toContact: Contact): CR() @@ -6312,7 +6311,7 @@ sealed class CR { is ContactConnected -> withUser(user, json.encodeToString(contact)) is ContactConnecting -> withUser(user, json.encodeToString(contact)) is ContactSndReady -> withUser(user, json.encodeToString(contact)) - is ReceivedContactRequest -> withUser(user, "contactRequest: ${json.encodeToString(contactRequest)}\ncontact_: ${json.encodeToString(contact_)}") + is ReceivedContactRequest -> withUser(user, "contactRequest: ${json.encodeToString(contactRequest)}\nchat_: ${json.encodeToString(chat_)}") is AcceptingContactRequest -> withUser(user, json.encodeToString(contact)) is ContactRequestRejected -> withUser(user, "contactRequest: ${json.encodeToString(contactRequest)}\ncontact_: ${json.encodeToString(contact_)}") is ContactUpdated -> withUser(user, json.encodeToString(toContact))