Эх сурвалжийг харах

use nextcloudKit 2.6.0

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Marino Faggiana 1 жил өмнө
parent
commit
48fe3e3211

+ 2 - 2
Nextcloud.xcodeproj/project.pbxproj

@@ -4287,8 +4287,8 @@
 			isa = XCRemoteSwiftPackageReference;
 			repositoryURL = "https://github.com/nextcloud/NextcloudKit";
 			requirement = {
-				branch = sessionManager;
-				kind = branch;
+				kind = exactVersion;
+				version = 2.6.0;
 			};
 		};
 		F788ECC5263AAAF900ADC67F /* XCRemoteSwiftPackageReference "MarkdownKit" */ = {

+ 6 - 5
iOSClient/Login/NCLogin.swift

@@ -260,9 +260,10 @@ class NCLogin: UIViewController, UITextFieldDelegate, NCLoginQRCodeDelegate {
 
         loginButton.isEnabled = false
 
-        NextcloudKit.shared.getServerStatus(serverUrl: url) {installed, maintenance, _, _, _, versionMajor, _, _, _, _, error in
+        NextcloudKit.shared.getServerStatus(serverUrl: url) { serverInfoResult in
 
-            if error == .success {
+            switch serverInfoResult {
+            case .success(let serverInfo):
 
                 if let host = URL(string: url)?.host {
                     NCNetworking.shared.writeCertificate(host: host)
@@ -288,7 +289,7 @@ class NCLogin: UIViewController, UITextFieldDelegate, NCLoginQRCodeDelegate {
                         }
 
                     // Login Flow
-                    } else if versionMajor >= NCGlobal.shared.nextcloudVersion12 {
+                    } else if serverInfo.versionMajor >= NCGlobal.shared.nextcloudVersion12 {
 
                         if let loginWeb = UIStoryboard(name: "NCLogin", bundle: nil).instantiateViewController(withIdentifier: "NCLoginWeb") as? NCLoginWeb {
 
@@ -299,7 +300,7 @@ class NCLogin: UIViewController, UITextFieldDelegate, NCLoginQRCodeDelegate {
                         }
 
                     // NO Login flow available
-                    } else if versionMajor < NCGlobal.shared.nextcloudVersion12 {
+                    } else if serverInfo.versionMajor < NCGlobal.shared.nextcloudVersion12 {
 
                         let alertController = UIAlertController(title: NSLocalizedString("_error_", comment: ""), message: NSLocalizedString("_webflow_not_available_", comment: ""), preferredStyle: .alert)
 
@@ -309,7 +310,7 @@ class NCLogin: UIViewController, UITextFieldDelegate, NCLoginQRCodeDelegate {
                     }
                 }
 
-            } else {
+            case .failure(let error):
 
                 self.loginButton.isEnabled = true
 

+ 16 - 17
iOSClient/Networking/NCService.swift

@@ -93,26 +93,25 @@ class NCService: NSObject {
 
         let options = NKRequestOptions(queue: NextcloudKit.shared.nkCommonInstance.backgroundQueue)
 
-        let resultServerStatus = await NextcloudKit.shared.getServerStatus(serverUrl: appDelegate.urlBase, options: options)
-
-        if resultServerStatus.maintenance {
-            let error = NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "_maintenance_mode_")
-            NCContentPresenter.shared.showWarning(error: error, priority: .max)
-            return (false, nil)
-        }
-
-        if let serverProductName = resultServerStatus.serverProductName, serverProductName.contains("owncloud") {
-            let error = NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "_warning_owncloud_")
-            NCContentPresenter.shared.showWarning(error: error, priority: .max)
-        }
-
-        if resultServerStatus.versionMajor <=  NCGlobal.shared.nextcloud_unsupported_version {
-            let error = NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "_warning_unsupported_")
-            NCContentPresenter.shared.showWarning(error: error, priority: .max)
+        switch await NextcloudKit.shared.getServerStatus(serverUrl: appDelegate.urlBase, options: options) {
+        case .success(let serverInfo):
+            if serverInfo.maintenance {
+                let error = NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "_maintenance_mode_")
+                NCContentPresenter.shared.showWarning(error: error, priority: .max)
+                return (false, nil)
+            } else if serverInfo.productName.lowercased().contains("owncloud") {
+                let error = NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "_warning_owncloud_")
+                NCContentPresenter.shared.showWarning(error: error, priority: .max)
+                return (false, nil)
+            } else if serverInfo.versionMajor <=  NCGlobal.shared.nextcloud_unsupported_version {
+                let error = NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "_warning_unsupported_")
+                NCContentPresenter.shared.showWarning(error: error, priority: .max)
+            }
+        case .failure(_):
+            return(false, nil)
         }
 
         let resultUserProfile = await NextcloudKit.shared.getUserProfile(options: options)
-
         if resultUserProfile.error == .success, let userProfile = resultUserProfile.userProfile {
             guard let tableAccount = NCManageDatabase.shared.setAccountUserProfile(account: resultUserProfile.account, userProfile: userProfile) else {
                 let error = NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "Internal error: account not found on DB")