Commit 6c02f625 authored by Carola Nitz's avatar Carola Nitz

VLCMovieViewController: 360 videos fix rotationlock

on iPad with iOS 9 and higher shouldAutorotate is never called since all orientations are supported by default when
we support multitasking. This lead to no rotationlock when interfacelock was enabled or a 360 video was played.
We're now using supportedInterfaceOrientations: and lock 360 videos to portrait and for interfacelock we save the current orientation and return it.
parent 7712970f
...@@ -103,6 +103,4 @@ typedef NS_ENUM(NSInteger, VLCMovieJumpState) { ...@@ -103,6 +103,4 @@ typedef NS_ENUM(NSInteger, VLCMovieJumpState) {
- (void)toggleChapterAndTitleSelector; - (void)toggleChapterAndTitleSelector;
- (void)hideMenu; - (void)hideMenu;
- (BOOL)rotationIsDisabled;
@end @end
...@@ -114,6 +114,7 @@ typedef NS_ENUM(NSInteger, VLCPanType) { ...@@ -114,6 +114,7 @@ typedef NS_ENUM(NSInteger, VLCPanType) {
CGFloat _fov; CGFloat _fov;
CGPoint _saveLocation; CGPoint _saveLocation;
CGSize _screenPixelSize; CGSize _screenPixelSize;
UIInterfaceOrientation _lockedOrientation;
} }
@property (nonatomic, strong) VLCMovieViewControlPanelView *controllerPanel; @property (nonatomic, strong) VLCMovieViewControlPanelView *controllerPanel;
@property (nonatomic, strong) UIPopoverController *masterPopoverController; @property (nonatomic, strong) UIPopoverController *masterPopoverController;
...@@ -396,6 +397,7 @@ typedef NS_ENUM(NSInteger, VLCPanType) { ...@@ -396,6 +397,7 @@ typedef NS_ENUM(NSInteger, VLCPanType) {
[super viewWillAppear:animated]; [super viewWillAppear:animated];
_vpc.delegate = self; _vpc.delegate = self;
_lockedOrientation = UIInterfaceOrientationPortrait;
[_vpc recoverPlaybackState]; [_vpc recoverPlaybackState];
self.navigationController.navigationBar.barStyle = UIBarStyleBlack; self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
self.navigationController.navigationBar.tintColor = [UIColor whiteColor]; self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
...@@ -1194,6 +1196,9 @@ currentMediaHasTrackToChooseFrom:(BOOL)currentMediaHasTrackToChooseFrom ...@@ -1194,6 +1196,9 @@ currentMediaHasTrackToChooseFrom:(BOOL)currentMediaHasTrackToChooseFrom
- (void)toggleUILock - (void)toggleUILock
{ {
_interfaceIsLocked = !_interfaceIsLocked; _interfaceIsLocked = !_interfaceIsLocked;
if (_interfaceIsLocked) {
_lockedOrientation = [[UIApplication sharedApplication] statusBarOrientation];
}
NSArray *items = [self itemsForInterfaceLock]; NSArray *items = [self itemsForInterfaceLock];
...@@ -1605,9 +1610,11 @@ currentMediaHasTrackToChooseFrom:(BOOL)currentMediaHasTrackToChooseFrom ...@@ -1605,9 +1610,11 @@ currentMediaHasTrackToChooseFrom:(BOOL)currentMediaHasTrackToChooseFrom
#pragma mark - autorotation #pragma mark - autorotation
- (BOOL)rotationIsDisabled - (UIInterfaceOrientationMask)supportedInterfaceOrientations
{ {
return _interfaceIsLocked || [_vpc currentMediaIs360Video]; BOOL orientationIslocked = _interfaceIsLocked || [_vpc currentMediaIs360Video];
UIInterfaceOrientationMask maskFromOrientation = 1 << _lockedOrientation;
return orientationIslocked ? maskFromOrientation : UIInterfaceOrientationMaskAll;
} }
- (BOOL)shouldAutorotate - (BOOL)shouldAutorotate
......
...@@ -11,9 +11,6 @@ ...@@ -11,9 +11,6 @@
*****************************************************************************/ *****************************************************************************/
#import "VLCPlaybackNavigationController.h" #import "VLCPlaybackNavigationController.h"
#if TARGET_OS_IOS
#import "VLCMovieViewController.h"
#endif
@implementation VLCPlaybackNavigationController @implementation VLCPlaybackNavigationController
...@@ -22,15 +19,4 @@ ...@@ -22,15 +19,4 @@
return [self.topViewController supportedInterfaceOrientations]; return [self.topViewController supportedInterfaceOrientations];
} }
#if TARGET_OS_IOS
- (BOOL)shouldAutorotate
{
id topVC = self.topViewController;
if ([topVC isKindOfClass:[VLCMovieViewController class]])
return ![(VLCMovieViewController *)topVC rotationIsDisabled];
return YES;
}
#endif
@end @end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment