Browse Source

Merge pull request #2166 from nextcloud/generalfix

Generalfix
Marino Faggiana 2 years ago
parent
commit
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)
 Easy starting points are also reviewing [pull requests](https://github.com/nextcloud/ios/pulls)
 
 
-### Xcode 13.4 Project Setup
+### Xcode 14 Project Setup
 
 
 #### Dependencies
 #### Dependencies
 
 

+ 18 - 43
iOSClient/AppDelegate.swift

@@ -350,42 +350,46 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
 
 
     // MARK: - Background Task
     // 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() {
     func scheduleAppRefresh() {
 
 
         let request = BGAppRefreshTaskRequest(identifier: NCGlobal.shared.refreshTask)
         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 {
         do {
             try BGTaskScheduler.shared.submit(request)
             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 {
         } catch {
             NKCommon.shared.writeLog("Refresh task failed to submit request: \(error)")
             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() {
     func scheduleAppProcessing() {
 
 
         let request = BGProcessingTaskRequest(identifier: NCGlobal.shared.processingTask)
         let request = BGProcessingTaskRequest(identifier: NCGlobal.shared.processingTask)
         request.earliestBeginDate = Date(timeIntervalSinceNow: 5 * 60) // Refresh after 5 minutes.
         request.earliestBeginDate = Date(timeIntervalSinceNow: 5 * 60) // Refresh after 5 minutes.
-        request.requiresNetworkConnectivity = true
+        request.requiresNetworkConnectivity = false
         request.requiresExternalPower = false
         request.requiresExternalPower = false
         do {
         do {
             try BGTaskScheduler.shared.submit(request)
             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 {
         } catch {
             NKCommon.shared.writeLog("Background Processing task failed to submit request: \(error)")
             NKCommon.shared.writeLog("Background Processing task failed to submit request: \(error)")
         }
         }
     }
     }
 
 
     func handleRefreshTask(_ task: BGTask) {
     func handleRefreshTask(_ task: BGTask) {
-
-        // Schedule a new task.
         scheduleAppRefresh()
         scheduleAppRefresh()
         
         
-        if account == "" {
+        guard !account.isEmpty else {
             task.setTaskCompleted(success: true)
             task.setTaskCompleted(success: true)
             return
             return
         }
         }
-
+        
         NKCommon.shared.writeLog("Start handler refresh task [Auto upload]")
         NKCommon.shared.writeLog("Start handler refresh task [Auto upload]")
 
 
         NCAutoUpload.shared.initAutoUpload(viewController: nil) { items in
         NCAutoUpload.shared.initAutoUpload(viewController: nil) { items in
@@ -395,47 +399,18 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
     }
     }
 
 
     func handleProcessingTask(_ task: BGTask) {
     func handleProcessingTask(_ task: BGTask) {
-
-        // Schedule a new task.
         scheduleAppProcessing()
         scheduleAppProcessing()
         
         
-        if account == "" {
+        guard !account.isEmpty else {
             task.setTaskCompleted(success: true)
             task.setTaskCompleted(success: true)
             return
             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
         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) {
     @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 NCBrandOptions.shared.use_login_web_personalized || NCBrandOptions.shared.use_AppConfig {
 
 
             if activeLoginWeb?.view.window == nil {
             if activeLoginWeb?.view.window == nil {

+ 15 - 7
iOSClient/Brand/NCBrand.swift

@@ -82,25 +82,33 @@ import UIKit
         }
         }
         
         
         // wrapper AppConfig
         // 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
                 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
                 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
                 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
                 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
                 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>
 	<key>UIBackgroundModes</key>
 	<array>
 	<array>
 		<string>audio</string>
 		<string>audio</string>
-		<string>fetch</string>
 		<string>processing</string>
 		<string>processing</string>
 		<string>remote-notification</string>
 		<string>remote-notification</string>
 	</array>
 	</array>

+ 18 - 15
iOSClient/Login/NCLoginWeb.swift

@@ -50,24 +50,27 @@ class NCLoginWeb: UIViewController {
     override func viewDidLoad() {
     override func viewDidLoad() {
         super.viewDidLoad()
         super.viewDidLoad()
 
 
+        let accountCount = NCManageDatabase.shared.getAccounts()?.count ?? 0
+
         // load AppConfig
         // 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 {
         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:)))
             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_password                                  = "password"
     let configuration_apppassword                               = "apppassword"
     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.appDatabaseNextcloud]];
     [CCUtility addSkipBackupAttributeToItemAtURL:[[CCUtility getDirectoryGroup] URLByAppendingPathComponent:NCGlobal.shared.appScan]];
     [CCUtility addSkipBackupAttributeToItemAtURL:[[CCUtility getDirectoryGroup] URLByAppendingPathComponent:NCGlobal.shared.appScan]];
     [CCUtility addSkipBackupAttributeToItemAtURL:[[CCUtility getDirectoryGroup] URLByAppendingPathComponent:NCGlobal.shared.appUserData]];
     [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
 + (NSURL *)getDirectoryGroup