From dca18a9df0d356cca205dcf5a61f910735ef6db5 Mon Sep 17 00:00:00 2001 From: Tobias Hagemann Date: Thu, 16 Feb 2023 10:57:41 +0100 Subject: [PATCH] Removed download progress for Google Drive, as introduced in #21 It caused unexpected behavior in the file provider --- .../GoogleDriveCloudProvider.swift | 23 ++++--------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/Sources/CryptomatorCloudAccess/GoogleDrive/GoogleDriveCloudProvider.swift b/Sources/CryptomatorCloudAccess/GoogleDrive/GoogleDriveCloudProvider.swift index 80ed900..6811f40 100644 --- a/Sources/CryptomatorCloudAccess/GoogleDrive/GoogleDriveCloudProvider.swift +++ b/Sources/CryptomatorCloudAccess/GoogleDrive/GoogleDriveCloudProvider.swift @@ -107,7 +107,7 @@ public class GoogleDriveCloudProvider: CloudProvider { let progress = Progress(totalUnitCount: 1) return resolvePath(forItemAt: cloudPath).then { item -> Promise in progress.becomeCurrent(withPendingUnitCount: 1) - let downloadPromise = self.downloadFile(for: item, to: localURL, onTaskCreation: onTaskCreation) + let downloadPromise = self.downloadFile(for: item, to: localURL) progress.resignCurrent() return downloadPromise } @@ -233,7 +233,7 @@ public class GoogleDriveCloudProvider: CloudProvider { } } - private func downloadFile(for item: GoogleDriveItem, to localURL: URL, onTaskCreation: ((URLSessionDownloadTask?) -> Void)?) -> Promise { + private func downloadFile(for item: GoogleDriveItem, to localURL: URL) -> Promise { CloudAccessDDLogDebug("GoogleDriveCloudProvider: downloadFile(for: \(item.identifier), to: \(localURL)) called") guard item.itemType == .file || (item.itemType == .symlink && item.shortcut?.targetItemType == .file) else { return Promise(CloudProviderError.itemTypeMismatch) @@ -247,13 +247,7 @@ public class GoogleDriveCloudProvider: CloudProvider { progress.totalUnitCount = totalBytesExpectedToWrite // Unnecessary to set several times progress.completedUnitCount = totalBytesWritten } - return executeFetcher(fetcher) { sessionTask in - guard let downloadTask = sessionTask as? URLSessionDownloadTask else { - CloudAccessDDLogDebug("GoogleDriveCloudProvider: executeFetcher returned an unexpected URLSessionTask") - return - } - onTaskCreation?(downloadTask) - } + return executeFetcher(fetcher) } private func uploadFile(for parentItem: GoogleDriveItem, from localURL: URL, to cloudPath: CloudPath, replaceExisting: Bool) -> Promise { @@ -558,8 +552,7 @@ public class GoogleDriveCloudProvider: CloudProvider { } } - private func executeFetcher(_ fetcher: GTMSessionFetcher, onTaskCreation: @escaping (URLSessionTask?) -> Void) -> Promise { - var kvoToken: NSKeyValueObservation? + private func executeFetcher(_ fetcher: GTMSessionFetcher) -> Promise { return Promise { fulfill, reject in self.runningFetchers.append(fetcher) fetcher.beginFetch { _, error in @@ -577,14 +570,6 @@ public class GoogleDriveCloudProvider: CloudProvider { } fulfill(()) } - kvoToken = fetcher.observe(\.sessionTask, options: [.new], changeHandler: { _, change in - guard let newValue = change.newValue, let sessionTask = newValue else { - return - } - onTaskCreation(sessionTask) - }) - }.always { - kvoToken?.invalidate() } }