Fix chat list delete menu

This commit is contained in:
Peter 2019-03-20 22:44:13 +04:00
parent 4d2d3648f4
commit 1488d8e99f
4 changed files with 33 additions and 6 deletions

View File

@ -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

View File

@ -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))*/
})
}

View File

@ -131,7 +131,7 @@ struct ItemListControllerState {
}
}
class ItemListController<Entry: ItemListNodeEntry>: ViewController {
class ItemListController<Entry: ItemListNodeEntry>: ViewController, PresentableController {
private let state: Signal<(ItemListControllerState, (ItemListNodeState<Entry>, Entry.ItemGenerationArguments)), NoError>
private var leftNavigationButtonTitleAndStyle: (ItemListNavigationButtonContent, ItemListNavigationButtonStyle)?
@ -475,13 +475,24 @@ class ItemListController<Entry: ItemListNodeEntry>: ViewController {
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.viewDidAppear(completion: {})
}
func viewDidAppear(completion: @escaping () -> Void) {
(self.displayNode as! ItemListControllerNode<Entry>).listNode.preloadPages = true
if let presentationArguments = self.presentationArguments as? ViewControllerPresentationArguments, !self.didPlayPresentationAnimation {
self.didPlayPresentationAnimation = true
if case .modalSheet = presentationArguments.presentationAnimation {
(self.displayNode as! ItemListControllerNode<Entry>).animateIn(completion: presentationArguments.completion)
(self.displayNode as! ItemListControllerNode<Entry>).animateIn(completion: {
presentationArguments.completion?()
completion()
})
} else {
completion()
}
} else {
completion()
}
let firstTime = !self.didAppearOnce

View File

@ -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()
}
}