From be714399c7dd4340b2ba298027726a379cc77ec8 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Wed, 16 Jan 2019 16:49:25 -0500 Subject: [PATCH] Add feature flag for landscape orientation. --- .../MediaPageViewController.swift | 16 +++++++++++----- .../ViewControllers/OWSViewController.h | 2 +- .../ViewControllers/OWSViewController.m | 12 +++++++----- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/Signal/src/ViewControllers/MediaPageViewController.swift b/Signal/src/ViewControllers/MediaPageViewController.swift index dab872651..76d8960ac 100644 --- a/Signal/src/ViewControllers/MediaPageViewController.swift +++ b/Signal/src/ViewControllers/MediaPageViewController.swift @@ -145,7 +145,7 @@ class MediaPageViewController: UIPageViewController, UIPageViewControllerDataSou // e.g. when getting to media details via message details screen, there's only // one "Page" so the bounce doesn't make sense. pagerScrollView.isScrollEnabled = sliderEnabled - pagerScrollViewContentOffsetObservation = pagerScrollView.observe(\.contentOffset, options: [.new]) { [weak self] object, change in + pagerScrollViewContentOffsetObservation = pagerScrollView.observe(\.contentOffset, options: [.new]) { [weak self] _, change in guard let strongSelf = self else { return } strongSelf.pagerScrollView(strongSelf.pagerScrollView, contentOffsetDidChange: change) } @@ -607,10 +607,16 @@ class MediaPageViewController: UIPageViewController, UIPageViewControllerDataSou return } - mediaGalleryDataSource.dismissMediaDetailViewController(self, - animated: isAnimated, - completion: completion) - + if IsLandscapeOrientationEnabled() { + mediaGalleryDataSource.dismissMediaDetailViewController(self, + animated: isAnimated, + completion: completion) + } else { + mediaGalleryDataSource.dismissMediaDetailViewController(self, animated: isAnimated) { + UIDevice.current.ows_setOrientation(.portrait) + completion?() + } + } } // MARK: MediaDetailViewControllerDelegate diff --git a/SignalMessaging/ViewControllers/OWSViewController.h b/SignalMessaging/ViewControllers/OWSViewController.h index acb69ade3..6e0ed2c3c 100644 --- a/SignalMessaging/ViewControllers/OWSViewController.h +++ b/SignalMessaging/ViewControllers/OWSViewController.h @@ -6,7 +6,7 @@ NS_ASSUME_NONNULL_BEGIN -#define LANDSCAPE_ORIENTATION_ENABLED +BOOL IsLandscapeOrientationEnabled(void); UIInterfaceOrientationMask DefaultUIInterfaceOrientationMask(void); diff --git a/SignalMessaging/ViewControllers/OWSViewController.m b/SignalMessaging/ViewControllers/OWSViewController.m index 4b73e852d..e76c2918e 100644 --- a/SignalMessaging/ViewControllers/OWSViewController.m +++ b/SignalMessaging/ViewControllers/OWSViewController.m @@ -8,13 +8,15 @@ NS_ASSUME_NONNULL_BEGIN +BOOL IsLandscapeOrientationEnabled(void) +{ + return NO; +} + UIInterfaceOrientationMask DefaultUIInterfaceOrientationMask(void) { -#ifdef LANDSCAPE_ORIENTATION_ENABLED - return UIInterfaceOrientationMaskAllButUpsideDown; -#else - return UIInterfaceOrientationMaskPortrait; -#endif + return (IsLandscapeOrientationEnabled() ? UIInterfaceOrientationMaskAllButUpsideDown + : UIInterfaceOrientationMaskPortrait); } @interface OWSViewController ()