|
@@ -40,7 +40,6 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
|
|
internal var selectOcId: [String] = []
|
|
internal var selectOcId: [String] = []
|
|
internal var metadatasSource: [tableMetadata] = []
|
|
internal var metadatasSource: [tableMetadata] = []
|
|
internal var metadataFolder: tableMetadata?
|
|
internal var metadataFolder: tableMetadata?
|
|
- internal var metadataTouch: tableMetadata?
|
|
|
|
internal var dataSource = NCDataSource()
|
|
internal var dataSource = NCDataSource()
|
|
internal var richWorkspaceText: String?
|
|
internal var richWorkspaceText: String?
|
|
internal var header: UIView?
|
|
internal var header: UIView?
|
|
@@ -63,7 +62,6 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
|
|
|
|
|
|
internal var isReloadDataSourceNetworkInProgress: Bool = false
|
|
internal var isReloadDataSourceNetworkInProgress: Bool = false
|
|
|
|
|
|
- var selectedIndexPath: IndexPath!
|
|
|
|
private var pushed: Bool = false
|
|
private var pushed: Bool = false
|
|
|
|
|
|
// DECLARE
|
|
// DECLARE
|
|
@@ -916,12 +914,6 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
|
|
|
|
|
|
if gestureRecognizer.state != .began { return }
|
|
if gestureRecognizer.state != .began { return }
|
|
|
|
|
|
- if let metadata = NCManageDatabase.shared.getMetadataFromOcId(objectId) {
|
|
|
|
- metadataTouch = metadata
|
|
|
|
- } else {
|
|
|
|
- metadataTouch = nil
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
var listMenuItems: [UIMenuItem] = []
|
|
var listMenuItems: [UIMenuItem] = []
|
|
let touchPoint = gestureRecognizer.location(in: collectionView)
|
|
let touchPoint = gestureRecognizer.location(in: collectionView)
|
|
|
|
|
|
@@ -1086,172 +1078,178 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-}
|
|
|
|
-
|
|
|
|
-// MARK: - Collection View
|
|
|
|
-
|
|
|
|
-extension NCCollectionViewCommon: UICollectionViewDelegate {
|
|
|
|
-
|
|
|
|
- func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
|
|
|
|
|
|
+
|
|
|
|
+ // MARK: - Push metadata
|
|
|
|
+
|
|
|
|
+ func pushMetadata(_ metadata: tableMetadata) {
|
|
|
|
|
|
- guard let metadata = dataSource.cellForItemAt(indexPath: indexPath) else { return }
|
|
|
|
- metadataTouch = metadata
|
|
|
|
- selectedIndexPath = indexPath
|
|
|
|
|
|
+ guard let serverUrlPush = CCUtility.stringAppendServerUrl(metadata.serverUrl, addFileName: metadata.fileName) else { return }
|
|
appDelegate.activeMetadata = metadata
|
|
appDelegate.activeMetadata = metadata
|
|
|
|
|
|
- if isEditMode {
|
|
|
|
- if let index = selectOcId.firstIndex(of: metadata.ocId) {
|
|
|
|
- selectOcId.remove(at: index)
|
|
|
|
|
|
+ // FILES
|
|
|
|
+ if layoutKey == NCGlobal.shared.layoutViewFiles && !pushed {
|
|
|
|
+
|
|
|
|
+ if let viewController = appDelegate.listFilesVC[serverUrlPush] {
|
|
|
|
+
|
|
|
|
+ if viewController.isViewLoaded {
|
|
|
|
+ pushViewController(viewController: viewController)
|
|
|
|
+ }
|
|
|
|
+
|
|
} else {
|
|
} else {
|
|
- selectOcId.append(metadata.ocId)
|
|
|
|
|
|
+
|
|
|
|
+ if let viewController:NCFiles = UIStoryboard(name: "NCFiles", bundle: nil).instantiateInitialViewController() as? NCFiles {
|
|
|
|
+
|
|
|
|
+ viewController.isRoot = false
|
|
|
|
+ viewController.serverUrl = serverUrlPush
|
|
|
|
+ viewController.titleCurrentFolder = metadata.fileNameView
|
|
|
|
+
|
|
|
|
+ appDelegate.listFilesVC[serverUrlPush] = viewController
|
|
|
|
+
|
|
|
|
+ pushViewController(viewController: viewController)
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- collectionView.reloadItems(at: [indexPath])
|
|
|
|
- self.navigationItem.title = NSLocalizedString("_selected_", comment: "") + " : \(selectOcId.count)" + " / \(dataSource.metadatas.count)"
|
|
|
|
- return
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- if metadata.e2eEncrypted && !CCUtility.isEnd(toEndEnabled: appDelegate.account) {
|
|
|
|
- NCContentPresenter.shared.messageNotification("_info_", description: "_e2e_goto_settings_for_enable_", delay: NCGlobal.shared.dismissAfterSecond, type: NCContentPresenter.messageType.info, errorCode: NCGlobal.shared.errorE2EENotEnabled, forced: true)
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
|
|
+ // FAVORITE
|
|
|
|
+ if layoutKey == NCGlobal.shared.layoutViewFavorite && !pushed {
|
|
|
|
|
|
- if metadata.directory {
|
|
|
|
-
|
|
|
|
- guard let serverUrlPush = CCUtility.stringAppendServerUrl(metadataTouch!.serverUrl, addFileName: metadataTouch!.fileName) else { return }
|
|
|
|
-
|
|
|
|
- // FILES
|
|
|
|
- if layoutKey == NCGlobal.shared.layoutViewFiles && !pushed {
|
|
|
|
|
|
+ if let viewController = appDelegate.listFavoriteVC[serverUrlPush] {
|
|
|
|
|
|
- if let viewController = appDelegate.listFilesVC[serverUrlPush] {
|
|
|
|
-
|
|
|
|
- if viewController.isViewLoaded {
|
|
|
|
- pushViewController(viewController: viewController)
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
-
|
|
|
|
- if let viewController:NCFiles = UIStoryboard(name: "NCFiles", bundle: nil).instantiateInitialViewController() as? NCFiles {
|
|
|
|
-
|
|
|
|
- viewController.isRoot = false
|
|
|
|
- viewController.serverUrl = serverUrlPush
|
|
|
|
- viewController.titleCurrentFolder = metadataTouch!.fileNameView
|
|
|
|
-
|
|
|
|
- appDelegate.listFilesVC[serverUrlPush] = viewController
|
|
|
|
-
|
|
|
|
- pushViewController(viewController: viewController)
|
|
|
|
- }
|
|
|
|
|
|
+ if viewController.isViewLoaded {
|
|
|
|
+ pushViewController(viewController: viewController)
|
|
}
|
|
}
|
|
- }
|
|
|
|
-
|
|
|
|
- // FAVORITE
|
|
|
|
- if layoutKey == NCGlobal.shared.layoutViewFavorite && !pushed {
|
|
|
|
-
|
|
|
|
- if let viewController = appDelegate.listFavoriteVC[serverUrlPush] {
|
|
|
|
-
|
|
|
|
- if viewController.isViewLoaded {
|
|
|
|
- pushViewController(viewController: viewController)
|
|
|
|
- }
|
|
|
|
|
|
|
|
- } else {
|
|
|
|
-
|
|
|
|
- if let viewController:NCFavorite = UIStoryboard(name: "NCFavorite", bundle: nil).instantiateInitialViewController() as? NCFavorite {
|
|
|
|
-
|
|
|
|
- viewController.serverUrl = serverUrlPush
|
|
|
|
- viewController.titleCurrentFolder = metadataTouch!.fileNameView
|
|
|
|
|
|
+ } else {
|
|
|
|
+
|
|
|
|
+ if let viewController:NCFavorite = UIStoryboard(name: "NCFavorite", bundle: nil).instantiateInitialViewController() as? NCFavorite {
|
|
|
|
|
|
- appDelegate.listFavoriteVC[serverUrlPush] = viewController
|
|
|
|
-
|
|
|
|
- pushViewController(viewController: viewController)
|
|
|
|
- }
|
|
|
|
|
|
+ viewController.serverUrl = serverUrlPush
|
|
|
|
+ viewController.titleCurrentFolder = metadata.fileNameView
|
|
|
|
+
|
|
|
|
+ appDelegate.listFavoriteVC[serverUrlPush] = viewController
|
|
|
|
+
|
|
|
|
+ pushViewController(viewController: viewController)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // OFFLINE
|
|
|
|
+ if layoutKey == NCGlobal.shared.layoutViewOffline && !pushed {
|
|
|
|
|
|
- // OFFLINE
|
|
|
|
- if layoutKey == NCGlobal.shared.layoutViewOffline && !pushed {
|
|
|
|
|
|
+ if let viewController = appDelegate.listOfflineVC[serverUrlPush] {
|
|
|
|
+
|
|
|
|
+ if viewController.isViewLoaded {
|
|
|
|
+ pushViewController(viewController: viewController)
|
|
|
|
+ }
|
|
|
|
|
|
- if let viewController = appDelegate.listOfflineVC[serverUrlPush] {
|
|
|
|
|
|
+ } else {
|
|
|
|
+
|
|
|
|
+ if let viewController:NCOffline = UIStoryboard(name: "NCOffline", bundle: nil).instantiateInitialViewController() as? NCOffline {
|
|
|
|
|
|
- if viewController.isViewLoaded {
|
|
|
|
- pushViewController(viewController: viewController)
|
|
|
|
- }
|
|
|
|
|
|
+ viewController.serverUrl = serverUrlPush
|
|
|
|
+ viewController.titleCurrentFolder = metadata.fileNameView
|
|
|
|
|
|
- } else {
|
|
|
|
|
|
+ appDelegate.listOfflineVC[serverUrlPush] = viewController
|
|
|
|
|
|
- if let viewController:NCOffline = UIStoryboard(name: "NCOffline", bundle: nil).instantiateInitialViewController() as? NCOffline {
|
|
|
|
-
|
|
|
|
- viewController.serverUrl = serverUrlPush
|
|
|
|
- viewController.titleCurrentFolder = metadataTouch!.fileNameView
|
|
|
|
-
|
|
|
|
- appDelegate.listOfflineVC[serverUrlPush] = viewController
|
|
|
|
-
|
|
|
|
- pushViewController(viewController: viewController)
|
|
|
|
- }
|
|
|
|
|
|
+ pushViewController(viewController: viewController)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // RECENT ( for push use Files ... he he he )
|
|
|
|
+ if layoutKey == NCGlobal.shared.layoutViewRecent && !pushed {
|
|
|
|
|
|
- // RECENT ( for push use Files ... he he he )
|
|
|
|
- if layoutKey == NCGlobal.shared.layoutViewRecent && !pushed {
|
|
|
|
|
|
+ if let viewController = appDelegate.listFilesVC[serverUrlPush] {
|
|
|
|
+
|
|
|
|
+ if viewController.isViewLoaded {
|
|
|
|
+ pushViewController(viewController: viewController)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
|
|
- if let viewController = appDelegate.listFilesVC[serverUrlPush] {
|
|
|
|
|
|
+ if let viewController:NCFiles = UIStoryboard(name: "NCFiles", bundle: nil).instantiateInitialViewController() as? NCFiles {
|
|
|
|
|
|
- if viewController.isViewLoaded {
|
|
|
|
- pushViewController(viewController: viewController)
|
|
|
|
- }
|
|
|
|
|
|
+ viewController.isRoot = false
|
|
|
|
+ viewController.serverUrl = serverUrlPush
|
|
|
|
+ viewController.titleCurrentFolder = metadata.fileNameView
|
|
|
|
|
|
- } else {
|
|
|
|
|
|
+ appDelegate.listFilesVC[serverUrlPush] = viewController
|
|
|
|
|
|
- if let viewController:NCFiles = UIStoryboard(name: "NCFiles", bundle: nil).instantiateInitialViewController() as? NCFiles {
|
|
|
|
-
|
|
|
|
- viewController.isRoot = false
|
|
|
|
- viewController.serverUrl = serverUrlPush
|
|
|
|
- viewController.titleCurrentFolder = metadataTouch!.fileNameView
|
|
|
|
-
|
|
|
|
- appDelegate.listFilesVC[serverUrlPush] = viewController
|
|
|
|
-
|
|
|
|
- pushViewController(viewController: viewController)
|
|
|
|
- }
|
|
|
|
|
|
+ pushViewController(viewController: viewController)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //VIEW IN FOLDER
|
|
|
|
+ if layoutKey == NCGlobal.shared.layoutViewViewInFolder && !pushed {
|
|
|
|
+
|
|
|
|
+ if let viewController:NCFileViewInFolder = UIStoryboard(name: "NCFileViewInFolder", bundle: nil).instantiateInitialViewController() as? NCFileViewInFolder {
|
|
|
|
+
|
|
|
|
+ viewController.serverUrl = serverUrlPush
|
|
|
|
+ viewController.titleCurrentFolder = metadata.fileNameView
|
|
|
|
+
|
|
|
|
+ pushViewController(viewController: viewController)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // SHARES ( for push use Files ... he he he )
|
|
|
|
+ if layoutKey == NCGlobal.shared.layoutViewShares && !pushed {
|
|
|
|
|
|
- //VIEW IN FOLDER
|
|
|
|
- if layoutKey == NCGlobal.shared.layoutViewViewInFolder && !pushed {
|
|
|
|
-
|
|
|
|
- if let viewController:NCFileViewInFolder = UIStoryboard(name: "NCFileViewInFolder", bundle: nil).instantiateInitialViewController() as? NCFileViewInFolder {
|
|
|
|
|
|
+ if let viewController = appDelegate.listFilesVC[serverUrlPush] {
|
|
|
|
|
|
- viewController.serverUrl = serverUrlPush
|
|
|
|
- viewController.titleCurrentFolder = metadataTouch!.fileNameView
|
|
|
|
-
|
|
|
|
|
|
+ if viewController.isViewLoaded {
|
|
pushViewController(viewController: viewController)
|
|
pushViewController(viewController: viewController)
|
|
}
|
|
}
|
|
- }
|
|
|
|
-
|
|
|
|
- // SHARES ( for push use Files ... he he he )
|
|
|
|
- if layoutKey == NCGlobal.shared.layoutViewShares && !pushed {
|
|
|
|
|
|
|
|
- if let viewController = appDelegate.listFilesVC[serverUrlPush] {
|
|
|
|
-
|
|
|
|
- if viewController.isViewLoaded {
|
|
|
|
- pushViewController(viewController: viewController)
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
|
|
+ } else {
|
|
|
|
+
|
|
|
|
+ if let viewController:NCFiles = UIStoryboard(name: "NCFiles", bundle: nil).instantiateInitialViewController() as? NCFiles {
|
|
|
|
+
|
|
|
|
+ viewController.isRoot = false
|
|
|
|
+ viewController.serverUrl = serverUrlPush
|
|
|
|
+ viewController.titleCurrentFolder = metadata.fileNameView
|
|
|
|
|
|
- if let viewController:NCFiles = UIStoryboard(name: "NCFiles", bundle: nil).instantiateInitialViewController() as? NCFiles {
|
|
|
|
|
|
+ appDelegate.listFilesVC[serverUrlPush] = viewController
|
|
|
|
|
|
- viewController.isRoot = false
|
|
|
|
- viewController.serverUrl = serverUrlPush
|
|
|
|
- viewController.titleCurrentFolder = metadataTouch!.fileNameView
|
|
|
|
-
|
|
|
|
- appDelegate.listFilesVC[serverUrlPush] = viewController
|
|
|
|
-
|
|
|
|
- pushViewController(viewController: viewController)
|
|
|
|
- }
|
|
|
|
|
|
+ pushViewController(viewController: viewController)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// MARK: - Collection View
|
|
|
|
+
|
|
|
|
+extension NCCollectionViewCommon: UICollectionViewDelegate {
|
|
|
|
+
|
|
|
|
+ func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
|
|
|
|
+
|
|
|
|
+ guard let metadata = dataSource.cellForItemAt(indexPath: indexPath) else { return }
|
|
|
|
+ appDelegate.activeMetadata = metadata
|
|
|
|
+
|
|
|
|
+ if isEditMode {
|
|
|
|
+ if let index = selectOcId.firstIndex(of: metadata.ocId) {
|
|
|
|
+ selectOcId.remove(at: index)
|
|
|
|
+ } else {
|
|
|
|
+ selectOcId.append(metadata.ocId)
|
|
|
|
+ }
|
|
|
|
+ collectionView.reloadItems(at: [indexPath])
|
|
|
|
+ self.navigationItem.title = NSLocalizedString("_selected_", comment: "") + " : \(selectOcId.count)" + " / \(dataSource.metadatas.count)"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if metadata.e2eEncrypted && !CCUtility.isEnd(toEndEnabled: appDelegate.account) {
|
|
|
|
+ NCContentPresenter.shared.messageNotification("_info_", description: "_e2e_goto_settings_for_enable_", delay: NCGlobal.shared.dismissAfterSecond, type: NCContentPresenter.messageType.info, errorCode: NCGlobal.shared.errorE2EENotEnabled, forced: true)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if metadata.directory {
|
|
|
|
+
|
|
|
|
+ pushMetadata(metadata)
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
- guard let metadataTouch = metadataTouch else { return }
|
|
|
|
let imageIcon = UIImage(contentsOfFile: CCUtility.getDirectoryProviderStorageIconOcId(metadata.ocId, etag: metadata.etag))
|
|
let imageIcon = UIImage(contentsOfFile: CCUtility.getDirectoryProviderStorageIconOcId(metadata.ocId, etag: metadata.etag))
|
|
|
|
|
|
if metadata.classFile == NCCommunicationCommon.typeClassFile.image.rawValue || metadata.classFile == NCCommunicationCommon.typeClassFile.video.rawValue || metadata.classFile == NCCommunicationCommon.typeClassFile.audio.rawValue {
|
|
if metadata.classFile == NCCommunicationCommon.typeClassFile.image.rawValue || metadata.classFile == NCCommunicationCommon.typeClassFile.video.rawValue || metadata.classFile == NCCommunicationCommon.typeClassFile.audio.rawValue {
|
|
@@ -1261,14 +1259,14 @@ extension NCCollectionViewCommon: UICollectionViewDelegate {
|
|
metadatas.append(metadata)
|
|
metadatas.append(metadata)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- NCViewer.shared.view(viewController: self, metadata: metadataTouch, metadatas: metadatas, imageIcon: imageIcon)
|
|
|
|
|
|
+ NCViewer.shared.view(viewController: self, metadata: metadata, metadatas: metadatas, imageIcon: imageIcon)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
- if CCUtility.fileProviderStorageExists(metadataTouch.ocId, fileNameView: metadataTouch.fileNameView) {
|
|
|
|
- NCViewer.shared.view(viewController: self, metadata: metadataTouch, metadatas: [metadataTouch], imageIcon: imageIcon)
|
|
|
|
|
|
+ if CCUtility.fileProviderStorageExists(metadata.ocId, fileNameView: metadata.fileNameView) {
|
|
|
|
+ NCViewer.shared.view(viewController: self, metadata: metadata, metadatas: [metadata], imageIcon: imageIcon)
|
|
} else if NCCommunication.shared.isNetworkReachable() {
|
|
} else if NCCommunication.shared.isNetworkReachable() {
|
|
- NCNetworking.shared.download(metadata: metadataTouch, selector: NCGlobal.shared.selectorLoadFileView) { (_) in }
|
|
|
|
|
|
+ NCNetworking.shared.download(metadata: metadata, selector: NCGlobal.shared.selectorLoadFileView) { (_) in }
|
|
} else {
|
|
} else {
|
|
NCContentPresenter.shared.messageNotification("_info_", description: "_go_online_", delay: NCGlobal.shared.dismissAfterSecond, type: NCContentPresenter.messageType.info, errorCode: NCGlobal.shared.errorOffline, forced: true)
|
|
NCContentPresenter.shared.messageNotification("_info_", description: "_go_online_", delay: NCGlobal.shared.dismissAfterSecond, type: NCContentPresenter.messageType.info, errorCode: NCGlobal.shared.errorOffline, forced: true)
|
|
}
|
|
}
|
|
@@ -1295,7 +1293,6 @@ extension NCCollectionViewCommon: UICollectionViewDelegate {
|
|
|
|
|
|
if isEditMode { return nil }
|
|
if isEditMode { return nil }
|
|
guard let metadata = dataSource.cellForItemAt(indexPath: indexPath) else { return nil }
|
|
guard let metadata = dataSource.cellForItemAt(indexPath: indexPath) else { return nil }
|
|
- metadataTouch = metadata
|
|
|
|
let identifier = indexPath as NSCopying
|
|
let identifier = indexPath as NSCopying
|
|
var image: UIImage?
|
|
var image: UIImage?
|
|
let cell = collectionView.cellForItem(at: indexPath)
|
|
let cell = collectionView.cellForItem(at: indexPath)
|