1// SPDX-FileCopyrightText: Nextcloud GmbH
2// SPDX-FileCopyrightText: 2025 Marino Faggiana
3// SPDX-License-Identifier: GPL-3.0-or-later
4
5import Foundation
6import UIKit
7import NextcloudKit
8import Alamofire
9
10extension NCNetworking {
11
12#if !EXTENSION_FILE_PROVIDER_EXTENSION
13 func networkReachabilityObserver(_ typeReachability: NKTypeReachability) {
14 if typeReachability == NKTypeReachability.reachableCellular || typeReachability == NKTypeReachability.reachableEthernetOrWiFi {
15 lastReachability = true
16 } else {
17 if lastReachability {
18 let error = NKError(errorCode: global.errorNetworkNotAvailable, errorDescription: "")
19 NCContentPresenter().messageNotification("_network_not_available_", error: error, delay: global.dismissAfterSecond, type: NCContentPresenter.messageType.info)
20 }
21 lastReachability = false
22 }
23 networkReachability = typeReachability
24 NotificationCenter.default.postOnMainThread(name: self.global.notificationCenterNetworkReachability, userInfo: nil)
25 }
26#endif
27
28 // MARK: - Download NextcloudKitDelegate
29
30 func downloadComplete(fileName: String,
31 serverUrl: String,
32 etag: String?,
33 date: Date?,
34 dateLastModified: Date?,
35 length: Int64,
36 task: URLSessionTask,
37 error: NKError) {
38 Task {
39 await progressQuantizer.clear(serverUrlFileName: serverUrl + "/" + fileName)
40
41#if EXTENSION_FILE_PROVIDER_EXTENSION
42 await FileProviderData.shared.downloadComplete(fileName: fileName,
43 serverUrl: serverUrl,
44 etag: etag,
45 date: date,
46 dateLastModified: dateLastModified,
47 length: length,
48 task: task,
…lines 49–144 unchanged (96 lines)
145 if isInBackground() {
146 await self.uploadSuccess(withMetadata: metadata,
147 ocId: ocId,
148 etag: etag,
149 date: date)
150 } else {
151#if !EXTENSION
152 await NCNetworking.shared.metadataTranfersSuccess.append(metadata: metadata,
153 ocId: ocId,
154 date: date,
155 etag: etag)
156#endif
157 }
158 } else {
159 await NCManageDatabase.shared.deleteMetadataAsync(predicate: NSPredicate(format: "fileName == %@ AND serverUrl == %@", fileName, serverUrl))
160 }
161 } else {
162 await uploadError(withMetadata: metadata, error: error)
…lines 163–190 unchanged (28 lines)