From 6a4642ed9b77d685de7830d1b1356a08695cdf37 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Tue, 20 Mar 2018 13:11:49 -0400 Subject: [PATCH 1/3] Fix subsequent animation after swiping --- Signal/src/ViewControllers/MediaGalleryViewController.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Signal/src/ViewControllers/MediaGalleryViewController.swift b/Signal/src/ViewControllers/MediaGalleryViewController.swift index f2de5ced0..ee642c3fb 100644 --- a/Signal/src/ViewControllers/MediaGalleryViewController.swift +++ b/Signal/src/ViewControllers/MediaGalleryViewController.swift @@ -283,6 +283,9 @@ class MediaGalleryViewController: UINavigationController, MediaGalleryDataSource self.presentationView.image = initialDetailItem.fullSizedImage self.applyInitialMediaViewConstraints() + // Restore presentationView.alpha in case a previous dismiss left us in a bad state. + self.presentationView.alpha = 1 + // We want to animate the tapped media from it's position in the previous VC // to it's resting place in the center of this view controller. // From d94f355c2c9fb41bfd8e338410774fe47dbda5d2 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Wed, 21 Mar 2018 12:37:42 -0400 Subject: [PATCH 2/3] properly restore navigation bar after dismissing mid-video // FREEBIE --- .../ViewControllers/MediaGalleryViewController.swift | 12 +++++++----- .../ViewControllers/MediaPageViewController.swift | 5 +++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Signal/src/ViewControllers/MediaGalleryViewController.swift b/Signal/src/ViewControllers/MediaGalleryViewController.swift index ee642c3fb..a4272d164 100644 --- a/Signal/src/ViewControllers/MediaGalleryViewController.swift +++ b/Signal/src/ViewControllers/MediaGalleryViewController.swift @@ -174,7 +174,7 @@ protocol MediaGalleryDataSource: class { func galleryItem(after currentItem: MediaGalleryItem) -> MediaGalleryItem? func showAllMedia(focusedItem: MediaGalleryItem) - func dismissSelf(animated isAnimated: Bool, completion: (() -> Void)?) + func dismissDetailView(_ pageViewController: MediaPageViewController, animated isAnimated: Bool, completion: (() -> Void)?) } class MediaGalleryViewController: UINavigationController, MediaGalleryDataSource, MediaTileViewControllerDelegate { @@ -284,6 +284,7 @@ class MediaGalleryViewController: UINavigationController, MediaGalleryDataSource self.applyInitialMediaViewConstraints() // Restore presentationView.alpha in case a previous dismiss left us in a bad state. + pageViewController.navigationController?.setNavigationBarHidden(false, animated: false) self.presentationView.alpha = 1 // We want to animate the tapped media from it's position in the previous VC @@ -408,8 +409,9 @@ class MediaGalleryViewController: UINavigationController, MediaGalleryDataSource // guard let pageViewController = self.pageViewController else { - owsFail("\(logTag) in \(#function) pageeViewController was unexpectedly nil") - self.dismissSelf(animated: true) + owsFail("\(logTag) in \(#function) pageViewController was unexpectedly nil") + self.dismiss(animated: true) + return } @@ -421,11 +423,11 @@ class MediaGalleryViewController: UINavigationController, MediaGalleryDataSource } } - public func dismissSelf(animated isAnimated: Bool, completion: (() -> Void)? = nil) { + public func dismissDetailView(_ pageViewController: MediaPageViewController, animated isAnimated: Bool, completion: (() -> Void)?) { self.view.isUserInteractionEnabled = false UIApplication.shared.isStatusBarHidden = false - guard let detailView = pageViewController?.view else { + guard let detailView = pageViewController.view else { owsFail("\(logTag) in \(#function) detailView was unexpectedly nil") self.presentingViewController?.dismiss(animated: false, completion: completion) return diff --git a/Signal/src/ViewControllers/MediaPageViewController.swift b/Signal/src/ViewControllers/MediaPageViewController.swift index eae541762..34544d577 100644 --- a/Signal/src/ViewControllers/MediaPageViewController.swift +++ b/Signal/src/ViewControllers/MediaPageViewController.swift @@ -203,6 +203,7 @@ class MediaPageViewController: UIPageViewController, UIPageViewControllerDataSou currentViewController.playVideo() } } + @objc public func didPressAllMediaButton(sender: Any) { Logger.debug("\(logTag) in \(#function)") @@ -255,7 +256,7 @@ class MediaPageViewController: UIPageViewController, UIPageViewControllerDataSou private func updateFooterBarButtonItems(isPlayingVideo: Bool) { // TODO do we still need this? seems like a vestige // from when media detail view was used for attachment approval - if (self.footerBar == nil) { + if self.footerBar == nil { owsFail("\(logTag) No footer bar visible.") return } @@ -453,7 +454,7 @@ class MediaPageViewController: UIPageViewController, UIPageViewControllerDataSou return } - mediaGalleryDataSource.dismissSelf(animated: isAnimated, completion: completion) + mediaGalleryDataSource.dismissDetailView(self, animated: isAnimated, completion: completion) } public func mediaDetailViewController(_ mediaDetailViewController: MediaDetailViewController, isPlayingVideo: Bool) { From 1e59fbafd35110524a1781856a65d140e08364f4 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Thu, 22 Mar 2018 10:50:49 -0400 Subject: [PATCH 3/3] CR: method args shouldn't shadow properties // FREEBIE --- Signal/src/ViewControllers/MediaGalleryViewController.swift | 6 +++--- Signal/src/ViewControllers/MediaPageViewController.swift | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Signal/src/ViewControllers/MediaGalleryViewController.swift b/Signal/src/ViewControllers/MediaGalleryViewController.swift index a4272d164..65c7c2140 100644 --- a/Signal/src/ViewControllers/MediaGalleryViewController.swift +++ b/Signal/src/ViewControllers/MediaGalleryViewController.swift @@ -174,7 +174,7 @@ protocol MediaGalleryDataSource: class { func galleryItem(after currentItem: MediaGalleryItem) -> MediaGalleryItem? func showAllMedia(focusedItem: MediaGalleryItem) - func dismissDetailView(_ pageViewController: MediaPageViewController, animated isAnimated: Bool, completion: (() -> Void)?) + func dismissMediaDetailViewController(_ mediaDetailViewController: MediaPageViewController, animated isAnimated: Bool, completion: (() -> Void)?) } class MediaGalleryViewController: UINavigationController, MediaGalleryDataSource, MediaTileViewControllerDelegate { @@ -423,11 +423,11 @@ class MediaGalleryViewController: UINavigationController, MediaGalleryDataSource } } - public func dismissDetailView(_ pageViewController: MediaPageViewController, animated isAnimated: Bool, completion: (() -> Void)?) { + public func dismissMediaDetailViewController(_ mediaDetailViewController: MediaPageViewController, animated isAnimated: Bool, completion: (() -> Void)?) { self.view.isUserInteractionEnabled = false UIApplication.shared.isStatusBarHidden = false - guard let detailView = pageViewController.view else { + guard let detailView = mediaDetailViewController.view else { owsFail("\(logTag) in \(#function) detailView was unexpectedly nil") self.presentingViewController?.dismiss(animated: false, completion: completion) return diff --git a/Signal/src/ViewControllers/MediaPageViewController.swift b/Signal/src/ViewControllers/MediaPageViewController.swift index 34544d577..f555e33a0 100644 --- a/Signal/src/ViewControllers/MediaPageViewController.swift +++ b/Signal/src/ViewControllers/MediaPageViewController.swift @@ -454,7 +454,7 @@ class MediaPageViewController: UIPageViewController, UIPageViewControllerDataSou return } - mediaGalleryDataSource.dismissDetailView(self, animated: isAnimated, completion: completion) + mediaGalleryDataSource.dismissMediaDetailViewController(self, animated: isAnimated, completion: completion) } public func mediaDetailViewController(_ mediaDetailViewController: MediaDetailViewController, isPlayingVideo: Bool) {