Selaa lähdekoodia

update new library

marinofaggiana 4 vuotta sitten
vanhempi
commit
c640325431

+ 1 - 1
iOSClient/CCGlobal.h

@@ -80,7 +80,7 @@
 
 // Database Realm
 #define k_databaseDefault                               @"nextcloud.realm"
-#define k_databaseSchemaVersion                         151
+#define k_databaseSchemaVersion                         152
 
 // Database JSON
 #define k_databaseDefaultJSON                           @"nextcloud.json"

+ 14 - 0
iOSClient/Data/NCDatabase.swift

@@ -446,6 +446,20 @@ class tableTrash: Object {
     }
 }
 
+class tableUserStatus: Object {
+    
+    @objc dynamic var account = ""
+    @objc dynamic var clearAt: NSDate?
+    @objc dynamic var clearAtTime: String?
+    @objc dynamic var clearAtType: String?
+    @objc dynamic var icon: String?
+    @objc dynamic var id: String?
+    @objc dynamic var message: String?
+    @objc dynamic var predefined: Bool = false
+    @objc dynamic var status: String?
+    @objc dynamic var userId: String?
+}
+
 class tableVideo: Object {
     
     @objc dynamic var account = ""

+ 35 - 0
iOSClient/Data/NCManageDatabase.swift

@@ -2711,6 +2711,41 @@ class NCManageDatabase: NSObject {
         return tableTrash.init(value: result)
     }
     
+    //MARK: -
+    //MARK: Table UserStatus
+    
+    @objc func addUserStatus(_ userStatuses: [NCCommunicationUserStatus], account: String, predefined: Bool) {
+        
+        let realm = try! Realm()
+        
+        do {
+            try realm.safeWrite {
+                
+                let results = realm.objects(tableUserStatus.self).filter("account == %@ AND predefined == %@", account, predefined)
+                realm.delete(results)
+                
+                for userStatus in userStatuses {
+                    
+                    let object = tableUserStatus()
+                    
+                    object.account = account
+                    object.clearAt = userStatus.clearAt
+                    object.clearAtTime = userStatus.clearAtTime
+                    object.clearAtType = userStatus.clearAtType
+                    object.icon = userStatus.icon
+                    object.id = userStatus.id
+                    object.message = userStatus.message
+                    object.predefined = userStatus.predefined
+                    object.status = userStatus.status
+                    object.userId = userStatus.userId
+                    
+                    realm.add(object, update: .all)
+                }
+            }
+        } catch let error {
+            NCCommunicationCommon.shared.writeLog("Could not write to database: \(error)")
+        }
+    }
     //MARK: -
     //MARK: Table Video
     

+ 12 - 4
iOSClient/UserStatus/NCUserStatus.swift

@@ -46,12 +46,20 @@ struct NCUserStatus_Previews: PreviewProvider {
  
     @objc func makeUserStatusUI() -> UIViewController{
         
-        NCCommunication.shared.getUserStatusPredefinedStatuses { (account, status, errorCode, errorDescription) in
-            
+        NCCommunication.shared.getUserStatusPredefinedStatuses { (account, userStatuses, errorCode, errorDescription) in
+            if errorCode == 0 {
+                if let userStatuses = userStatuses {
+                    NCManageDatabase.sharedInstance.addUserStatus(userStatuses, account: account, predefined: true)
+                }
+            }
         }
         
-        NCCommunication.shared.getUserStatusRetrieveStatuses(limit: 1000, offset: 0, customUserAgent: nil, addCustomHeaders: nil) { (a, b, c, d) in
-            
+        NCCommunication.shared.getUserStatusRetrieveStatuses(limit: 1000, offset: 0, customUserAgent: nil, addCustomHeaders: nil) { (account, userStatuses, errorCode, errorDescription) in
+            if errorCode == 0 {
+                if let userStatuses = userStatuses {
+                    NCManageDatabase.sharedInstance.addUserStatus(userStatuses, account: account, predefined: false)
+                }
+            }
         }
         
         let userStatus = NCUserStatus()