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

This commit is contained in:
Ash Mishra 2018-08-20 11:52:06 -07:00
parent 3b0d459230
commit 37c31a3c92
2 changed files with 15 additions and 7 deletions

View File

@ -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];
}

View File

@ -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;