mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 22:25:57 +00:00
Various improvements
This commit is contained in:
@@ -235,21 +235,22 @@ public func navigateToForumThreadImpl(context: AccountContext, peerId: EnginePee
|
||||
return
|
||||
}
|
||||
|
||||
let chatLocation: ChatLocation = .replyThread(message: result.message)
|
||||
|
||||
let subject: ChatControllerSubject?
|
||||
if let messageId = messageId {
|
||||
subject = .message(id: .id(messageId), highlight: true, timecode: nil)
|
||||
} else {
|
||||
subject = nil
|
||||
}
|
||||
|
||||
var actualActivateInput: ChatControllerActivateInput? = result.isEmpty ? .text : nil
|
||||
if let activateInput = activateInput {
|
||||
actualActivateInput = activateInput
|
||||
}
|
||||
|
||||
context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, context: context, chatLocation: chatLocation, chatLocationContextHolder: result.contextHolder, subject: subject, activateInput: actualActivateInput, keepStack: .never))
|
||||
context.sharedContext.navigateToChatController(
|
||||
NavigateToChatControllerParams(
|
||||
navigationController: navigationController,
|
||||
context: context,
|
||||
chatLocation: .replyThread(message: result.message),
|
||||
chatLocationContextHolder: result.contextHolder,
|
||||
subject: messageId.flatMap { .message(id: .id($0), highlight: true, timecode: nil) },
|
||||
activateInput: actualActivateInput,
|
||||
keepStack: .never
|
||||
)
|
||||
)
|
||||
}
|
||||
|> ignoreValues
|
||||
|> `catch` { _ -> Signal<Never, NoError> in
|
||||
@@ -257,6 +258,21 @@ public func navigateToForumThreadImpl(context: AccountContext, peerId: EnginePee
|
||||
}
|
||||
}
|
||||
|
||||
public func chatControllerForForumThreadImpl(context: AccountContext, peerId: EnginePeer.Id, threadId: Int64) -> Signal<ChatController, NoError> {
|
||||
return fetchAndPreloadReplyThreadInfo(context: context, subject: .groupMessage(MessageId(peerId: peerId, namespace: Namespaces.Message.Cloud, id: Int32(clamping: threadId))), atMessageId: nil, preload: false)
|
||||
|> deliverOnMainQueue
|
||||
|> `catch` { _ -> Signal<ReplyThreadInfo, NoError> in
|
||||
return .complete()
|
||||
}
|
||||
|> map { result in
|
||||
return ChatControllerImpl(
|
||||
context: context,
|
||||
chatLocation: .replyThread(message: result.message),
|
||||
chatLocationContextHolder: result.contextHolder
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
public func navigateToForumChannelImpl(context: AccountContext, peerId: EnginePeer.Id, navigationController: NavigationController) {
|
||||
let controller = ChatListControllerImpl(context: context, location: .forum(peerId: peerId), controlsHistoryPreload: false, enableDebugActions: false)
|
||||
controller.navigationPresentation = .master
|
||||
|
||||
Reference in New Issue
Block a user