From 37c31a3c92a6d0e884e0cf5732faeea56d115cc4 Mon Sep 17 00:00:00 2001 From: Ash Mishra Date: Mon, 20 Aug 2018 11:52:06 -0700 Subject: [PATCH] Improvements to urlFilePath so that it only does a /Documents/ folder check if the file does not exist; improvements to full-screen options for iOS to default autorotate, and to respect landscape / portrait masks --- ios/Video/RCTVideo.m | 12 +++++++----- ios/Video/RCTVideoPlayerViewController.m | 10 ++++++++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/ios/Video/RCTVideo.m b/ios/Video/RCTVideo.m index 8732f768..da1cbe31 100644 --- a/ios/Video/RCTVideo.m +++ b/ios/Video/RCTVideo.m @@ -370,16 +370,18 @@ static int const RCTVideoUnset = -1; } - (NSURL*) urlFilePath:(NSString*) filepath { - if ([filepath containsString:@"file://"] && ![filepath containsString:@"/Documents/"]) { - return [NSURL URLWithString:filepath]; + + // check if the file exists at the specified location + if ([[NSFileManager defaultManager] fileExistsAtPath:filepath]) { + return [NSURL fileURLWithPath:filepath]; } - // code to support local caching + // if no file found, check if the file exists in the Document directory NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString* relativeFilePath = [filepath lastPathComponent]; // the file may be multiple levels below the documents directory - NSArray* fileComponents = [filepath componentsSeparatedByString:@"Documents/"]; - if (fileComponents.count > 1) { + NSArray* fileComponents = [filepath componentsSeparatedByString:@"/Documents/"]; + if (fileComponents.count>1) { relativeFilePath = [fileComponents objectAtIndex:1]; } diff --git a/ios/Video/RCTVideoPlayerViewController.m b/ios/Video/RCTVideoPlayerViewController.m index b79a2de2..fe8cb171 100644 --- a/ios/Video/RCTVideoPlayerViewController.m +++ b/ios/Video/RCTVideoPlayerViewController.m @@ -9,7 +9,7 @@ - (id)init { self = [super init]; if (self) { - self.autorotate = false; + self.autorotate = true; // autorotate should be true by default } return self; } @@ -27,12 +27,18 @@ - (UIInterfaceOrientationMask)supportedInterfaceOrientations { + if ([self.preferredOrientation.lowercaseString isEqualToString:@"landscape"]) { + return UIInterfaceOrientationMaskLandscape; + } + else if ([self.preferredOrientation.lowercaseString isEqualToString:@"portrait"]) { + return UIInterfaceOrientationMaskPortrait; + } return UIInterfaceOrientationMaskAll; } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { if ([self.preferredOrientation.lowercaseString isEqualToString:@"landscape"]) { - return UIInterfaceOrientationLandscapeLeft; + return UIInterfaceOrientationLandscapeRight; } else if ([self.preferredOrientation.lowercaseString isEqualToString:@"portrait"]) { return UIInterfaceOrientationPortrait;