Swiftgram/TelegramUI/NavigateToChatController.swift
Peter Iakovlev 47cd4b0d76 no message
2018-01-31 20:40:55 +04:00

38 lines
1.6 KiB
Swift

import Foundation
import Display
import TelegramCore
import Postbox
public func navigateToChatController(navigationController: NavigationController, account: Account, chatLocation: ChatLocation, messageId: MessageId? = nil, animated: Bool = true) {
var found = false
var isFirst = true
for controller in navigationController.viewControllers.reversed() {
if let controller = controller as? ChatController, controller.chatLocation == chatLocation {
if let messageId = messageId {
controller.navigateToMessage(messageLocation: .id(messageId), animated: isFirst, completion: { [weak navigationController, weak controller] in
if let navigationController = navigationController, let controller = controller {
let _ = navigationController.popToViewController(controller, animated: animated)
}
})
} else {
let _ = navigationController.popToViewController(controller, animated: animated)
}
found = true
break
}
isFirst = false
}
if !found {
navigationController.pushViewController(ChatController(account: account, chatLocation: chatLocation, messageId: messageId))
}
}
public func isOverlayControllerForChatNotificationOverlayPresentation(_ controller: ViewController) -> Bool {
if controller is GalleryController || controller is AvatarGalleryController || controller is ThemeGalleryController || controller is InstantPageGalleryController {
return true
} else {
return false
}
}