mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Fix ad to same chat navigation
This commit is contained in:
parent
c7803123e8
commit
32245285db
@ -4298,22 +4298,28 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
|
|||||||
|
|
||||||
switch adAttribute.target {
|
switch adAttribute.target {
|
||||||
case let .peer(id, messageId, startParam):
|
case let .peer(id, messageId, startParam):
|
||||||
let navigationData: ChatControllerInteractionNavigateToPeer
|
if case let .peer(currentPeerId) = self.chatLocation, currentPeerId == id {
|
||||||
if let bot = message.author as? TelegramUser, bot.botInfo != nil, let startParam = startParam {
|
if let messageId {
|
||||||
navigationData = .withBotStartPayload(ChatControllerInitialBotStart(payload: startParam, behavior: .interactive))
|
self.navigateToMessage(from: nil, to: .id(messageId, nil), rememberInStack: false)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
var subject: ChatControllerSubject?
|
let navigationData: ChatControllerInteractionNavigateToPeer
|
||||||
if let messageId = messageId {
|
if let bot = message.author as? TelegramUser, bot.botInfo != nil, let startParam = startParam {
|
||||||
subject = .message(id: .id(messageId), highlight: true, timecode: nil)
|
navigationData = .withBotStartPayload(ChatControllerInitialBotStart(payload: startParam, behavior: .interactive))
|
||||||
|
} else {
|
||||||
|
var subject: ChatControllerSubject?
|
||||||
|
if let messageId = messageId {
|
||||||
|
subject = .message(id: .id(messageId), highlight: true, timecode: nil)
|
||||||
|
}
|
||||||
|
navigationData = .chat(textInputState: nil, subject: subject, peekData: nil)
|
||||||
}
|
}
|
||||||
navigationData = .chat(textInputState: nil, subject: subject, peekData: nil)
|
let _ = (self.context.engine.data.get(TelegramEngine.EngineData.Item.Peer.Peer(id: id))
|
||||||
|
|> deliverOnMainQueue).start(next: { [weak self] peer in
|
||||||
|
if let self, let peer = peer {
|
||||||
|
self.openPeer(peer: peer, navigation: navigationData, fromMessage: nil)
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
let _ = (self.context.engine.data.get(TelegramEngine.EngineData.Item.Peer.Peer(id: id))
|
|
||||||
|> deliverOnMainQueue).start(next: { [weak self] peer in
|
|
||||||
if let self, let peer = peer {
|
|
||||||
self.openPeer(peer: peer, navigation: navigationData, fromMessage: nil)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
case let .join(_, joinHash):
|
case let .join(_, joinHash):
|
||||||
self.controllerInteraction?.openJoinLink(joinHash)
|
self.controllerInteraction?.openJoinLink(joinHash)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user