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) let legacyController = LegacyController(presentation: .custom, theme: strongSelf.presentationData.theme, initialLayout: strongSelf.validLayout)
legacyController.blocksBackgroundWhenInOverlay = true
legacyController.statusBar.statusBarStyle = .Ignore legacyController.statusBar.statusBarStyle = .Ignore
legacyController.controllerLoaded = { [weak legacyController] in legacyController.controllerLoaded = { [weak legacyController] in
legacyController?.view.disablesInteractiveTransitionGestureRecognizer = true legacyController?.view.disablesInteractiveTransitionGestureRecognizer = true

View File

@ -378,7 +378,12 @@ public class ChatListController: TelegramController, KeyShortcutResponder, UIVie
} }
} }
|> deliverOnMainQueue).start(next: { peer in |> 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 return
} }
let actionSheet = ActionSheetController(presentationTheme: strongSelf.presentationData.theme) 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 let state: Signal<(ItemListControllerState, (ItemListNodeState<Entry>, Entry.ItemGenerationArguments)), NoError>
private var leftNavigationButtonTitleAndStyle: (ItemListNavigationButtonContent, ItemListNavigationButtonStyle)? private var leftNavigationButtonTitleAndStyle: (ItemListNavigationButtonContent, ItemListNavigationButtonStyle)?
@ -475,13 +475,24 @@ class ItemListController<Entry: ItemListNodeEntry>: ViewController {
override func viewDidAppear(_ animated: Bool) { override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated) super.viewDidAppear(animated)
self.viewDidAppear(completion: {})
}
func viewDidAppear(completion: @escaping () -> Void) {
(self.displayNode as! ItemListControllerNode<Entry>).listNode.preloadPages = true (self.displayNode as! ItemListControllerNode<Entry>).listNode.preloadPages = true
if let presentationArguments = self.presentationArguments as? ViewControllerPresentationArguments, !self.didPlayPresentationAnimation { if let presentationArguments = self.presentationArguments as? ViewControllerPresentationArguments, !self.didPlayPresentationAnimation {
self.didPlayPresentationAnimation = true self.didPlayPresentationAnimation = true
if case .modalSheet = presentationArguments.presentationAnimation { 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 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! public private(set) var legacyController: UIViewController!
private let presentation: LegacyControllerPresentation private let presentation: LegacyControllerPresentation
@ -405,20 +405,30 @@ public class LegacyController: ViewController {
if self.ignoreAppearanceMethodInvocations() { if self.ignoreAppearanceMethodInvocations() {
return 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 { switch self.presentation {
case let .modal(animateIn): case let .modal(animateIn):
if animateIn { if animateIn {
self.controllerNode.animateModalIn(completion: { [weak self] in self.controllerNode.animateModalIn(completion: { [weak self] in
self?.presentationCompleted?() self?.presentationCompleted?()
completion()
}) })
} else { } else {
self.presentationCompleted?() self.presentationCompleted?()
completion()
} }
self.legacyController.viewDidAppear(animated && animateIn) self.legacyController.viewDidAppear(animated && animateIn)
case .custom, .navigation: case .custom, .navigation:
self.legacyController.viewDidAppear(animated) self.legacyController.viewDidAppear(animated)
self.presentationCompleted?() self.presentationCompleted?()
completion()
} }
} }