diff --git a/Signal/Signal-Info.plist b/Signal/Signal-Info.plist
index 5d4bce5c0..3504f3fa2 100644
--- a/Signal/Signal-Info.plist
+++ b/Signal/Signal-Info.plist
@@ -148,8 +148,6 @@
UISupportedInterfaceOrientations
UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
UIViewControllerBasedStatusBarAppearance
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/Signal/src/ViewControllers/MenuActionsViewController.swift b/Signal/src/ViewControllers/MenuActionsViewController.swift
index 3019edf69..285268c25 100644
--- a/Signal/src/ViewControllers/MenuActionsViewController.swift
+++ b/Signal/src/ViewControllers/MenuActionsViewController.swift
@@ -93,7 +93,7 @@ class MenuActionsViewController: UIViewController, MenuActionSheetDelegate {
// MARK: Orientation
override public var supportedInterfaceOrientations: UIInterfaceOrientationMask {
- return .allButUpsideDown
+ return DefaultUIInterfaceOrientationMask()
}
// MARK: Present / Dismiss animations
diff --git a/Signal/src/ViewControllers/OWSImagePickerController.swift b/Signal/src/ViewControllers/OWSImagePickerController.swift
index 4583f5414..904a239df 100644
--- a/Signal/src/ViewControllers/OWSImagePickerController.swift
+++ b/Signal/src/ViewControllers/OWSImagePickerController.swift
@@ -9,6 +9,6 @@ import Foundation
// MARK: Orientation
override public var supportedInterfaceOrientations: UIInterfaceOrientationMask {
- return .allButUpsideDown
+ return DefaultUIInterfaceOrientationMask()
}
}
diff --git a/Signal/src/ViewControllers/ProfileViewController.m b/Signal/src/ViewControllers/ProfileViewController.m
index 9a18d755b..90d65feb1 100644
--- a/Signal/src/ViewControllers/ProfileViewController.m
+++ b/Signal/src/ViewControllers/ProfileViewController.m
@@ -624,7 +624,7 @@ NSString *const kProfileView_LastPresentedDate = @"kProfileView_LastPresentedDat
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
return (self.profileViewMode == ProfileViewMode_Registration ? UIInterfaceOrientationMaskPortrait
- : UIInterfaceOrientationMaskAllButUpsideDown);
+ : DefaultUIInterfaceOrientationMask());
}
@end
diff --git a/Signal/src/ViewControllers/Registration/BackupRestoreViewController.swift b/Signal/src/ViewControllers/Registration/BackupRestoreViewController.swift
index 7547704b0..7da4aea50 100644
--- a/Signal/src/ViewControllers/Registration/BackupRestoreViewController.swift
+++ b/Signal/src/ViewControllers/Registration/BackupRestoreViewController.swift
@@ -170,6 +170,6 @@ public class BackupRestoreViewController: OWSTableViewController {
// MARK: Orientation
public override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
- return .allButUpsideDown
+ return DefaultUIInterfaceOrientationMask()
}
}
diff --git a/SignalMessaging/ViewControllers/CountryCodeViewController.m b/SignalMessaging/ViewControllers/CountryCodeViewController.m
index 4d83e0098..16ea98bc4 100644
--- a/SignalMessaging/ViewControllers/CountryCodeViewController.m
+++ b/SignalMessaging/ViewControllers/CountryCodeViewController.m
@@ -28,7 +28,7 @@
[super loadView];
self.shouldUseTheme = NO;
- self.interfaceOrientationMask = UIInterfaceOrientationMaskAllButUpsideDown;
+ self.interfaceOrientationMask = DefaultUIInterfaceOrientationMask();
self.view.backgroundColor = [UIColor whiteColor];
self.title = NSLocalizedString(@"COUNTRYCODE_SELECT_TITLE", @"");
diff --git a/SignalMessaging/ViewControllers/OWSViewController.h b/SignalMessaging/ViewControllers/OWSViewController.h
index a195e4c4c..6e0ed2c3c 100644
--- a/SignalMessaging/ViewControllers/OWSViewController.h
+++ b/SignalMessaging/ViewControllers/OWSViewController.h
@@ -1,11 +1,15 @@
//
-// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
+// Copyright (c) 2019 Open Whisper Systems. All rights reserved.
//
#import
NS_ASSUME_NONNULL_BEGIN
+BOOL IsLandscapeOrientationEnabled(void);
+
+UIInterfaceOrientationMask DefaultUIInterfaceOrientationMask(void);
+
@interface OWSViewController : UIViewController
@property (nonatomic) BOOL shouldIgnoreKeyboardChanges;
diff --git a/SignalMessaging/ViewControllers/OWSViewController.m b/SignalMessaging/ViewControllers/OWSViewController.m
index 563156c58..e76c2918e 100644
--- a/SignalMessaging/ViewControllers/OWSViewController.m
+++ b/SignalMessaging/ViewControllers/OWSViewController.m
@@ -8,6 +8,17 @@
NS_ASSUME_NONNULL_BEGIN
+BOOL IsLandscapeOrientationEnabled(void)
+{
+ return NO;
+}
+
+UIInterfaceOrientationMask DefaultUIInterfaceOrientationMask(void)
+{
+ return (IsLandscapeOrientationEnabled() ? UIInterfaceOrientationMaskAllButUpsideDown
+ : UIInterfaceOrientationMaskPortrait);
+}
+
@interface OWSViewController ()
@property (nonatomic, weak) UIView *bottomLayoutView;
@@ -185,7 +196,7 @@ NS_ASSUME_NONNULL_BEGIN
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
- return UIInterfaceOrientationMaskAllButUpsideDown;
+ return DefaultUIInterfaceOrientationMask();
}
@end