From 1488d8e99f9a3b35d1ce2657256563ad39249302 Mon Sep 17 00:00:00 2001 From: Peter <> Date: Wed, 20 Mar 2019 22:44:13 +0400 Subject: [PATCH] Fix chat list delete menu --- TelegramUI/ChatController.swift | 1 + TelegramUI/ChatListController.swift | 9 +++++++-- TelegramUI/ItemListController.swift | 15 +++++++++++++-- TelegramUI/LegacyController.swift | 14 ++++++++++++-- 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/TelegramUI/ChatController.swift b/TelegramUI/ChatController.swift index e09caf2ce1..a8d2d0b1f3 100644 --- a/TelegramUI/ChatController.swift +++ b/TelegramUI/ChatController.swift @@ -4035,6 +4035,7 @@ public final class ChatController: TelegramController, KeyShortcutResponder, Gal } let legacyController = LegacyController(presentation: .custom, theme: strongSelf.presentationData.theme, initialLayout: strongSelf.validLayout) + legacyController.blocksBackgroundWhenInOverlay = true legacyController.statusBar.statusBarStyle = .Ignore legacyController.controllerLoaded = { [weak legacyController] in legacyController?.view.disablesInteractiveTransitionGestureRecognizer = true diff --git a/TelegramUI/ChatListController.swift b/TelegramUI/ChatListController.swift index 9e6e68ea9a..a2866c99a2 100644 --- a/TelegramUI/ChatListController.swift +++ b/TelegramUI/ChatListController.swift @@ -378,7 +378,12 @@ public class ChatListController: TelegramController, KeyShortcutResponder, UIVie } } |> deliverOnMainQueue).start(next: { peer in - guard let strongSelf = self, let peer = peer, let chatPeer = peer.peers[peer.peerId], let mainPeer = peer.chatMainPeer else { + guard let strongSelf = self, let peer = peer else { + return + } + strongSelf.maybeAskForPeerChatRemoval(peer: peer, completion: { _ in }) + + /*guard let strongSelf = self, let peer = peer, let chatPeer = peer.peers[peer.peerId], let mainPeer = peer.chatMainPeer else { return } let actionSheet = ActionSheetController(presentationTheme: strongSelf.presentationData.theme) @@ -514,7 +519,7 @@ public class ChatListController: TelegramController, KeyShortcutResponder, UIVie }) ]) ]) - strongSelf.present(actionSheet, in: .window(.root)) + strongSelf.present(actionSheet, in: .window(.root))*/ }) } diff --git a/TelegramUI/ItemListController.swift b/TelegramUI/ItemListController.swift index 36fdaae8eb..e33b9d87cb 100644 --- a/TelegramUI/ItemListController.swift +++ b/TelegramUI/ItemListController.swift @@ -131,7 +131,7 @@ struct ItemListControllerState { } } -class ItemListController: ViewController { +class ItemListController: ViewController, PresentableController { private let state: Signal<(ItemListControllerState, (ItemListNodeState, Entry.ItemGenerationArguments)), NoError> private var leftNavigationButtonTitleAndStyle: (ItemListNavigationButtonContent, ItemListNavigationButtonStyle)? @@ -475,13 +475,24 @@ class ItemListController: ViewController { override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) + self.viewDidAppear(completion: {}) + } + + func viewDidAppear(completion: @escaping () -> Void) { (self.displayNode as! ItemListControllerNode).listNode.preloadPages = true if let presentationArguments = self.presentationArguments as? ViewControllerPresentationArguments, !self.didPlayPresentationAnimation { self.didPlayPresentationAnimation = true if case .modalSheet = presentationArguments.presentationAnimation { - (self.displayNode as! ItemListControllerNode).animateIn(completion: presentationArguments.completion) + (self.displayNode as! ItemListControllerNode).animateIn(completion: { + presentationArguments.completion?() + completion() + }) + } else { + completion() } + } else { + completion() } let firstTime = !self.didAppearOnce diff --git a/TelegramUI/LegacyController.swift b/TelegramUI/LegacyController.swift index 25066b1e10..0c0942a5d2 100644 --- a/TelegramUI/LegacyController.swift +++ b/TelegramUI/LegacyController.swift @@ -294,7 +294,7 @@ final class LegacyControllerContext: NSObject, LegacyComponentsContext { } } -public class LegacyController: ViewController { +public class LegacyController: ViewController, PresentableController { public private(set) var legacyController: UIViewController! private let presentation: LegacyControllerPresentation @@ -405,20 +405,30 @@ public class LegacyController: ViewController { if self.ignoreAppearanceMethodInvocations() { return } - + self.viewDidAppear(animated: animated, completion: {}) + } + + public func viewDidAppear(completion: @escaping () -> Void) { + self.viewDidAppear(animated: false, completion: completion) + } + + private func viewDidAppear(animated: Bool, completion: @escaping () -> Void) { switch self.presentation { case let .modal(animateIn): if animateIn { self.controllerNode.animateModalIn(completion: { [weak self] in self?.presentationCompleted?() + completion() }) } else { self.presentationCompleted?() + completion() } self.legacyController.viewDidAppear(animated && animateIn) case .custom, .navigation: self.legacyController.viewDidAppear(animated) self.presentationCompleted?() + completion() } }