feat: show media detail
This commit is contained in:
parent
402bee2d38
commit
1fa505d1a2
|
@ -34,6 +34,7 @@ public class AllMediaViewController: UIViewController, UIPageViewControllerDataS
|
|||
self.mediaTitleViewController = mediaTitleViewController
|
||||
self.documentTitleViewController = documentTitleViewController
|
||||
super.init(nibName: nil, bundle: nil)
|
||||
self.mediaTitleViewController.delegate = self
|
||||
self.documentTitleViewController.delegate = self
|
||||
}
|
||||
|
||||
|
@ -131,4 +132,23 @@ extension AllMediaViewController: DocumentTileViewControllerDelegate {
|
|||
}
|
||||
}
|
||||
|
||||
// MARK: - DocumentTitleViewControllerDelegate
|
||||
|
||||
extension AllMediaViewController: MediaTileViewControllerDelegate {
|
||||
public func presentdetailViewController(_ detailViewController: UIViewController, animated: Bool) {
|
||||
self.present(detailViewController, animated: animated)
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - MediaPresentationContextProvider
|
||||
|
||||
extension AllMediaViewController: MediaPresentationContextProvider {
|
||||
func mediaPresentationContext(mediaItem: Media, in coordinateSpace: UICoordinateSpace) -> MediaPresentationContext? {
|
||||
return self.mediaTitleViewController.mediaPresentationContext(mediaItem: mediaItem, in: coordinateSpace)
|
||||
}
|
||||
|
||||
func snapshotOverlayView(in coordinateSpace: UICoordinateSpace) -> (UIView, CGRect)? {
|
||||
return self.mediaTitleViewController.snapshotOverlayView(in: coordinateSpace)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,12 +17,14 @@ public class MediaTileViewController: UIViewController, UICollectionViewDataSour
|
|||
static let footerBarHeight: CGFloat = 40
|
||||
static let loadMoreHeaderHeight: CGFloat = 100
|
||||
|
||||
private let viewModel: MediaGalleryViewModel
|
||||
public let viewModel: MediaGalleryViewModel
|
||||
private var hasLoadedInitialData: Bool = false
|
||||
private var didFinishInitialLayout: Bool = false
|
||||
private var isAutoLoadingNextPage: Bool = false
|
||||
private var currentTargetOffset: CGPoint?
|
||||
|
||||
public var delegate: MediaTileViewControllerDelegate?
|
||||
|
||||
var isInBatchSelectMode = false {
|
||||
didSet {
|
||||
collectionView.allowsMultipleSelection = isInBatchSelectMode
|
||||
|
@ -492,12 +494,6 @@ public class MediaTileViewController: UIViewController, UICollectionViewDataSour
|
|||
// [ConversationSettingsView]
|
||||
// [ConversationView]
|
||||
//
|
||||
guard
|
||||
let viewControllers: [UIViewController] = self.navigationController?.viewControllers,
|
||||
viewControllers.count > 1,
|
||||
viewControllers[viewControllers.count - 2] is OWSConversationSettingsViewController
|
||||
else { return }
|
||||
|
||||
let detailViewController: UIViewController? = MediaGalleryViewModel.createDetailViewController(
|
||||
for: self.viewModel.threadId,
|
||||
threadVariant: self.viewModel.threadVariant,
|
||||
|
@ -508,7 +504,7 @@ public class MediaTileViewController: UIViewController, UICollectionViewDataSour
|
|||
|
||||
guard let detailViewController: UIViewController = detailViewController else { return }
|
||||
|
||||
self.present(detailViewController, animated: true)
|
||||
delegate?.presentdetailViewController(detailViewController, animated: true)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -923,3 +919,9 @@ extension MediaTileViewController: MediaPresentationContextProvider {
|
|||
return self.navigationController?.navigationBar.generateSnapshot(in: coordinateSpace)
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - MediaTileViewControllerDelegate
|
||||
|
||||
public protocol MediaTileViewControllerDelegate: AnyObject {
|
||||
func presentdetailViewController(_ detailViewController: UIViewController, animated: Bool)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue