|
@@ -23,10 +23,6 @@
|
|
|
|
|
|
import Foundation
|
|
|
|
|
|
-@objc protocol NCCreateFormUploadConflictDelegate {
|
|
|
- @objc func dismissCreateFormUploadConflict(metadatas: [tableMetadata])
|
|
|
-}
|
|
|
-
|
|
|
@objc class NCCreateFormUploadConflict: UIViewController {
|
|
|
|
|
|
@IBOutlet weak var labelTitle: UILabel!
|
|
@@ -45,10 +41,10 @@ import Foundation
|
|
|
|
|
|
private let appDelegate = UIApplication.shared.delegate as! AppDelegate
|
|
|
|
|
|
- @objc var metadatas: [tableMetadata]
|
|
|
+ @objc var metadatasNOConflict: [tableMetadata]
|
|
|
+ @objc var metadatasUploadInConflict: [tableMetadata]
|
|
|
@objc var metadatasMOV: [tableMetadata]
|
|
|
- @objc var metadatasConflict: [tableMetadata]
|
|
|
- @objc weak var delegate: NCCreateFormUploadConflictDelegate?
|
|
|
+ @objc var serverUrl: String?
|
|
|
|
|
|
var metadatasConflictNewFiles = [String]()
|
|
|
var metadatasConflictAlreadyExistingFiles = [String]()
|
|
@@ -57,9 +53,9 @@ import Foundation
|
|
|
// MARK: - Cicle
|
|
|
|
|
|
@objc required init?(coder aDecoder: NSCoder) {
|
|
|
- self.metadatas = [tableMetadata]()
|
|
|
+ self.metadatasNOConflict = [tableMetadata]()
|
|
|
self.metadatasMOV = [tableMetadata]()
|
|
|
- self.metadatasConflict = [tableMetadata]()
|
|
|
+ self.metadatasUploadInConflict = [tableMetadata]()
|
|
|
super.init(coder: aDecoder)
|
|
|
}
|
|
|
|
|
@@ -73,13 +69,13 @@ import Foundation
|
|
|
|
|
|
tableView.register(UINib.init(nibName: "NCCreateFormUploadConflictCell", bundle: nil), forCellReuseIdentifier: "Cell")
|
|
|
|
|
|
- if metadatasConflict.count == 1 {
|
|
|
- labelTitle.text = String(metadatasConflict.count) + " " + NSLocalizedString("_file_conflict_num_", comment: "")
|
|
|
+ if metadatasUploadInConflict.count == 1 {
|
|
|
+ labelTitle.text = String(metadatasUploadInConflict.count) + " " + NSLocalizedString("_file_conflict_num_", comment: "")
|
|
|
labelSubTitle.text = NSLocalizedString("_file_conflict_desc_", comment: "")
|
|
|
labelNewFiles.text = NSLocalizedString("_file_conflict_new_", comment: "")
|
|
|
labelAlreadyExistingFiles.text = NSLocalizedString("_file_conflict_exists_", comment: "")
|
|
|
} else {
|
|
|
- labelTitle.text = String(metadatasConflict.count) + " " + NSLocalizedString("_files_conflict_num_", comment: "")
|
|
|
+ labelTitle.text = String(metadatasUploadInConflict.count) + " " + NSLocalizedString("_files_conflict_num_", comment: "")
|
|
|
labelSubTitle.text = NSLocalizedString("_files_conflict_desc_", comment: "")
|
|
|
labelNewFiles.text = NSLocalizedString("_files_conflict_new_", comment: "")
|
|
|
labelAlreadyExistingFiles.text = NSLocalizedString("_files_conflict_exists_", comment: "")
|
|
@@ -105,7 +101,7 @@ import Foundation
|
|
|
metadatasConflictNewFiles.removeAll()
|
|
|
|
|
|
if switchNewFiles.isOn {
|
|
|
- for metadata in metadatasConflict {
|
|
|
+ for metadata in metadatasUploadInConflict {
|
|
|
metadatasConflictNewFiles.append(metadata.ocId)
|
|
|
}
|
|
|
}
|
|
@@ -119,7 +115,7 @@ import Foundation
|
|
|
metadatasConflictAlreadyExistingFiles.removeAll()
|
|
|
|
|
|
if switchAlreadyExistingFiles.isOn {
|
|
|
- for metadata in metadatasConflict {
|
|
|
+ for metadata in metadatasUploadInConflict {
|
|
|
metadatasConflictAlreadyExistingFiles.append(metadata.ocId)
|
|
|
}
|
|
|
}
|
|
@@ -135,7 +131,7 @@ import Foundation
|
|
|
|
|
|
@IBAction func buttonContinueTouch(_ sender: Any) {
|
|
|
|
|
|
- for metadata in metadatasConflict {
|
|
|
+ for metadata in metadatasUploadInConflict {
|
|
|
|
|
|
// new filename + num
|
|
|
if metadatasConflictNewFiles.contains(metadata.ocId) && metadatasConflictAlreadyExistingFiles.contains(metadata.ocId) {
|
|
@@ -148,7 +144,7 @@ import Foundation
|
|
|
metadata.fileName = newFileName
|
|
|
metadata.fileNameView = newFileName
|
|
|
|
|
|
- metadatas.append(metadata)
|
|
|
+ metadatasNOConflict.append(metadata)
|
|
|
|
|
|
// MOV
|
|
|
for metadataMOV in metadatasMOV {
|
|
@@ -172,7 +168,7 @@ import Foundation
|
|
|
// overwrite
|
|
|
} else if metadatasConflictNewFiles.contains(metadata.ocId) {
|
|
|
|
|
|
- metadatas.append(metadata)
|
|
|
+ metadatasNOConflict.append(metadata)
|
|
|
|
|
|
// remove (MOV)
|
|
|
} else if metadatasConflictAlreadyExistingFiles.contains(metadata.ocId) {
|
|
@@ -193,9 +189,11 @@ import Foundation
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- metadatas.append(contentsOf: metadatasMOV)
|
|
|
+ metadatasNOConflict.append(contentsOf: metadatasMOV)
|
|
|
|
|
|
- delegate?.dismissCreateFormUploadConflict(metadatas: metadatas)
|
|
|
+ NCManageDatabase.sharedInstance.addMetadatas(metadatasNOConflict)
|
|
|
+ appDelegate.startLoadAutoDownloadUpload()
|
|
|
+ NCMainCommon.sharedInstance.reloadDatasource(ServerUrl: serverUrl, ocId: nil, action: Int32(k_action_NULL))
|
|
|
|
|
|
dismiss(animated: true)
|
|
|
}
|
|
@@ -206,7 +204,7 @@ import Foundation
|
|
|
extension NCCreateFormUploadConflict: UITableViewDelegate {
|
|
|
|
|
|
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
|
|
|
- if metadatasConflict.count == 1 {
|
|
|
+ if metadatasUploadInConflict.count == 1 {
|
|
|
return 250
|
|
|
} else {
|
|
|
return 280
|
|
@@ -223,21 +221,14 @@ extension NCCreateFormUploadConflict: UITableViewDataSource {
|
|
|
}
|
|
|
|
|
|
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
|
|
- return metadatasConflict.count
|
|
|
+ return metadatasUploadInConflict.count
|
|
|
}
|
|
|
|
|
|
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
|
|
|
|
|
if let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as? NCCreateFormUploadConflictCell {
|
|
|
|
|
|
- let metadataNewFile = metadatasConflict[indexPath.row]
|
|
|
- let fileNameExtension = (metadataNewFile.fileNameView as NSString).pathExtension.lowercased()
|
|
|
- let fileNameWithoutExtension = (metadataNewFile.fileNameView as NSString).deletingPathExtension
|
|
|
- var fileNameConflict = metadataNewFile.fileNameView
|
|
|
-
|
|
|
- if fileNameExtension == "heic" && CCUtility.getFormatCompatibility() {
|
|
|
- fileNameConflict = fileNameWithoutExtension + ".jpg"
|
|
|
- }
|
|
|
+ let metadataNewFile = metadatasUploadInConflict[indexPath.row]
|
|
|
|
|
|
cell.ocId = metadataNewFile.ocId
|
|
|
cell.delegate = self
|
|
@@ -247,7 +238,7 @@ extension NCCreateFormUploadConflict: UITableViewDataSource {
|
|
|
|
|
|
// -----> Already Existing File
|
|
|
|
|
|
- guard let metadataAlreadyExists = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileNameView == %@", metadataNewFile.account, metadataNewFile.serverUrl, fileNameConflict)) else { return UITableViewCell() }
|
|
|
+ guard let metadataAlreadyExists = NCUtility.sharedInstance.getMetadataConflict(account: metadataNewFile.account, serverUrl: metadataNewFile.serverUrl, fileName: metadataNewFile.fileNameView) else { return UITableViewCell() }
|
|
|
if FileManager().fileExists(atPath: CCUtility.getDirectoryProviderStorageIconOcId(metadataAlreadyExists.ocId, fileNameView: metadataAlreadyExists.fileNameView)) {
|
|
|
cell.imageAlreadyExistingFile.image = UIImage(contentsOfFile: CCUtility.getDirectoryProviderStorageIconOcId(metadataAlreadyExists.ocId, fileNameView: metadataAlreadyExists.fileNameView))
|
|
|
} else {
|
|
@@ -265,7 +256,6 @@ extension NCCreateFormUploadConflict: UITableViewDataSource {
|
|
|
cell.switchAlreadyExistingFile.isOn = false
|
|
|
}
|
|
|
|
|
|
-
|
|
|
// -----> New File
|
|
|
|
|
|
if metadataNewFile.iconName.count > 0 {
|
|
@@ -273,6 +263,7 @@ extension NCCreateFormUploadConflict: UITableViewDataSource {
|
|
|
} else {
|
|
|
cell.imageNewFile.image = UIImage.init(named: "file")
|
|
|
}
|
|
|
+ let filePathNewFile = CCUtility.getDirectoryProviderStorageOcId(metadataNewFile.ocId, fileNameView: metadataNewFile.fileNameView)!
|
|
|
if metadataNewFile.assetLocalIdentifier.count > 0 {
|
|
|
|
|
|
let result = PHAsset.fetchAssets(withLocalIdentifiers: [metadataNewFile.assetLocalIdentifier], options: nil)
|
|
@@ -284,7 +275,9 @@ extension NCCreateFormUploadConflict: UITableViewDataSource {
|
|
|
do {
|
|
|
if mediaType == PHAssetMediaType.image {
|
|
|
let data = try Data(contentsOf: url)
|
|
|
- cell.imageNewFile.image = UIImage(data: data)
|
|
|
+ if let image = UIImage(data: data) {
|
|
|
+ cell.imageNewFile.image = image
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
let fileDictionary = try FileManager.default.attributesOfItem(atPath: url.path)
|
|
@@ -301,7 +294,9 @@ extension NCCreateFormUploadConflict: UITableViewDataSource {
|
|
|
do {
|
|
|
if mediaType == PHAssetMediaType.image {
|
|
|
let data = try Data(contentsOf: url!)
|
|
|
- cell.imageNewFile.image = UIImage(data: data)
|
|
|
+ if let image = UIImage(data: data) {
|
|
|
+ cell.imageNewFile.image = image
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
let fileDictionary = try FileManager.default.attributesOfItem(atPath: url!.path)
|
|
@@ -314,6 +309,23 @@ extension NCCreateFormUploadConflict: UITableViewDataSource {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ } else if FileManager().fileExists(atPath: filePathNewFile) {
|
|
|
+
|
|
|
+ do {
|
|
|
+ if metadataNewFile.typeFile == k_metadataTypeFile_image {
|
|
|
+ let data = try Data(contentsOf: URL(fileURLWithPath: filePathNewFile))
|
|
|
+ if let image = UIImage(data: data) {
|
|
|
+ cell.imageNewFile.image = image
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ let fileDictionary = try FileManager.default.attributesOfItem(atPath: filePathNewFile)
|
|
|
+ let fileSize = fileDictionary[FileAttributeKey.size] as! Double
|
|
|
+
|
|
|
+ cell.labelDetailNewFile.text = CCUtility.dateDiff(metadataNewFile.date as Date) + "\n" + CCUtility.transformedSize(fileSize)
|
|
|
+
|
|
|
+ } catch { print("Error: \(error)") }
|
|
|
+
|
|
|
} else {
|
|
|
CCUtility.dateDiff(metadataNewFile.date as Date)
|
|
|
}
|
|
@@ -325,7 +337,7 @@ extension NCCreateFormUploadConflict: UITableViewDataSource {
|
|
|
}
|
|
|
|
|
|
// Hide switch if only one
|
|
|
- if metadatasConflict.count == 1 {
|
|
|
+ if metadatasUploadInConflict.count == 1 {
|
|
|
cell.switchAlreadyExistingFile.isHidden = true
|
|
|
cell.switchNewFile.isHidden = true
|
|
|
}
|
|
@@ -348,7 +360,7 @@ extension NCCreateFormUploadConflict: NCCreateFormUploadConflictCellDelegate {
|
|
|
if isOn {
|
|
|
metadatasConflictNewFiles.append(ocId)
|
|
|
}
|
|
|
- if metadatasConflictNewFiles.count == metadatasConflict.count {
|
|
|
+ if metadatasConflictNewFiles.count == metadatasUploadInConflict.count {
|
|
|
switchNewFiles.isOn = true
|
|
|
} else {
|
|
|
switchNewFiles.isOn = false
|
|
@@ -364,7 +376,7 @@ extension NCCreateFormUploadConflict: NCCreateFormUploadConflictCellDelegate {
|
|
|
if isOn {
|
|
|
metadatasConflictAlreadyExistingFiles.append(ocId)
|
|
|
}
|
|
|
- if metadatasConflictAlreadyExistingFiles.count == metadatasConflict.count {
|
|
|
+ if metadatasConflictAlreadyExistingFiles.count == metadatasUploadInConflict.count {
|
|
|
switchAlreadyExistingFiles.isOn = true
|
|
|
} else {
|
|
|
switchAlreadyExistingFiles.isOn = false
|
|
@@ -376,7 +388,7 @@ extension NCCreateFormUploadConflict: NCCreateFormUploadConflictCellDelegate {
|
|
|
func canContinue() {
|
|
|
var result = true
|
|
|
|
|
|
- for metadata in metadatasConflict {
|
|
|
+ for metadata in metadatasUploadInConflict {
|
|
|
if !metadatasConflictNewFiles.contains(metadata.ocId) && !metadatasConflictAlreadyExistingFiles.contains(metadata.ocId) {
|
|
|
result = false
|
|
|
}
|