فهرست منبع

DocumentPickerViewController

Marino Faggiana 8 سال پیش
والد
کامیت
8af46f1436
3فایلهای تغییر یافته به همراه65 افزوده شده و 31 حذف شده
  1. 5 0
      Nextcloud.xcodeproj/project.pbxproj
  2. 56 30
      Picker/DocumentPickerViewController.swift
  3. 4 1
      Picker/Picker-Bridging-Header.h

+ 5 - 0
Nextcloud.xcodeproj/project.pbxproj

@@ -596,6 +596,7 @@
 		F7F801031D98205A007537BC /* CCCertificate.m in Sources */ = {isa = PBXBuildFile; fileRef = F7F801011D98205A007537BC /* CCCertificate.m */; };
 		F7F801051D98205A007537BC /* CCCertificate.m in Sources */ = {isa = PBXBuildFile; fileRef = F7F801011D98205A007537BC /* CCCertificate.m */; };
 		F7FC7D561DC1F93800BB2C6A /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = F7FC7D551DC1F93800BB2C6A /* libz.tbd */; };
+		F7FC88FA1E140558006D0506 /* cryptocloud.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = F78088E51DD3A1DB005C5A7C /* cryptocloud.xcdatamodeld */; };
 		F7FCFFD81D70798C000E6E29 /* CCPeekPop.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F7FCFFD61D70798C000E6E29 /* CCPeekPop.storyboard */; };
 		F7FCFFE01D707B83000E6E29 /* CCPeekPop.m in Sources */ = {isa = PBXBuildFile; fileRef = F7FCFFDE1D707B83000E6E29 /* CCPeekPop.m */; };
 /* End PBXBuildFile section */
@@ -3365,6 +3366,9 @@
 						DevelopmentTeam = 6JLRKY9ZV7;
 						ProvisioningStyle = Automatic;
 						SystemCapabilities = {
+							com.apple.ApplicationGroups.iOS = {
+								enabled = 1;
+							};
 							com.apple.Keychain = {
 								enabled = 1;
 							};
@@ -3855,6 +3859,7 @@
 				F74344861E127F89001CC831 /* RNEncryptor.m in Sources */,
 				F743445C1E127D3D001CC831 /* BKPasscodeField.m in Sources */,
 				F743446F1E127E53001CC831 /* TableGPS.m in Sources */,
+				F7FC88FA1E140558006D0506 /* cryptocloud.xcdatamodeld in Sources */,
 				F743445E1E127D44001CC831 /* BKPasscodeLockScreenManager.m in Sources */,
 				F74344631E127D79001CC831 /* CCBKPasscode.m in Sources */,
 				F74344661E127E35001CC831 /* CCCoreData.m in Sources */,

+ 56 - 30
Picker/DocumentPickerViewController.swift

@@ -8,16 +8,69 @@
 
 import UIKit
 
-class DocumentPickerViewController: UIDocumentPickerExtensionViewController {
-
+class DocumentPickerViewController: UIDocumentPickerExtensionViewController, CCNetworkingDelegate {
+    
     // MARK: - Properties
-    var metadata : CCMetadata!
+    
+    var metadata : CCMetadata?
     var sectionDataSource = [CCSectionDataSource]()
+    let dirGroup = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: capabilitiesGroups)
+    
+    var activeAccount : String?
+    var activeUrl : String?
+    var activeUser : String?
+    var activePassword : String?
+    var activeUID : String?
+    var activeAccessToken : String?
+    var directoryUser : String?
+    var typeCloud : String?
+    var serverUrl : String?
+    
+    var localServerUrl : String?
+    
+    lazy var networkingOperationQueue : OperationQueue = {
+        
+        var queue = OperationQueue()
+        queue.name = "it.twsweb.cryptocloud.queue"
+        queue.maxConcurrentOperationCount = 1
+        
+        return queue
+    }()
     
     // MARK: - IBOutlets
+    
     @IBOutlet weak var tableView: UITableView!
     
     // MARK: - View Life Cycle
+    
+    override func viewDidLoad() {
+        
+        let pathDB = dirGroup?.appendingPathComponent(appDatabase).appendingPathComponent("cryptocloud")
+        
+        MagicalRecord.setupCoreDataStackWithAutoMigratingSqliteStore(at: pathDB!)
+        MagicalRecord.setLoggingLevel(MagicalRecordLoggingLevel.off)
+        
+        if let record = CCCoreData.getActiveAccount() {
+            
+            activeAccount = record.account!
+            activePassword = record.password!
+            activeUrl = record.url!
+            typeCloud = record.typeCloud!
+            
+            localServerUrl = CCUtility.getHomeServerUrlActiveUrl(activeUrl!, typeCloud: typeCloud!)
+            
+        } else {
+            
+            // Close return nil
+            dismissGrantingAccess(to: nil)
+            
+            return
+        }
+        
+        CCNetworking.shared().settingDelegate(self)
+    }
+    
+    
     override func viewWillAppear(_ animated: Bool) {
         
         super.viewWillAppear(animated)
@@ -51,31 +104,4 @@ class DocumentPickerViewController: UIDocumentPickerExtensionViewController {
         // TODO: present a view controller appropriate for picker mode here
     }
     */
-    
-    static func appGroupContainerURL() -> URL? {
-        
-        let fileManager = FileManager.default
-        guard let groupURL = fileManager
-            .containerURL(forSecurityApplicationGroupIdentifier: capabilitiesGroups) else {
-                return nil
-        }
-        
-        let storagePathUrl = groupURL.appendingPathComponent("File Provider Storage")
-        let storagePath = storagePathUrl.path
-        
-        if !fileManager.fileExists(atPath: storagePath) {
-            do {
-                try fileManager.createDirectory(atPath: storagePath,
-                                                withIntermediateDirectories: false,
-                                                attributes: nil)
-            } catch let error {
-                print("error creating filepath: \(error)")
-                return nil
-            }
-        }
-        
-        return storagePathUrl
-    }
-
-
 }

+ 4 - 1
Picker/Picker-Bridging-Header.h

@@ -4,8 +4,11 @@
 
 #import <MagicalRecord/MagicalRecord.h>
 
+
+#import "TableAccount.h"
+#import "CCCoreData.h"
+
 #import "CCHud.h"
 #import "CCMove.h"
 #import "CCSection.h"
 #import "CCGlobal.h"
-