Ver código fonte

code improved

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Marino Faggiana 1 ano atrás
pai
commit
4e23125e20

+ 1 - 1
Brand/Database.swift

@@ -26,4 +26,4 @@ import Foundation
 // Database Realm
 //
 let databaseName                    = "nextcloud.realm"
-let databaseSchemaVersion: UInt64   = 330
+let databaseSchemaVersion: UInt64   = 331

+ 4 - 4
iOSClient/Data/NCManageDatabase+Metadata.swift

@@ -60,9 +60,9 @@ class tableMetadata: Object, NCUserBaseUrl {
     @objc dynamic var hidden: Bool = false
     @objc dynamic var iconName = ""
     @objc dynamic var iconUrl = ""
+    @objc dynamic var isFlaggedAsLivePhotoByServer: Bool = false
     @objc dynamic var isExtractFile: Bool = false
     @objc dynamic var livePhotoFile = ""
-    @objc dynamic var livePhotoServer: Bool = false
     @objc dynamic var mountType = ""
     @objc dynamic var name = ""                                             // for unifiedSearch is the provider.id
     @objc dynamic var note = ""
@@ -346,7 +346,7 @@ extension NCManageDatabase {
         metadata.height = file.height
         metadata.width = file.width
         metadata.livePhotoFile = file.livePhotoFile
-        metadata.livePhotoServer = file.livePhotoServer
+        metadata.isFlaggedAsLivePhotoByServer = file.isFlaggedAsLivePhotoByServer
 
         // E2EE find the fileName for fileNameView
         if isDirectoryE2EE || file.e2eEncrypted {
@@ -715,13 +715,13 @@ extension NCManageDatabase {
         }
     }
 
-    func setMetadataLivePhotoServer(account: String, ocId: String) {
+    func setMetadataLivePhotoByServer(account: String, ocId: String) {
 
         do {
             let realm = try Realm()
             try realm.write {
                 let result = realm.objects(tableMetadata.self).filter("account == %@ AND ocId == %@", account, ocId).first
-                result?.livePhotoServer = true
+                result?.isFlaggedAsLivePhotoByServer = true
             }
         } catch let error {
             NextcloudKit.shared.nkCommonInstance.writeLog("Could not write to database: \(error)")

+ 1 - 1
iOSClient/Data/NCManageDatabase.swift

@@ -123,7 +123,7 @@ class NCManageDatabase: NSObject {
                             migration.deleteData(forType: tableGPS.className())
                         }
 
-                        if oldSchemaVersion < 330 {
+                        if oldSchemaVersion < 331 {
                             migration.deleteData(forType: tableMetadata.className())
                             migration.enumerateObjects(ofType: tableDirectory.className()) { _, newObject in
                                 newObject?["etag"] = ""

+ 3 - 1
iOSClient/NCGlobal.swift

@@ -104,7 +104,6 @@ class NCGlobal: NSObject {
     let nextcloudVersion26: Int                     = 26
     let nextcloudVersion27: Int                     = 27
     let nextcloudVersion28: Int                     = 28
-    let nextcloudVersion29: Int                     = 29
 
     // Nextcloud unsupported
     //
@@ -473,6 +472,9 @@ class NCGlobal: NSObject {
     @objc var capabilityUserStatusEnabled: Bool                 = false
     var capabilityExternalSites: Bool                           = false
     var capabilityGroupfoldersEnabled: Bool                     = false // NC27
+    var isLivePhotoServerAvailable: Bool {                              // NC28
+        return capabilityServerVersionMajor >= nextcloudVersion28
+    }
 
     // MORE NEXTCLOUD APPS
     let talkSchemeUrl                                           = "nextcloudtalk://"

+ 13 - 10
iOSClient/Networking/NCNetworking.swift

@@ -794,27 +794,30 @@ class NCNetworking: NSObject, NKCommonDelegate {
 
     func uploadLivePhoto(metadata: tableMetadata) {
 
-        guard NCGlobal.shared.capabilityServerVersionMajor >= NCGlobal.shared.nextcloudVersion28,
+        guard NCGlobal.shared.isLivePhotoServerAvailable,
               metadata.isLivePhoto,
               let metadata1 = NCManageDatabase.shared.getMetadata(predicate: NSPredicate(format: "account == %@ AND urlBase == %@ AND path == %@ AND fileName == %@ AND status == %d", metadata.account, metadata.urlBase, metadata.path, metadata.livePhotoFile, NCGlobal.shared.metadataStatusNormal)) else {
             return
         }
 
-        let serverUrlfileNamePath = metadata.urlBase + metadata.path + metadata.livePhotoFile
-        let serverUrlfileNamePath1 = metadata1.urlBase + metadata1.path + metadata1.livePhotoFile
-
         Task {
-            let results = await NextcloudKit.shared.setLivephoto(serverUrlfileNamePath: serverUrlfileNamePath, livePhotoFile: metadata1.livePhotoFile)
-            print("Send LivePhoto metadata error \(results.error.errorCode)")
+            let serverUrlfileNamePath = metadata.urlBase + metadata.path + metadata.livePhotoFile
+            var results = await NextcloudKit.shared.setLivephoto(serverUrlfileNamePath: serverUrlfileNamePath, livePhotoFile: metadata1.livePhotoFile)
+            if results.error == .success {
+                NCManageDatabase.shared.setMetadataLivePhotoByServer(account: metadata.account, ocId: metadata.ocId)
+            }
 
-            let results1 = await NextcloudKit.shared.setLivephoto(serverUrlfileNamePath: serverUrlfileNamePath1, livePhotoFile: metadata.livePhotoFile)
-            print("Send LivePhoto metadata1 error \(results1.error.errorCode)")
+            let serverUrlfileNamePath1 = metadata1.urlBase + metadata1.path + metadata1.livePhotoFile
+            results = await NextcloudKit.shared.setLivephoto(serverUrlfileNamePath: serverUrlfileNamePath1, livePhotoFile: metadata.livePhotoFile)
+            if results.error == .success {
+                NCManageDatabase.shared.setMetadataLivePhotoByServer(account: metadata1.account, ocId: metadata1.ocId)
+            }
         }
     }
 
     func convertLivePhoto() {
 
-        guard NCGlobal.shared.capabilityServerVersionMajor >= NCGlobal.shared.nextcloudVersion28 else { return }
+        guard NCGlobal.shared.isLivePhotoServerAvailable else { return }
 
         if let results = NCManageDatabase.shared.getResultsMetadatas(predicate: NSPredicate(format: "livePhotoServer == false AND livePhotoFile != ''")) {
             var index: Int = 0
@@ -823,7 +826,7 @@ class NCNetworking: NSObject, NKCommonDelegate {
                 let serverUrlfileNamePath = result.urlBase + result.path + result.fileName
                 NextcloudKit.shared.setLivephoto(serverUrlfileNamePath: serverUrlfileNamePath, livePhotoFile: result.livePhotoFile) { _, error in
                     if error == .success {
-                        NCManageDatabase.shared.setMetadataLivePhotoServer(account: result.account, ocId: result.ocId)
+                        NCManageDatabase.shared.setMetadataLivePhotoByServer(account: result.account, ocId: result.ocId)
                     }
                 }
                 if index >= 20 { break }