Marino Faggiana 1 year ago
parent
commit
cf4202d12a

+ 11 - 7
iOSClient/Main/Collection Common/NCCollectionViewCommon.swift

@@ -68,7 +68,6 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
     private var tipView: EasyTipView?
 
     private var headerTransfer: Bool = false
-    private var ocIdTransfer: String?
 
     // DECLARE
     internal var layoutKey = ""
@@ -494,10 +493,8 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
         // Header view trasfer
         if metadata.chunk || metadata.e2eEncrypted {
             headerTransfer = true
-            ocIdTransfer = ocId
         } else {
             headerTransfer = false
-            ocIdTransfer = nil
         }
         self.collectionView?.reloadData()
     }
@@ -535,13 +532,19 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
               let totalBytes = userInfo["totalBytes"] as? Int64,
               let totalBytesExpected = userInfo["totalBytesExpected"] as? Int64,
               let ocId = userInfo["ocId"] as? String,
+              let chunk = userInfo["chunk"] as? Bool,
+              let e2eEncrypted = userInfo["e2eEncrypted"] as? Bool,
               let (indexPath, _) = self.dataSource.getIndexPathMetadata(ocId: ocId) as? (IndexPath, NCMetadataForSection?)
         else { return }
 
         let status = userInfo["status"] as? Int ?? NCGlobal.shared.metadataStatusNormal
         // Header Transfer
-        if headerTransfer, headerMenu?.ocIdTransfer == ocId {
-            headerMenu?.progressTransfer.progress = progressNumber.floatValue
+        if chunk || e2eEncrypted {
+            if !headerTransfer {
+                headerTransfer = true
+                collectionView.reloadData()
+            }
+            self.headerMenu?.progressTransfer.progress = progressNumber.floatValue
         }
         if let cell = collectionView?.cellForItem(at: indexPath) {
             if let cell = cell as? NCCellProtocol {
@@ -1647,9 +1650,10 @@ extension NCCollectionViewCommon: UICollectionViewDataSource {
                 header.delegate = self
 
                 if headerTransfer && !isSearchingMode {
-                    header.setTransfer(isHidden: false, ocId: ocIdTransfer)
+                    let text = String(format: NSLocalizedString("_upload_foreground_msg_", comment: ""), NCBrandOptions.shared.brand)
+                    header.setTransfer(isHidden: false, text: text)
                 } else {
-                    header.setTransfer(isHidden: true, ocId: ocIdTransfer)
+                    header.setTransfer(isHidden: true)
                 }
 
                 if headerMenuButtonsView {

+ 1 - 4
iOSClient/Main/Section Header Footer/NCSectionHeaderMenu.swift

@@ -52,8 +52,6 @@ class NCSectionHeaderMenu: UICollectionReusableView, UIGestureRecognizerDelegate
     private var textViewColor: UIColor?
     private let gradient: CAGradientLayer = CAGradientLayer()
 
-    var ocIdTransfer: String?
-
     override func awakeFromNib() {
         super.awakeFromNib()
 
@@ -179,12 +177,11 @@ class NCSectionHeaderMenu: UICollectionReusableView, UIGestureRecognizerDelegate
 
     // MARK: - Transfer
 
-    func setTransfer(isHidden: Bool, image: UIImage? = nil, text: String? = nil, ocId: String?) {
+    func setTransfer(isHidden: Bool, image: UIImage? = nil, text: String? = nil) {
 
         buttonTransfer.setImage(image, for: .normal)
         labelTransfer.text = text
         viewTransfer.isHidden = isHidden
-        ocIdTransfer = ocId
 
         if isHidden {
             viewTransferHeightConstraint.constant = 0

+ 1 - 1
iOSClient/NCGlobal.swift

@@ -348,7 +348,7 @@ class NCGlobal: NSObject {
     @objc let notificationCenterUploadedFile                    = "uploadedFile"                    // userInfo: ocId, serverUrl, account, fileName, ocIdTemp, error
     let notificationCenterUploadCancelFile                      = "uploadCancelFile"                // userInfo: ocId, serverUrl, account
 
-    let notificationCenterProgressTask                          = "progressTask"                    // userInfo: account, ocId, serverUrl, status, progress, totalBytes, totalBytesExpected
+    let notificationCenterProgressTask                          = "progressTask"                    // userInfo: account, ocId, serverUrl, status, chunk, e2eEncrypted, progress, totalBytes, totalBytesExpected
 
     let notificationCenterCreateFolder                          = "createFolder"                    // userInfo: ocId, serverUrl, account, e2ee, withPush
     let notificationCenterDeleteFile                            = "deleteFile"                      // userInfo: account, ocIds, error

+ 3 - 1
iOSClient/Networking/NCNetworking.swift

@@ -360,7 +360,7 @@ class NCNetworking: NSObject, NKCommonDelegate {
         }, progressHandler: { (progress) in
             
             if notificationCenterProgressTask {
-                NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterProgressTask, object: nil, userInfo: ["account":metadata.account, "ocId":metadata.ocId, "fileName":metadata.fileName, "serverUrl":metadata.serverUrl, "status":NSNumber(value: NCGlobal.shared.metadataStatusInDownload), "progress":NSNumber(value: progress.fractionCompleted), "totalBytes":NSNumber(value: progress.totalUnitCount), "totalBytesExpected":NSNumber(value: progress.completedUnitCount)])
+                NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterProgressTask, object: nil, userInfo: ["account": metadata.account, "ocId": metadata.ocId, "fileName": metadata.fileName, "serverUrl": metadata.serverUrl, "chunk": metadata.chunk, "e2eEncrypted": metadata.e2eEncrypted, "status": NSNumber(value: NCGlobal.shared.metadataStatusInDownload), "progress": NSNumber(value: progress.fractionCompleted), "totalBytes": NSNumber(value: progress.totalUnitCount), "totalBytesExpected": NSNumber(value: progress.completedUnitCount)])
             }
             progressHandler(progress)
                                         
@@ -639,6 +639,8 @@ class NCNetworking: NSObject, NKCommonDelegate {
                         "fileName": metadata.fileName,
                         "serverUrl": serverUrl,
                         "status": NSNumber(value: NCGlobal.shared.metadataStatusInUpload),
+                        "chunk": metadata.chunk,
+                        "e2eEncrypted": metadata.e2eEncrypted,
                         "progress": NSNumber(value: progress),
                         "totalBytes": NSNumber(value: totalBytes),
                         "totalBytesExpected": NSNumber(value: totalBytesExpected)])

+ 2 - 0
iOSClient/Networking/NCNetworkingChunkedUpload.swift

@@ -109,6 +109,8 @@ extension NCNetworking {
                                 "fileName": metadata.fileName,
                                 "serverUrl": metadata.serverUrl,
                                 "status": NSNumber(value: NCGlobal.shared.metadataStatusInUpload),
+                                "chunk": metadata.chunk,
+                                "e2eEncrypted": metadata.e2eEncrypted,
                                 "progress": NSNumber(value: fractionCompleted),
                                 "totalBytes": NSNumber(value: totalBytes),
                                 "totalBytesExpected": NSNumber(value: totalBytesExpected)])

+ 1 - 0
iOSClient/Supporting Files/en.lproj/Localizable.strings

@@ -969,6 +969,7 @@
 "_add_subtitle_"            = "Add an external subtitle";
 "_add_audio_"               = "Add an external audio";
 "_maintenance_mode_"        = "Server is currently in maintenance mode";
+"_upload_foreground_msg_"   = "Do not close %@ to complete the transfer";
 
 // Tip
 "_tip_pdf_thumbnails_"      = "Swipe left from the right edge of the screen to show the thumbnails.";