From 1700d38dd7ba2ef98297e77b69cc1059c35b91cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesu=CC=81s=20A=2E=20A=CC=81lvarez?= Date: Sat, 28 Apr 2018 11:50:22 +0200 Subject: [PATCH] show documents directory in iOS 11 files --- Mini vMac.xcodeproj/project.pbxproj | 2 ++ Mini vMac/AppDelegate.m | 29 +++++++++++++++++++++++++++++ Mini vMac/Info.plist | 16 +++++++--------- 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/Mini vMac.xcodeproj/project.pbxproj b/Mini vMac.xcodeproj/project.pbxproj index c7a6f7f..d4804de 100644 --- a/Mini vMac.xcodeproj/project.pbxproj +++ b/Mini vMac.xcodeproj/project.pbxproj @@ -1624,6 +1624,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEVELOPMENT_TEAM = UJXNDZ5TNU; HEADER_SEARCH_PATHS = "$(SRCROOT)"; INFOPLIST_FILE = "Mini vMac/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; @@ -1641,6 +1642,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEVELOPMENT_TEAM = UJXNDZ5TNU; HEADER_SEARCH_PATHS = "$(SRCROOT)"; INFOPLIST_FILE = "Mini vMac/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; diff --git a/Mini vMac/AppDelegate.m b/Mini vMac/AppDelegate.m index c7cfc3b..91170bf 100644 --- a/Mini vMac/AppDelegate.m +++ b/Mini vMac/AppDelegate.m @@ -294,6 +294,17 @@ NSString *DocumentsChangedNotification = @"documentsChanged"; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { + NSMutableDictionary *options = [NSMutableDictionary dictionaryWithCapacity:2]; + if (sourceApplication) { + options[UIApplicationOpenURLOptionsSourceApplicationKey] = sourceApplication; + } + if (annotation) { + options[UIApplicationOpenURLOptionsAnnotationKey] = annotation; + } + return [self application:application openURL:url options:options]; +} + +- (BOOL)importFileToDocuments:(NSURL *)url { if (url.fileURL) { // opening file NSFileManager *fileManager = [NSFileManager defaultManager]; @@ -323,4 +334,22 @@ NSString *DocumentsChangedNotification = @"documentsChanged"; return YES; } +- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options { + if (url.fileURL) { + // opening file + if ([url.path.stringByStandardizingPath hasPrefix:self.documentsPath]) { + // already in documents - mount + [sharedEmulator insertDisk:url.path]; + } else if ([options[UIApplicationOpenURLOptionsOpenInPlaceKey] boolValue]) { + // not in documents - copy + [url startAccessingSecurityScopedResource]; + [self importFileToDocuments:url]; + [url stopAccessingSecurityScopedResource]; + } else { + return [self importFileToDocuments:url]; + } + } + return YES; +} + @end diff --git a/Mini vMac/Info.plist b/Mini vMac/Info.plist index 648a9ed..d98e630 100644 --- a/Mini vMac/Info.plist +++ b/Mini vMac/Info.plist @@ -11,10 +11,8 @@ CFBundleTypeName Disk Image - CFBundleTypeRole - Editor LSHandlerRank - Owner + Alternate LSItemContentTypes com.apple.disk-image @@ -25,10 +23,8 @@ CFBundleTypeName Disk Copy 4.2 Disk Image - CFBundleTypeRole - Editor LSHandlerRank - Owner + Alternate LSItemContentTypes com.apple.disk-image-dc42 @@ -39,16 +35,16 @@ CFBundleTypeName ROM image - CFBundleTypeRole - Editor LSHandlerRank - Owner + Alternate LSItemContentTypes net.namedfork.minivmac.rom + CFBundleTypeIconFiles + CFBundleTypeName Unknown File LSHandlerRank @@ -79,6 +75,8 @@ 9 LSRequiresIPhoneOS + LSSupportsOpeningDocumentsInPlace + UIBackgroundModes audio