Various improvements

This commit is contained in:
Ilya Laktyushin
2025-01-22 13:24:13 +04:00
parent 4bf5df909c
commit c0bfe87449
50 changed files with 626 additions and 206 deletions

View File

@@ -23,6 +23,7 @@ final class ContactSelectionControllerNode: ASDisplayNode {
private let displayDeviceContacts: Bool
private let displayCallIcons: Bool
private let allowChannelsInSearch: Bool
private let filters: [ContactListFilter]
let contactListNode: ContactListNode
@@ -56,11 +57,12 @@ final class ContactSelectionControllerNode: ASDisplayNode {
var searchContainerNode: ContactsSearchContainerNode?
init(context: AccountContext, mode: ContactSelectionControllerMode, presentationData: PresentationData, options: Signal<[ContactListAdditionalOption], NoError>, displayDeviceContacts: Bool, displayCallIcons: Bool, multipleSelection: Bool, requirePhoneNumbers: Bool) {
init(context: AccountContext, mode: ContactSelectionControllerMode, presentationData: PresentationData, options: Signal<[ContactListAdditionalOption], NoError>, displayDeviceContacts: Bool, displayCallIcons: Bool, multipleSelection: Bool, requirePhoneNumbers: Bool, allowChannelsInSearch: Bool) {
self.context = context
self.presentationData = presentationData
self.displayDeviceContacts = displayDeviceContacts
self.displayCallIcons = displayCallIcons
self.allowChannelsInSearch = allowChannelsInSearch
var excludeSelf = true
@@ -247,6 +249,9 @@ final class ContactSelectionControllerNode: ASDisplayNode {
} else {
categories.insert(.global)
}
if self.allowChannelsInSearch {
categories.insert(.channels)
}
let searchContainerNode = ContactsSearchContainerNode(context: self.context, updatedPresentationData: (self.presentationData, self.presentationDataPromise.get()), onlyWriteable: false, categories: categories, filters: self.filters, addContact: nil, openPeer: { [weak self] peer in
if let strongSelf = self {
@@ -316,6 +321,10 @@ final class ContactSelectionControllerNode: ASDisplayNode {
} else {
categories.insert(.global)
}
if self.allowChannelsInSearch {
categories.insert(.channels)
}
self.searchDisplayController = SearchDisplayController(presentationData: self.presentationData, contentNode: ContactsSearchContainerNode(context: self.context, updatedPresentationData: (self.presentationData, self.presentationDataPromise.get()), onlyWriteable: false, categories: categories, filters: self.filters, addContact: nil, openPeer: { [weak self] peer in
if let strongSelf = self {
var updated = false