mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-03 13:13:55 +00:00
- add contact improments.
This commit is contained in:
parent
2751cf54d8
commit
ffa620b62b
@ -3,10 +3,17 @@ import TelegramApi
|
||||
import SwiftSignalKit
|
||||
|
||||
|
||||
func _internal_importContact(account: Account, firstName: String, lastName: String, phoneNumber: String) -> Signal<PeerId?, NoError> {
|
||||
func _internal_importContact(account: Account, firstName: String, lastName: String, phoneNumber: String, noteText: String, noteEntities: [MessageTextEntity]) -> Signal<PeerId?, NoError> {
|
||||
let accountPeerId = account.peerId
|
||||
|
||||
let input = Api.InputContact.inputPhoneContact(flags: 0, clientId: 1, phone: phoneNumber, firstName: firstName, lastName: lastName, note: nil)
|
||||
var flags: Int32 = 0
|
||||
var note: Api.TextWithEntities?
|
||||
if !noteText.isEmpty {
|
||||
flags |= (1 << 1)
|
||||
note = .textWithEntities(text: noteText, entities: apiEntitiesFromMessageTextEntities(noteEntities, associatedPeers: SimpleDictionary()))
|
||||
}
|
||||
|
||||
let input = Api.InputContact.inputPhoneContact(flags: 0, clientId: 1, phone: phoneNumber, firstName: firstName, lastName: lastName, note: note)
|
||||
|
||||
return account.network.request(Api.functions.contacts.importContacts(contacts: [input]))
|
||||
|> map(Optional.init)
|
||||
@ -28,6 +35,11 @@ func _internal_importContact(account: Account, firstName: String, lastName: Stri
|
||||
peerIds.insert(peerId)
|
||||
transaction.replaceContactPeerIds(peerIds)
|
||||
}
|
||||
if !noteText.isEmpty {
|
||||
transaction.updatePeerCachedData(peerIds: peerIds, update: { peerId, cachedData in
|
||||
(cachedData as? CachedUserData)?.withUpdatedNote(.init(text: noteText, entities: noteEntities))
|
||||
})
|
||||
}
|
||||
return peerId
|
||||
}
|
||||
}
|
||||
@ -86,6 +98,11 @@ func _internal_addContactInteractively(account: Account, peerId: PeerId, firstNa
|
||||
peerIds.insert(peerId)
|
||||
transaction.replaceContactPeerIds(peerIds)
|
||||
}
|
||||
if !noteText.isEmpty {
|
||||
transaction.updatePeerCachedData(peerIds: peerIds, update: { peerId, cachedData in
|
||||
(cachedData as? CachedUserData)?.withUpdatedNote(.init(text: noteText, entities: noteEntities))
|
||||
})
|
||||
}
|
||||
|
||||
account.stateManager.addUpdates(result)
|
||||
}
|
||||
|
||||
@ -42,8 +42,8 @@ public extension TelegramEngine {
|
||||
return _internal_deviceContactsImportedByCount(postbox: self.account.postbox, contacts: contacts)
|
||||
}
|
||||
|
||||
public func importContact(firstName: String, lastName: String, phoneNumber: String) -> Signal<PeerId?, NoError> {
|
||||
return _internal_importContact(account: self.account, firstName: firstName, lastName: lastName, phoneNumber: phoneNumber)
|
||||
public func importContact(firstName: String, lastName: String, phoneNumber: String, noteText: String, noteEntities: [MessageTextEntity]) -> Signal<PeerId?, NoError> {
|
||||
return _internal_importContact(account: self.account, firstName: firstName, lastName: lastName, phoneNumber: phoneNumber, noteText: noteText, noteEntities: noteEntities)
|
||||
}
|
||||
|
||||
public func addContactInteractively(peerId: PeerId, firstName: String, lastName: String, phoneNumber: String, noteText: String, noteEntities: [MessageTextEntity], addToPrivacyExceptions: Bool) -> Signal<Never, AddContactError> {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user