|
@@ -28,7 +28,8 @@ import Foundation
|
|
|
let instance = NCNetworkingNotificationCenter()
|
|
|
|
|
|
NotificationCenter.default.addObserver(instance, selector: #selector(downloadFileStart(_:)), name: NSNotification.Name(rawValue: k_notificationCenter_downloadFileStart), object: nil)
|
|
|
-
|
|
|
+ NotificationCenter.default.addObserver(instance, selector: #selector(downloadedFile(_:)), name: NSNotification.Name(rawValue: k_notificationCenter_downloadedFile), object: nil)
|
|
|
+
|
|
|
NotificationCenter.default.addObserver(instance, selector: #selector(uploadFileStart(_:)), name: NSNotification.Name(rawValue: k_notificationCenter_uploadFileStart), object: nil)
|
|
|
NotificationCenter.default.addObserver(instance, selector: #selector(uploadedFile(_:)), name: NSNotification.Name(rawValue: k_notificationCenter_uploadedFile), object: nil)
|
|
|
|
|
@@ -50,6 +51,129 @@ import Foundation
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @objc func downloadedFile(_ notification: NSNotification) {
|
|
|
+
|
|
|
+ if let userInfo = notification.userInfo as NSDictionary? {
|
|
|
+ if let metadata = userInfo["metadata"] as? tableMetadata, let selector = userInfo["selector"] as? String, let errorCode = userInfo["errorCode"] as? Int, let errorDescription = userInfo["errorDescription"] as? String {
|
|
|
+
|
|
|
+ if metadata.account != appDelegate.activeAccount { return }
|
|
|
+
|
|
|
+ if errorCode == 0 {
|
|
|
+
|
|
|
+ NCMainCommon.sharedInstance.reloadDatasource(ServerUrl: metadata.serverUrl, ocId: metadata.ocId, action: Int32(k_action_MOD))
|
|
|
+
|
|
|
+
|
|
|
+ if selector == selectorDownloadSynchronize {
|
|
|
+ appDelegate.updateApplicationIconBadgeNumber()
|
|
|
+ appDelegate.startLoadAutoDownloadUpload()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if selector == selectorDownloadEditPhoto {
|
|
|
+ NCMainCommon.sharedInstance.editPhoto(metadata, viewController: appDelegate.activeMain)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (selector == selectorLoadFileView || selector == selectorLoadFileViewFavorite || selector == selectorLoadFileInternalView) && UIApplication.shared.applicationState == UIApplication.State.active {
|
|
|
+
|
|
|
+ var uti = CCUtility.insertTypeFileIconName(metadata.fileNameView, metadata: metadata)
|
|
|
+ if uti == nil {
|
|
|
+ uti = ""
|
|
|
+ } else if uti!.contains("opendocument") && !NCUtility.sharedInstance.isRichDocument(metadata) {
|
|
|
+ metadata.typeFile = k_metadataTypeFile_unknown
|
|
|
+ }
|
|
|
+
|
|
|
+ #if HC
|
|
|
+ if metadata.typeFile == k_metadataTypeFile_imagemeter {
|
|
|
+
|
|
|
+ if !IMUtility.shared.IMUnzip(metadata: metadata) {
|
|
|
+ NCContentPresenter.shared.messageNotification("_error_", description: "Bundle imagemeter error. 🤷♂️", delay: TimeInterval(k_dismissAfterSecond), type: NCContentPresenter.messageType.error, errorCode: 0)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ let storyboard = UIStoryboard(name: "IMImagemeter", bundle: nil)
|
|
|
+ let imagemeterViewer = storyboard.instantiateInitialViewController() as! IMImagemeterViewer
|
|
|
+ imagemeterViewer.metadata = metadata
|
|
|
+ imagemeterViewer.modalPresentationStyle = UIModalPresentationStyle.fullScreen
|
|
|
+ imagemeterViewer.imagemeterViewerDelegate = self
|
|
|
+
|
|
|
+ self.appDelegate.window.rootViewController?.present(imagemeterViewer, animated: true, completion: nil)
|
|
|
+
|
|
|
+ return
|
|
|
+ }
|
|
|
+ #else
|
|
|
+ if metadata.typeFile == k_metadataTypeFile_imagemeter {
|
|
|
+ NCMainCommon.sharedInstance.openIn(metadata: metadata, selector: selector)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ #endif
|
|
|
+
|
|
|
+ if metadata.typeFile == k_metadataTypeFile_compress || metadata.typeFile == k_metadataTypeFile_unknown {
|
|
|
+
|
|
|
+ NCMainCommon.sharedInstance.openIn(metadata: metadata, selector: selector)
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+ if appDelegate.activeMain.view.window != nil {
|
|
|
+ appDelegate.activeMain.shouldPerformSegue(metadata, selector: selector)
|
|
|
+ } else if appDelegate.activeFavorites.view.window != nil {
|
|
|
+ appDelegate.activeFavorites.shouldPerformSegue(metadata, selector: selector)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (selector == selectorOpenIn || selector == selectorOpenInDetail) && UIApplication.shared.applicationState == UIApplication.State.active {
|
|
|
+
|
|
|
+ NCMainCommon.sharedInstance.openIn(metadata: metadata, selector: selector)
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if selector == selectorSave {
|
|
|
+
|
|
|
+ appDelegate.activeMain.save(toPhotoAlbum: metadata)
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if selector == selectorLoadCopy {
|
|
|
+
|
|
|
+ appDelegate.activeMain.copyFile(toPasteboard: metadata)
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if selector == selectorLoadOffline {
|
|
|
+
|
|
|
+ NCManageDatabase.sharedInstance.setLocalFile(ocId: metadata.ocId, offline: true)
|
|
|
+ }
|
|
|
+
|
|
|
+ appDelegate.startLoadAutoDownloadUpload()
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+
|
|
|
+ if (errorCode == kOCErrorServerPathNotFound || errorCode == -1011) {
|
|
|
+
|
|
|
+ do {
|
|
|
+ try FileManager.default.removeItem(atPath: CCUtility.getDirectoryProviderStorageOcId(metadata.ocId))
|
|
|
+ } catch { }
|
|
|
+
|
|
|
+ NCManageDatabase.sharedInstance.deleteMetadata(predicate: NSPredicate(format: "ocId == %@", metadata.ocId))
|
|
|
+ NCManageDatabase.sharedInstance.deleteLocalFile(predicate: NSPredicate(format: "ocId == %@", metadata.ocId))
|
|
|
+
|
|
|
+ NCMainCommon.sharedInstance.reloadDatasource(ServerUrl: metadata.serverUrl, ocId: metadata.ocId, action: Int32(k_action_DEL))
|
|
|
+
|
|
|
+ } else {
|
|
|
+ NCContentPresenter.shared.messageNotification("_download_file_", description: errorDescription, delay: TimeInterval(k_dismissAfterSecond), type: NCContentPresenter.messageType.error, errorCode: errorCode)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ appDelegate.startLoadAutoDownloadUpload()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
|
|
|
@objc func uploadFileStart(_ notification: NSNotification) {
|