From aee9d46e581f1551a64ae2a1eccf28230b65f552 Mon Sep 17 00:00:00 2001 From: ryanzhao Date: Thu, 9 Feb 2023 14:14:35 +1100 Subject: [PATCH] feat: show media full screen --- .../ConversationVC+Interaction.swift | 5 +++- .../Media Viewing & Editing/MediaInfoVC.swift | 27 +++++++++++++++++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/Session/Conversations/ConversationVC+Interaction.swift b/Session/Conversations/ConversationVC+Interaction.swift index 222bc2eea..bd4e43249 100644 --- a/Session/Conversations/ConversationVC+Interaction.swift +++ b/Session/Conversations/ConversationVC+Interaction.swift @@ -1561,7 +1561,10 @@ extension ConversationVC: func info(_ cellViewModel: MessageViewModel) { let mediaInfoVC = MediaInfoVC( attachments: (cellViewModel.attachments ?? []), - isOutgoing: (cellViewModel.variant == .standardOutgoing) + isOutgoing: (cellViewModel.variant == .standardOutgoing), + threadId: self.viewModel.threadData.threadId, + threadVariant: self.viewModel.threadData.threadVariant, + interactionId: cellViewModel.id ) navigationController?.pushViewController(mediaInfoVC, animated: true) } diff --git a/Session/Media Viewing & Editing/MediaInfoVC.swift b/Session/Media Viewing & Editing/MediaInfoVC.swift index 804854ae1..3486e3dbc 100644 --- a/Session/Media Viewing & Editing/MediaInfoVC.swift +++ b/Session/Media Viewing & Editing/MediaInfoVC.swift @@ -10,6 +10,10 @@ final class MediaInfoVC: BaseVC, SessionCarouselViewDelegate { private let attachments: [Attachment] private let isOutgoing: Bool + private let threadId: String + private let threadVariant: SessionThread.Variant + private let interactionId: Int64 + private var currentPage: Int = 0 // MARK: - UI @@ -66,7 +70,16 @@ final class MediaInfoVC: BaseVC, SessionCarouselViewDelegate { // MARK: - Initialization - init(attachments: [Attachment], isOutgoing: Bool) { + init( + attachments: [Attachment], + isOutgoing: Bool, + threadId: String, + threadVariant: SessionThread.Variant, + interactionId: Int64 + ) { + self.threadId = threadId + self.threadVariant = threadVariant + self.interactionId = interactionId self.isOutgoing = isOutgoing self.attachments = attachments super.init(nibName: nil, bundle: nil) @@ -114,7 +127,17 @@ final class MediaInfoVC: BaseVC, SessionCarouselViewDelegate { @objc func showMediaFullScreen() { let attachment = self.attachments[self.currentPage] - + let viewController: UIViewController? = MediaGalleryViewModel.createDetailViewController( + for: self.threadId, + threadVariant: self.threadVariant, + interactionId: self.interactionId, + selectedAttachmentId: attachment.id, + options: [ .sliderEnabled ] + ) + if let viewController: UIViewController = viewController { + viewController.transitioningDelegate = nil + self.present(viewController, animated: true) + } } // MARK: - SessionCarouselViewDelegate