Skip to content

Commit

Permalink
cod
Browse files Browse the repository at this point in the history
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
  • Loading branch information
marinofaggiana committed Sep 2, 2024
1 parent ac5baf7 commit 4126b56
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 22 deletions.
2 changes: 2 additions & 0 deletions Brand/File_Provider_Extension.plist
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
<string>group.it.twsweb.Crypto-Cloud</string>
<key>NSExtensionFileProviderSupportsEnumeration</key>
<true/>
<key>NSExtensionFileProviderSupportsPickingFolders</key>
<true/>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.fileprovider-nonui</string>
<key>NSExtensionPrincipalClass</key>
Expand Down
40 changes: 23 additions & 17 deletions File Provider Extension/FileProviderExtension+Actions.swift
Original file line number Diff line number Diff line change
Expand Up @@ -101,31 +101,37 @@ extension FileProviderExtension {
let ocIdFrom = metadataFrom.ocId
let serverUrlFrom = metadataFrom.serverUrl
let fileNameFrom = serverUrlFrom + "/" + itemFrom.filename

guard let tableDirectoryTo = providerUtility.getTableDirectoryFromParentItemIdentifier(parentItemIdentifier, account: fileProviderData.shared.session.account, homeServerUrl: utilityFileSystem.getHomeServer(session: fileProviderData.shared.session)) else {
return completionHandler(nil, NSFileProviderError(.noSuchItem))
}
let serverUrlTo = tableDirectoryTo.serverUrl
let fileNameTo = serverUrlTo + "/" + itemFrom.filename
var fileNameTo = serverUrlTo + "/" + itemFrom.filename
if let newName {
fileNameTo = serverUrlTo + "/" + newName
}

NextcloudKit.shared.moveFileOrFolder(serverUrlFileNameSource: fileNameFrom, serverUrlFileNameDestination: fileNameTo, overwrite: false, account: metadataFrom.account) { account, error in
if error == .success {
if metadataFrom.directory {
NCManageDatabase.shared.deleteDirectoryAndSubDirectory(serverUrl: serverUrlFrom, account: account)
NCManageDatabase.shared.renameDirectory(ocId: ocIdFrom, serverUrl: serverUrlTo)
}
NCManageDatabase.shared.moveMetadata(ocId: ocIdFrom, serverUrlTo: serverUrlTo)
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
NextcloudKit.shared.moveFileOrFolder(serverUrlFileNameSource: fileNameFrom, serverUrlFileNameDestination: fileNameTo, overwrite: true, account: metadataFrom.account) { account, error in
if error == .success {
if metadataFrom.directory {
NCManageDatabase.shared.deleteDirectoryAndSubDirectory(serverUrl: serverUrlFrom, account: account)
NCManageDatabase.shared.renameDirectory(ocId: ocIdFrom, serverUrl: serverUrlTo)
}
NCManageDatabase.shared.moveMetadata(ocId: ocIdFrom, serverUrlTo: serverUrlTo)

guard let metadata = NCManageDatabase.shared.getMetadataFromOcId(ocIdFrom) else {
return completionHandler(nil, NSFileProviderError(.noSuchItem))
guard let metadata = NCManageDatabase.shared.getMetadataFromOcId(ocIdFrom) else {
return completionHandler(nil, NSFileProviderError(.noSuchItem))

}
let item = FileProviderItem(metadata: metadata, parentItemIdentifier: parentItemIdentifier)
}
let item = FileProviderItem(metadata: metadata, parentItemIdentifier: parentItemIdentifier)

completionHandler(item, nil)
} else if error.errorCode == NCGlobal.shared.errorBadRequest {
completionHandler(nil, NSFileProviderError(.noSuchItem, userInfo: [NSLocalizedDescriptionKey: error.errorDescription, NSLocalizedFailureReasonErrorKey: ""]))
} else {
completionHandler(nil, NSFileProviderError(.serverUnreachable))
completionHandler(item, nil)
} else if error.errorCode == NCGlobal.shared.errorBadRequest {
completionHandler(nil, NSFileProviderError(.noSuchItem, userInfo: [NSLocalizedDescriptionKey: error.errorDescription, NSLocalizedFailureReasonErrorKey: ""]))
} else {
completionHandler(nil, NSFileProviderError(.serverUnreachable))
}
}
}
}
Expand Down
16 changes: 14 additions & 2 deletions File Provider Extension/FileProviderExtension.swift
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,13 @@ class FileProviderExtension: NSFileProviderExtension {
sessionError: "",
selector: "",
status: NCGlobal.shared.metadataStatusUploading)
if let task = NKBackground(nkCommonInstance: NextcloudKit.shared.nkCommonInstance).upload(serverUrlFileName: serverUrlFileName, fileNameLocalPath: url.path, dateCreationFile: nil, dateModificationFile: nil, account: metadata.account, sessionIdentifier: metadata.session) {
if let task = NKBackground(nkCommonInstance: NextcloudKit.shared.nkCommonInstance).upload(serverUrlFileName: serverUrlFileName,
fileNameLocalPath: url.path,
dateCreationFile: nil,
dateModificationFile: nil,
overwrite: true,
account: metadata.account,
sessionIdentifier: metadata.session) {
NCManageDatabase.shared.setMetadataSession(ocId: metadata.ocId,
sessionTaskIdentifier: task.taskIdentifier,
status: NCGlobal.shared.metadataStatusUploading)
Expand Down Expand Up @@ -325,7 +331,13 @@ class FileProviderExtension: NSFileProviderExtension {
let serverUrlFileName = tableDirectory.serverUrl + "/" + fileName
let fileNameLocalPath = self.utilityFileSystem.getDirectoryProviderStorageOcId(ocIdTransfer, fileNameView: fileName)

if let task = NKBackground(nkCommonInstance: NextcloudKit.shared.nkCommonInstance).upload(serverUrlFileName: serverUrlFileName, fileNameLocalPath: fileNameLocalPath, dateCreationFile: nil, dateModificationFile: nil, account: metadataForUpload.account, sessionIdentifier: metadataForUpload.session) {
if let task = NKBackground(nkCommonInstance: NextcloudKit.shared.nkCommonInstance).upload(serverUrlFileName: serverUrlFileName,
fileNameLocalPath: fileNameLocalPath,
dateCreationFile: nil,
dateModificationFile: nil,
overwrite: true,
account: metadataForUpload.account,
sessionIdentifier: metadataForUpload.session) {
NCManageDatabase.shared.setMetadataSession(ocId: metadataForUpload.ocId,
sessionTaskIdentifier: task.taskIdentifier,
status: NCGlobal.shared.metadataStatusUploading)
Expand Down
2 changes: 1 addition & 1 deletion iOSClient/NCAccount.swift
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ class NCAccount: NSObject {
controller?.account = account
NCManageDatabase.shared.setAccountActive(account)
/// Set capabilities
let capability = NCManageDatabase.shared.setCapabilities(account: account)
NCManageDatabase.shared.setCapabilities(account: account)
/// Set User Profile
if let userProfile {
NCManageDatabase.shared.setAccountUserProfile(account: account, userProfile: userProfile)
Expand Down
6 changes: 4 additions & 2 deletions iOSClient/SceneDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -135,14 +135,16 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {

func sceneWillResignActive(_ scene: UIScene) {
NextcloudKit.shared.nkCommonInstance.writeLog("[INFO] Scene will resign active")
/*

NSFileProviderManager.removeAllDomains { _ in
/*
if !NCKeychain().disableFilesApp,
NCManageDatabase.shared.getAllTableAccount().count > 1 {
FileProviderDomain().registerDomains()
}
*/
}
*/

///
let session = SceneManager.shared.getSession(scene: scene)
guard !session.account.isEmpty else { return }
Expand Down

0 comments on commit 4126b56

Please sign in to comment.