From 3ebef5171b38e1abb4edfa4e97123495aaabb659 Mon Sep 17 00:00:00 2001 From: Peter <> Date: Fri, 14 Dec 2018 19:44:08 +0400 Subject: [PATCH] Fix contact list index --- TelegramUI/ContactListNode.swift | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/TelegramUI/ContactListNode.swift b/TelegramUI/ContactListNode.swift index 96931c967a..7f86cbd5d0 100644 --- a/TelegramUI/ContactListNode.swift +++ b/TelegramUI/ContactListNode.swift @@ -914,10 +914,10 @@ final class ContactListNode: ASDisplayNode { peers = peers.filter { contact in switch contact { - case let .peer(peer, _): - return !existingPeerIds.contains(peer.id) - default: - return true + case let .peer(peer, _): + return !existingPeerIds.contains(peer.id) + default: + return true } } @@ -1078,6 +1078,13 @@ final class ContactListNode: ASDisplayNode { self.listNode.transaction(deleteIndices: [], insertIndicesAndItems: [], updateIndicesAndItems: [], options: [.Synchronous, .LowLatency], scrollToItem: nil, updateSizeAndInsets: updateSizeAndInsets, stationaryItemRange: nil, updateOpaqueState: nil, completion: { _ in }) if let indexNode = self.indexNode, let indexSections = self.indexSections { + var insets = layout.insets(options: [.input]) + if let inputHeight = layout.inputHeight { + insets.bottom -= inputHeight + } + insets.left += layout.safeInsets.left + insets.right += layout.safeInsets.right + let indexNodeFrame = CGRect(origin: CGPoint(x: layout.size.width - insets.right - 20.0, y: insets.top), size: CGSize(width: 20.0, height: layout.size.height - insets.top - insets.bottom)) transition.updateFrame(node: indexNode, frame: indexNodeFrame) indexNode.update(size: indexNodeFrame.size, color: self.presentationData.theme.list.itemAccentColor, sections: indexSections, transition: transition) @@ -1122,6 +1129,13 @@ final class ContactListNode: ASDisplayNode { insets.left += layout.safeInsets.left insets.right += layout.safeInsets.right + if let inputHeight = layout.inputHeight { + insets.bottom -= inputHeight + } + + let indexNodeFrame = CGRect(origin: CGPoint(x: layout.size.width - insets.right - 20.0, y: insets.top), size: CGSize(width: 20.0, height: layout.size.height - insets.top - insets.bottom)) + indexNode.frame = indexNodeFrame + indexNode.update(size: CGSize(width: 20.0, height: layout.size.height - insets.top - insets.bottom), color: self.presentationData.theme.list.itemAccentColor, sections: transition.indexSections, transition: .immediate) } self.listNode.transaction(deleteIndices: transition.deletions, insertIndicesAndItems: transition.insertions, updateIndicesAndItems: transition.updates, options: options, updateOpaqueState: nil, completion: { [weak self] _ in