mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-10-09 03:20:48 +00:00
Various improvements
This commit is contained in:
parent
85fb4c244a
commit
6109477015
@ -32,7 +32,7 @@ public final class OpenChatMessageParams {
|
||||
public let navigationController: NavigationController?
|
||||
public let modal: Bool
|
||||
public let dismissInput: () -> Void
|
||||
public let present: (ViewController, Any?) -> Void
|
||||
public let present: (ViewController, Any?, PresentationContextType) -> Void
|
||||
public let transitionNode: (MessageId, Media, Bool) -> (ASDisplayNode, CGRect, () -> (UIView?, UIView?))?
|
||||
public let addToTransitionSurface: (UIView) -> Void
|
||||
public let openUrl: (String) -> Void
|
||||
@ -63,7 +63,7 @@ public final class OpenChatMessageParams {
|
||||
navigationController: NavigationController?,
|
||||
modal: Bool = false,
|
||||
dismissInput: @escaping () -> Void,
|
||||
present: @escaping (ViewController, Any?) -> Void,
|
||||
present: @escaping (ViewController, Any?, PresentationContextType) -> Void,
|
||||
transitionNode: @escaping (MessageId, Media, Bool) -> (ASDisplayNode, CGRect, () -> (UIView?, UIView?))?,
|
||||
addToTransitionSurface: @escaping (UIView) -> Void,
|
||||
openUrl: @escaping (String) -> Void,
|
||||
|
@ -2705,7 +2705,7 @@ final class ChatListSearchListPaneNode: ASDisplayNode, ChatListSearchPaneNode {
|
||||
openMediaMessageImpl = { message, mode in
|
||||
let _ = context.sharedContext.openChatMessage(OpenChatMessageParams(context: context, chatLocation: nil, chatFilterTag: nil, chatLocationContextHolder: nil, message: message._asMessage(), standalone: false, reverseMessageGalleryOrder: true, mode: mode, navigationController: navigationController, dismissInput: {
|
||||
interaction.dismissInput()
|
||||
}, present: { c, a in
|
||||
}, present: { c, a, _ in
|
||||
interaction.present(c, a)
|
||||
}, transitionNode: { messageId, media, _ in
|
||||
return transitionNodeImpl?(messageId, EngineMedia(media))
|
||||
@ -2861,7 +2861,7 @@ final class ChatListSearchListPaneNode: ASDisplayNode, ChatListSearchPaneNode {
|
||||
|
||||
return context.sharedContext.openChatMessage(OpenChatMessageParams(context: context, chatLocation: .peer(id: message.id.peerId), chatFilterTag: nil, chatLocationContextHolder: nil, message: message, standalone: false, reverseMessageGalleryOrder: true, mode: mode, navigationController: navigationController, dismissInput: {
|
||||
interaction.dismissInput()
|
||||
}, present: { c, a in
|
||||
}, present: { c, a, _ in
|
||||
interaction.present(c, a)
|
||||
}, transitionNode: { messageId, media, _ in
|
||||
var transitionNode: (ASDisplayNode, CGRect, () -> (UIView?, UIView?))?
|
||||
|
@ -31,7 +31,7 @@ private func presentLiveLocationController(context: AccountContext, peerId: Peer
|
||||
if let message = message, let strongController = controller {
|
||||
let _ = context.sharedContext.openChatMessage(OpenChatMessageParams(context: context, chatLocation: nil, chatFilterTag: nil, chatLocationContextHolder: nil, message: message._asMessage(), standalone: false, reverseMessageGalleryOrder: false, navigationController: strongController.navigationController as? NavigationController, modal: true, dismissInput: {
|
||||
controller?.view.endEditing(true)
|
||||
}, present: { c, a in
|
||||
}, present: { c, a, _ in
|
||||
controller?.present(c, in: .window(.root), with: a, blockInteraction: true)
|
||||
}, transitionNode: { _, _, _ in
|
||||
return nil
|
||||
|
@ -239,7 +239,7 @@ final class ChatRecentActionsControllerNode: ViewControllerTracingNode {
|
||||
let gallerySource = GalleryControllerItemSource.standaloneMessage(message, nil)
|
||||
return context.sharedContext.openChatMessage(OpenChatMessageParams(context: context, chatLocation: nil, chatFilterTag: nil, chatLocationContextHolder: nil, message: message, standalone: true, reverseMessageGalleryOrder: false, navigationController: navigationController, dismissInput: {
|
||||
//self?.chatDisplayNode.dismissInput()
|
||||
}, present: { c, a in
|
||||
}, present: { c, a, _ in
|
||||
self?.presentController(c, .window(.root), a)
|
||||
}, transitionNode: { messageId, media, adjustRect in
|
||||
var selectedNode: (ASDisplayNode, CGRect, () -> (UIView?, UIView?))?
|
||||
|
@ -5073,7 +5073,7 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, PeerInfoScreenNodePro
|
||||
|
||||
return self.context.sharedContext.openChatMessage(OpenChatMessageParams(context: self.context, chatLocation: self.chatLocation, chatFilterTag: nil, chatLocationContextHolder: self.chatLocationContextHolder, message: galleryMessage, standalone: false, reverseMessageGalleryOrder: true, navigationController: navigationController, dismissInput: { [weak self] in
|
||||
self?.view.endEditing(true)
|
||||
}, present: { [weak self] c, a in
|
||||
}, present: { [weak self] c, a, _ in
|
||||
self?.controller?.present(c, in: .window(.root), with: a, blockInteraction: true)
|
||||
}, transitionNode: { [weak self] messageId, media, _ in
|
||||
guard let strongSelf = self else {
|
||||
|
@ -2733,7 +2733,8 @@ final class StorageUsageScreenComponent: Component {
|
||||
navigationController: navigationController,
|
||||
dismissInput: { [weak self] in
|
||||
self?.endEditing(true)
|
||||
}, present: { [weak self] c, a in
|
||||
},
|
||||
present: { [weak self] c, a, _ in
|
||||
guard let self else {
|
||||
return
|
||||
}
|
||||
|
@ -177,6 +177,6 @@ extension ChatControllerImpl {
|
||||
contextController?.present(c, in: .current)
|
||||
}
|
||||
|
||||
let _ = self.context.sharedContext.openChatMessage(OpenChatMessageParams(context: self.context, chatLocation: nil, chatFilterTag: nil, chatLocationContextHolder: nil, message: message, standalone: false, reverseMessageGalleryOrder: false, navigationController: nil, dismissInput: { }, present: { _, _ in }, transitionNode: { _, _, _ in return nil }, addToTransitionSurface: { _ in }, openUrl: { _ in }, openPeer: { _, _ in }, callPeer: { _, _ in }, enqueueMessage: { _ in }, sendSticker: nil, sendEmoji: nil, setupTemporaryHiddenMedia: { _, _, _ in }, chatAvatarHiddenMedia: { _, _ in }, playlistLocation: .singleMessage(message.id)))
|
||||
let _ = self.context.sharedContext.openChatMessage(OpenChatMessageParams(context: self.context, chatLocation: nil, chatFilterTag: nil, chatLocationContextHolder: nil, message: message, standalone: false, reverseMessageGalleryOrder: false, navigationController: nil, dismissInput: { }, present: { _, _, _ in }, transitionNode: { _, _, _ in return nil }, addToTransitionSurface: { _ in }, openUrl: { _ in }, openPeer: { _, _ in }, callPeer: { _, _ in }, enqueueMessage: { _ in }, sendSticker: nil, sendEmoji: nil, setupTemporaryHiddenMedia: { _, _, _ in }, chatAvatarHiddenMedia: { _, _ in }, playlistLocation: .singleMessage(message.id)))
|
||||
}
|
||||
}
|
||||
|
@ -1275,8 +1275,8 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
|
||||
|
||||
return context.sharedContext.openChatMessage(OpenChatMessageParams(context: context, updatedPresentationData: strongSelf.updatedPresentationData, chatLocation: openChatLocation, chatFilterTag: chatFilterTag, chatLocationContextHolder: strongSelf.chatLocationContextHolder, message: message, mediaIndex: params.mediaIndex, standalone: standalone, reverseMessageGalleryOrder: false, mode: mode, navigationController: strongSelf.effectiveNavigationController, dismissInput: {
|
||||
self?.chatDisplayNode.dismissInput()
|
||||
}, present: { c, a in
|
||||
if c is GalleryController {
|
||||
}, present: { c, a, i in
|
||||
if case .current = i {
|
||||
c.presentationArguments = a
|
||||
self?.galleryPresentationContext.present(c, on: PresentationSurfaceLevel(rawValue: 0), blockInteraction: true, completion: {})
|
||||
} else {
|
||||
|
@ -164,7 +164,7 @@ func openChatMessageImpl(_ params: OpenChatMessageParams) -> Bool {
|
||||
return GalleryTransitionArguments(transitionNode: selectedTransitionNode, addToTransitionSurface: params.addToTransitionSurface)
|
||||
}
|
||||
return nil
|
||||
}))
|
||||
}), .window(.root))
|
||||
return true
|
||||
case .map:
|
||||
params.dismissInput()
|
||||
@ -221,14 +221,14 @@ func openChatMessageImpl(_ params: OpenChatMessageParams) -> Bool {
|
||||
}
|
||||
}, getSourceRect: params.getSourceRect)
|
||||
params.dismissInput()
|
||||
params.present(controller, nil)
|
||||
params.present(controller, nil, .window(.root))
|
||||
return true
|
||||
case let .document(file, immediateShare):
|
||||
params.dismissInput()
|
||||
let presentationData = params.context.sharedContext.currentPresentationData.with { $0 }
|
||||
if immediateShare {
|
||||
let controller = ShareController(context: params.context, subject: .media(.standalone(media: file)), immediateExternalShare: true)
|
||||
params.present(controller, nil)
|
||||
params.present(controller, nil, .window(.root))
|
||||
} else if let rootController = params.navigationController?.view.window?.rootViewController {
|
||||
let proceed = {
|
||||
let canShare = !params.message.isCopyProtected()
|
||||
@ -252,7 +252,7 @@ func openChatMessageImpl(_ params: OpenChatMessageParams) -> Bool {
|
||||
}
|
||||
if file.mimeType.contains("image/svg") {
|
||||
let presentationData = params.context.sharedContext.currentPresentationData.with { $0 }
|
||||
params.present(textAlertController(context: params.context, title: nil, text: presentationData.strings.OpenFile_PotentiallyDangerousContentAlert, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .defaultAction, title: presentationData.strings.OpenFile_Proceed, action: { proceed() })] ), nil)
|
||||
params.present(textAlertController(context: params.context, title: nil, text: presentationData.strings.OpenFile_PotentiallyDangerousContentAlert, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .defaultAction, title: presentationData.strings.OpenFile_Proceed, action: { proceed() })] ), nil, .window(.root))
|
||||
} else {
|
||||
proceed()
|
||||
}
|
||||
@ -314,7 +314,7 @@ func openChatMessageImpl(_ params: OpenChatMessageParams) -> Bool {
|
||||
return GalleryTransitionArguments(transitionNode: selectedTransitionNode, addToTransitionSurface: params.addToTransitionSurface)
|
||||
}
|
||||
return nil
|
||||
}))
|
||||
}), params.message.adAttribute != nil ? .current : .window(.root))
|
||||
})
|
||||
return true
|
||||
case let .secretGallery(gallery):
|
||||
@ -325,7 +325,7 @@ func openChatMessageImpl(_ params: OpenChatMessageParams) -> Bool {
|
||||
return GalleryTransitionArguments(transitionNode: selectedTransitionNode, addToTransitionSurface: params.addToTransitionSurface)
|
||||
}
|
||||
return nil
|
||||
}))
|
||||
}), .window(.root))
|
||||
return true
|
||||
case let .other(otherMedia):
|
||||
params.dismissInput()
|
||||
@ -368,7 +368,7 @@ func openChatMessageImpl(_ params: OpenChatMessageParams) -> Bool {
|
||||
return GalleryTransitionArguments(transitionNode: selectedTransitionNode, addToTransitionSurface: params.addToTransitionSurface)
|
||||
}
|
||||
return nil
|
||||
}))
|
||||
}), .window(.root))
|
||||
case let .theme(media):
|
||||
params.dismissInput()
|
||||
let path = params.context.account.postbox.mediaBox.completedResourcePath(media.resource)
|
||||
|
@ -311,7 +311,7 @@ final class OverlayAudioPlayerControllerNode: ViewControllerTracingNode, ASGestu
|
||||
if let location = strongSelf.playlistLocation as? PeerMessagesPlaylistLocation, case let .custom(messages, _, loadMore) = location {
|
||||
playlistLocation = .custom(messages: messages, at: id, loadMore: loadMore)
|
||||
}
|
||||
return strongSelf.context.sharedContext.openChatMessage(OpenChatMessageParams(context: strongSelf.context, chatLocation: nil, chatFilterTag: nil, chatLocationContextHolder: nil, message: message, standalone: false, reverseMessageGalleryOrder: false, navigationController: nil, dismissInput: { }, present: { _, _ in }, transitionNode: { _, _, _ in return nil }, addToTransitionSurface: { _ in }, openUrl: { _ in }, openPeer: { _, _ in }, callPeer: { _, _ in }, enqueueMessage: { _ in }, sendSticker: nil, sendEmoji: nil, setupTemporaryHiddenMedia: { _, _, _ in }, chatAvatarHiddenMedia: { _, _ in }, playlistLocation: playlistLocation))
|
||||
return strongSelf.context.sharedContext.openChatMessage(OpenChatMessageParams(context: strongSelf.context, chatLocation: nil, chatFilterTag: nil, chatLocationContextHolder: nil, message: message, standalone: false, reverseMessageGalleryOrder: false, navigationController: nil, dismissInput: { }, present: { _, _, _ in }, transitionNode: { _, _, _ in return nil }, addToTransitionSurface: { _ in }, openUrl: { _ in }, openPeer: { _, _ in }, callPeer: { _, _ in }, enqueueMessage: { _ in }, sendSticker: nil, sendEmoji: nil, setupTemporaryHiddenMedia: { _, _, _ in }, chatAvatarHiddenMedia: { _, _ in }, playlistLocation: playlistLocation))
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user