Explorar o código

Merge pull request #2166 from nextcloud/generalfix

Generalfix
Marino Faggiana %!s(int64=2) %!d(string=hai) anos
pai
achega
d4b5612494

+ 1 - 1
README.md

@@ -38,7 +38,7 @@ branch. Maybe start working on [starter issues](https://github.com/nextcloud/ios
 
 Easy starting points are also reviewing [pull requests](https://github.com/nextcloud/ios/pulls)
 
-### Xcode 13.4 Project Setup
+### Xcode 14 Project Setup
 
 #### Dependencies
 

+ 18 - 43
iOSClient/AppDelegate.swift

@@ -350,42 +350,46 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
 
     // MARK: - Background Task
 
+    /*
+    @discussion Schedule a refresh task request to ask that the system launch your app briefly so that you can download data and keep your app's contents up-to-date. The system will fulfill this request intelligently based on system conditions and app usage.
+     */
     func scheduleAppRefresh() {
 
         let request = BGAppRefreshTaskRequest(identifier: NCGlobal.shared.refreshTask)
-        request.earliestBeginDate = Date(timeIntervalSinceNow: 5 * 60) // Refresh after 5 minutes.
+        request.earliestBeginDate = Date(timeIntervalSinceNow: 6 * 60) // Refresh after 6 minutes.
         do {
             try BGTaskScheduler.shared.submit(request)
-            NKCommon.shared.writeLog("Refresh task success submit request \(request)")
+            NKCommon.shared.writeLog("Refresh task success submit request 6 minutes \(request)")
         } catch {
             NKCommon.shared.writeLog("Refresh task failed to submit request: \(error)")
         }
     }
 
+    /*
+     @discussion Schedule a processing task request to ask that the system launch your app when conditions are favorable for battery life to handle deferrable, longer-running processing, such as syncing, database maintenance, or similar tasks. The system will attempt to fulfill this request to the best of its ability within the next two days as long as the user has used your app within the past week.
+     */
     func scheduleAppProcessing() {
 
         let request = BGProcessingTaskRequest(identifier: NCGlobal.shared.processingTask)
         request.earliestBeginDate = Date(timeIntervalSinceNow: 5 * 60) // Refresh after 5 minutes.
-        request.requiresNetworkConnectivity = true
+        request.requiresNetworkConnectivity = false
         request.requiresExternalPower = false
         do {
             try BGTaskScheduler.shared.submit(request)
-            NKCommon.shared.writeLog("Background Processing task success submit request \(request)")
+            NKCommon.shared.writeLog("Background Processing task success submit request 5 minutes \(request)")
         } catch {
             NKCommon.shared.writeLog("Background Processing task failed to submit request: \(error)")
         }
     }
 
     func handleRefreshTask(_ task: BGTask) {
-
-        // Schedule a new task.
         scheduleAppRefresh()
         
-        if account == "" {
+        guard !account.isEmpty else {
             task.setTaskCompleted(success: true)
             return
         }
-
+        
         NKCommon.shared.writeLog("Start handler refresh task [Auto upload]")
 
         NCAutoUpload.shared.initAutoUpload(viewController: nil) { items in
@@ -395,47 +399,18 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
     }
 
     func handleProcessingTask(_ task: BGTask) {
-
-        // Schedule a new task.
         scheduleAppProcessing()
         
-        if account == "" {
+        guard !account.isEmpty else {
             task.setTaskCompleted(success: true)
             return
         }
 
-        NKCommon.shared.writeLog("Start handler processing task [Synchronize Favorite & Offline]")
-
-        NCNetworking.shared.listingFavoritescompletion(selector: NCGlobal.shared.selectorReadFile) { _, _, error in
-            NKCommon.shared.writeLog("Completition listing favorite with error: \(error.errorCode)")
-        }
-
-        NCService.shared.synchronizeOffline(account: account)
-
-        DispatchQueue.main.asyncAfter(deadline: .now() + 25) {
-            NKCommon.shared.writeLog("Completition handler processing task [Synchronize Favorite & Offline]")
-            task.setTaskCompleted(success: true)
-        }
-    }
-
-    // MARK: - Fetch
-
-    func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
-
-        if account == "" {
-            completionHandler(UIBackgroundFetchResult.noData)
-            return
-        }
-
-        NKCommon.shared.writeLog("Start perform Fetch [Auto upload]")
-
+        NKCommon.shared.writeLog("Start handler processing task [Auto upload]")
+        
         NCAutoUpload.shared.initAutoUpload(viewController: nil) { items in
-            NKCommon.shared.writeLog("Completition perform Fetch with \(items) uploads [Auto upload]")
-            if items == 0 {
-                completionHandler(UIBackgroundFetchResult.noData)
-            } else {
-                completionHandler(UIBackgroundFetchResult.newData)
-            }
+            NKCommon.shared.writeLog("Completition handler procesing task [Auto upload] with \(items) uploads")
+            task.setTaskCompleted(success: true)
         }
     }
 
@@ -475,7 +450,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
 
     @objc func openLogin(viewController: UIViewController?, selector: Int, openLoginWeb: Bool) {
 
-        // [Customers] [AppConfig]
+        // [WEBPersonalized] [AppConfig]
         if NCBrandOptions.shared.use_login_web_personalized || NCBrandOptions.shared.use_AppConfig {
 
             if activeLoginWeb?.view.window == nil {

+ 15 - 7
iOSClient/Brand/NCBrand.swift

@@ -82,25 +82,33 @@ import UIKit
         }
         
         // wrapper AppConfig
-        if let appconfig = UserDefaults.standard.dictionary(forKey: "com.apple.configuration.managed"), use_AppConfig {
+        if let configurationManaged = UserDefaults.standard.dictionary(forKey: "com.apple.configuration.managed"), use_AppConfig {
             
-            if let str = appconfig[NCGlobal.shared.configuration_brand] as? String {
+            if let str = configurationManaged[NCGlobal.shared.configuration_brand] as? String {
                 brand = str
             }
-            if let str = appconfig[NCGlobal.shared.configuration_disable_intro] as? String {
+            if let str = configurationManaged[NCGlobal.shared.configuration_disable_intro] as? String {
                 disable_intro = (str as NSString).boolValue
             }
-            if let str = appconfig[NCGlobal.shared.configuration_disable_multiaccount] as? String {
+            if let str = configurationManaged[NCGlobal.shared.configuration_disable_multiaccount] as? String {
                 disable_multiaccount = (str as NSString).boolValue
             }
-            if let str = appconfig[NCGlobal.shared.configuration_disable_crash_service] as? String {
+            if let str = configurationManaged[NCGlobal.shared.configuration_disable_crash_service] as? String {
                 disable_crash_service = (str as NSString).boolValue
             }
-            if let str = appconfig[NCGlobal.shared.configuration_disable_log] as? String {
+            if let str = configurationManaged[NCGlobal.shared.configuration_disable_log] as? String {
                 disable_log = (str as NSString).boolValue
             }
+            if let str = configurationManaged[NCGlobal.shared.configuration_disable_manage_account] as? String {
+                disable_manage_account = (str as NSString).boolValue
+            }
+            if let str = configurationManaged[NCGlobal.shared.configuration_disable_more_external_site] as? String {
+                disable_more_external_site = (str as NSString).boolValue
+            }
+            if let str = configurationManaged[NCGlobal.shared.configuration_disable_openin_file] as? String {
+                disable_openin_file = (str as NSString).boolValue
+            }
         }
-        
     }
 }
 

+ 0 - 1
iOSClient/Brand/iOSClient.plist

@@ -98,7 +98,6 @@
 	<key>UIBackgroundModes</key>
 	<array>
 		<string>audio</string>
-		<string>fetch</string>
 		<string>processing</string>
 		<string>remote-notification</string>
 	</array>

+ 18 - 15
iOSClient/Login/NCLoginWeb.swift

@@ -50,24 +50,27 @@ class NCLoginWeb: UIViewController {
     override func viewDidLoad() {
         super.viewDidLoad()
 
+        let accountCount = NCManageDatabase.shared.getAccounts()?.count ?? 0
+
         // load AppConfig
-        if let serverConfig = UserDefaults.standard.dictionary(forKey: "com.apple.configuration.managed"), NCBrandOptions.shared.use_AppConfig {
-            if let serverUrl = serverConfig[NCGlobal.shared.configuration_serverUrl] as? String {
-                self.configServerUrl = serverUrl
-            }
-            if let username = serverConfig[NCGlobal.shared.configuration_username] as? String, !username.isEmpty, username.lowercased() != "username" {
-                self.configUsername = username
-            }
-            if let password = serverConfig[NCGlobal.shared.configuration_password] as? String, !password.isEmpty, password.lowercased() != "password" {
-                self.configPassword = password
-            }
-            if let apppassword = serverConfig[NCGlobal.shared.configuration_apppassword] as? String, !apppassword.isEmpty, apppassword.lowercased() != "apppassword" {
-                self.configAppPassword = apppassword
+        if (NCBrandOptions.shared.disable_multiaccount == false) || (NCBrandOptions.shared.disable_multiaccount == true && accountCount == 0) {
+            if let configurationManaged = UserDefaults.standard.dictionary(forKey: "com.apple.configuration.managed"), NCBrandOptions.shared.use_AppConfig {
+                
+                if let serverUrl = configurationManaged[NCGlobal.shared.configuration_serverUrl] as? String {
+                    self.configServerUrl = serverUrl
+                }
+                if let username = configurationManaged[NCGlobal.shared.configuration_username] as? String, !username.isEmpty, username.lowercased() != "username" {
+                    self.configUsername = username
+                }
+                if let password = configurationManaged[NCGlobal.shared.configuration_password] as? String, !password.isEmpty, password.lowercased() != "password" {
+                    self.configPassword = password
+                }
+                if let apppassword = configurationManaged[NCGlobal.shared.configuration_apppassword] as? String, !apppassword.isEmpty, apppassword.lowercased() != "apppassword" {
+                    self.configAppPassword = apppassword
+                }
             }
         }
-        
-        let accountCount = NCManageDatabase.shared.getAccounts()?.count ?? 0
-        
+
         if (NCBrandOptions.shared.use_login_web_personalized || NCBrandOptions.shared.use_AppConfig) && accountCount > 0 {
             navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .stop, target: self, action: #selector(self.closeView(sender:)))
         }

+ 7 - 4
iOSClient/NCGlobal.swift

@@ -409,8 +409,11 @@ class NCGlobal: NSObject {
     let configuration_password                                  = "password"
     let configuration_apppassword                               = "apppassword"
     
-    let configuration_disable_intro                             = "disableintro"
-    let configuration_disable_multiaccount                      = "disablemultiaccount"
-    let configuration_disable_crash_service                     = "disablecrashservice"
-    let configuration_disable_log                               = "disablelog"
+    let configuration_disable_intro                             = "disable_intro"
+    let configuration_disable_multiaccount                      = "disable_multiaccount"
+    let configuration_disable_crash_service                     = "disable_crash_service"
+    let configuration_disable_log                               = "disable_log"
+    let configuration_disable_manage_account                    = "disable_manage_account"
+    let configuration_disable_more_external_site                = "disable_more_external_site"
+    let configuration_disable_openin_file                       = "disable_openin_file"
 }

+ 0 - 8
iOSClient/Utility/CCUtility.m

@@ -1044,14 +1044,6 @@
     [CCUtility addSkipBackupAttributeToItemAtURL:[[CCUtility getDirectoryGroup] URLByAppendingPathComponent:NCGlobal.shared.appDatabaseNextcloud]];
     [CCUtility addSkipBackupAttributeToItemAtURL:[[CCUtility getDirectoryGroup] URLByAppendingPathComponent:NCGlobal.shared.appScan]];
     [CCUtility addSkipBackupAttributeToItemAtURL:[[CCUtility getDirectoryGroup] URLByAppendingPathComponent:NCGlobal.shared.appUserData]];
-
-    #ifdef DEBUG
-    NSLog(@"[LOG] Copy DB on Documents directory");
-    NSString *atPathDB = [NSString stringWithFormat:@"%@/nextcloud.realm", [[dirGroup URLByAppendingPathComponent:[[NCGlobal shared] appDatabaseNextcloud]] path]];
-    NSString *toPathDB = [NSString stringWithFormat:@"%@/nextcloud.realm", [CCUtility getDirectoryDocuments]];
-    [[NSFileManager defaultManager] removeItemAtPath:toPathDB error:nil];
-    [[NSFileManager defaultManager] copyItemAtPath:atPathDB toPath:toPathDB error:nil];
-    #endif
 }
 
 + (NSURL *)getDirectoryGroup