Marino Faggiana 1 năm trước cách đây
mục cha
commit
0d42710480

+ 1 - 1
Brand/Database.swift

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

+ 35 - 7
iOSClient/Data/NCManageDatabase+Video.swift

@@ -30,6 +30,9 @@ class tableVideo: Object {
     @objc dynamic var account = ""
     @objc dynamic var ocId = ""
     @objc dynamic var position: Float = 0
+    @objc dynamic var width: Int = 0
+    @objc dynamic var height: Int = 0
+    @objc dynamic var length: Int = 0
     @objc dynamic var codecNameVideo: String?
     @objc dynamic var codecNameAudio: String?
     @objc dynamic var codecAudioChannelLayout: String?
@@ -44,7 +47,7 @@ class tableVideo: Object {
 
 extension NCManageDatabase {
 
-    func addVideo(metadata: tableMetadata, position: Float) {
+    func addVideo(metadata: tableMetadata, position: Float? = nil, width: Int? = nil, height: Int? = nil, length: Int? = nil) {
 
         if metadata.livePhoto { return }
         let realm = try! Realm()
@@ -53,17 +56,42 @@ extension NCManageDatabase {
             try realm.write {
                 if let result = realm.objects(tableVideo.self).filter("account == %@ AND ocId == %@", metadata.account, metadata.ocId).first {
 
-                    result.position = position
+                    if let position = position {
+                        result.position = position
+                    }
+                    if let width = width {
+                        result.width = width
+                    }
+                    if let height = height {
+                        result.height = height
+                    }
+                    if let length = length {
+                        result.length = length
+                    }
+
                     realm.add(result, update: .all)
 
                 } else {
 
-                    let addObject = tableVideo()
+                    let result = tableVideo()
 
-                    addObject.account = metadata.account
-                    addObject.ocId = metadata.ocId
-                    addObject.position = position
-                    realm.add(addObject, update: .all)
+                    result.account = metadata.account
+                    result.ocId = metadata.ocId
+
+                    if let position = position {
+                        result.position = position
+                    }
+                    if let width = width {
+                        result.width = width
+                    }
+                    if let height = height {
+                        result.height = height
+                    }
+                    if let length = length {
+                        result.length = length
+                    }
+
+                    realm.add(result, update: .all)
                 }
             }
         } catch let error {

+ 9 - 4
iOSClient/Viewer/NCViewerMedia/NCPlayer/NCPlayer.swift

@@ -34,8 +34,9 @@ class NCPlayer: NSObject {
     internal var thumbnailer: VLCMediaThumbnailer?
     internal var metadata: tableMetadata
     internal var singleTapGestureRecognizer: UITapGestureRecognizer!
-    internal var width: Int64?
-    internal var height: Int64?
+    internal var width: Int?
+    internal var height: Int?
+    internal var length: Int?
     internal let fileNamePreviewLocalPath: String
     internal let fileNameIconLocalPath: String
 
@@ -220,8 +221,12 @@ extension NCPlayer: VLCMediaPlayerDelegate {
             break
         case .playing:
             let size = player.videoSize
-            self.width = Int64(size.width)
-            self.height = Int64(size.height)
+            if let mediaLength = player.media?.length.intValue {
+                self.length = Int(mediaLength)
+            }
+            self.width = Int(size.width)
+            self.height = Int(size.height)
+            NCManageDatabase.shared.addVideo(metadata: metadata, width: self.width, height: self.height, length: self.length)
             print("Played mode: PLAYING")
             break
         case .paused: