Fix return to app after web view

This commit is contained in:
Ilya Laktyushin 2022-07-08 13:52:21 +02:00
parent 39f8d13700
commit 03e9a1e313

View File

@ -11,6 +11,7 @@ import ChatListUI
import PeerAvatarGalleryUI import PeerAvatarGalleryUI
import SettingsUI import SettingsUI
import ChatPresentationInterfaceState import ChatPresentationInterfaceState
import AttachmentUI
public func navigateToChatControllerImpl(_ params: NavigateToChatControllerParams) { public func navigateToChatControllerImpl(_ params: NavigateToChatControllerParams) {
var found = false var found = false
@ -21,6 +22,7 @@ public func navigateToChatControllerImpl(_ params: NavigateToChatControllerParam
if let updateTextInputState = params.updateTextInputState { if let updateTextInputState = params.updateTextInputState {
controller.updateTextInputState(updateTextInputState) controller.updateTextInputState(updateTextInputState)
} }
var popAndComplete = true
if let subject = params.subject, case let .message(messageSubject, _, timecode) = subject { if let subject = params.subject, case let .message(messageSubject, _, timecode) = subject {
if case let .id(messageId) = messageSubject { if case let .id(messageId) = messageSubject {
let navigationController = params.navigationController let navigationController = params.navigationController
@ -33,22 +35,24 @@ public func navigateToChatControllerImpl(_ params: NavigateToChatControllerParam
(navigationController?.viewControllers.last as? ViewController)?.present(c, in: .window(.root), with: a) (navigationController?.viewControllers.last as? ViewController)?.present(c, in: .window(.root), with: a)
}) })
} }
popAndComplete = false
} else if params.scrollToEndIfExists && isFirst { } else if params.scrollToEndIfExists && isFirst {
controller.scrollToEndOfHistory() controller.scrollToEndOfHistory()
let _ = params.navigationController.popToViewController(controller, animated: params.animated)
params.completion(controller)
} else if let search = params.activateMessageSearch { } else if let search = params.activateMessageSearch {
controller.activateSearch(domain: search.0, query: search.1) controller.activateSearch(domain: search.0, query: search.1)
let _ = params.navigationController.popToViewController(controller, animated: params.animated)
params.completion(controller)
} else if let reportReason = params.reportReason { } else if let reportReason = params.reportReason {
controller.beginReportSelection(reason: reportReason) controller.beginReportSelection(reason: reportReason)
let _ = params.navigationController.popToViewController(controller, animated: params.animated) }
params.completion(controller)
} else { if popAndComplete {
let _ = params.navigationController.popToViewController(controller, animated: params.animated) if let _ = params.navigationController.viewControllers.last as? AttachmentController, let controller = params.navigationController.viewControllers[params.navigationController.viewControllers.count - 2] as? ChatControllerImpl, controller.chatLocation == params.chatLocation {
} else {
let _ = params.navigationController.popToViewController(controller, animated: params.animated)
}
params.completion(controller) params.completion(controller)
} }
controller.purposefulAction = params.purposefulAction controller.purposefulAction = params.purposefulAction
if params.activateInput { if params.activateInput {
controller.activateInput() controller.activateInput()