mobile: merge contacts (#1271)

This commit is contained in:
JRoberts
2022-10-28 20:05:04 +04:00
committed by GitHub
parent 8a121b4442
commit 8f638df7a9
2 changed files with 15 additions and 0 deletions

View File

@@ -950,6 +950,14 @@ open class ChatController(var ctrl: ChatCtrl?, val ntfManager: NtfManager, val a
chatModel.updateChatInfo(cInfo)
}
}
is CR.ContactsMerged -> {
if (chatModel.hasChat(r.mergedContact.id)) {
if (chatModel.chatId.value == r.mergedContact.id) {
chatModel.chatId.value = r.intoContact.id
}
chatModel.removeChat(r.mergedContact.id)
}
}
is CR.ContactsSubscribed -> updateContactsStatus(r.contactRefs, Chat.NetworkStatus.Connected())
is CR.ContactsDisconnected -> updateContactsStatus(r.contactRefs, Chat.NetworkStatus.Disconnected())
is CR.ContactSubError -> processContactSubError(r.contact, r.chatError)

View File

@@ -911,6 +911,13 @@ func processReceivedMsg(_ res: ChatResponse) async {
if m.hasChat(toContact.id) {
m.updateChatInfo(cInfo)
}
case let .contactsMerged(intoContact, mergedContact):
if m.hasChat(mergedContact.id) {
if m.chatId == mergedContact.id {
m.chatId = intoContact.id
}
m.removeChat(mergedContact.id)
}
case let .contactsSubscribed(_, contactRefs):
updateContactsStatus(contactRefs, status: .connected)
case let .contactsDisconnected(_, contactRefs):