Skip to content

Commit 98a738a

Browse files
cleaning (#3874)
Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
1 parent 8136cc7 commit 98a738a

File tree

4 files changed

+22
-36
lines changed

4 files changed

+22
-36
lines changed

iOSClient/Data/NCManageDatabase+Metadata.swift

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -366,9 +366,6 @@ extension NCManageDatabase {
366366
}
367367

368368
func getMetadataProcess() async -> [tableMetadata] {
369-
let existingFileNames = await NCNetworking.shared.metadataTranfersSuccess.getServerUrlFileNames()
370-
let excludedSet = Set(existingFileNames) // O(1) membership check
371-
372369
return await core.performRealmReadAsync { realm in
373370
let predicate = NSPredicate(format: "status != %d", NCGlobal.shared.metadataStatusNormal)
374371
let sortDescriptors = [
@@ -381,12 +378,7 @@ extension NCManageDatabase {
381378
.filter(predicate)
382379
.sorted(by: sortDescriptors)
383380

384-
// Filter out all metadata whose serverUrlFileName is in excludedSet
385-
let filtered = results.filter { metadata in
386-
return !excludedSet.contains(metadata.serverUrlFileName)
387-
}
388-
389-
let sliced = filtered.prefix(limit)
381+
let sliced = results.prefix(limit)
390382
return sliced.map { $0.detachedCopy() }
391383
} ?? []
392384
}
@@ -484,6 +476,14 @@ extension NCManageDatabase {
484476
}
485477
}
486478

479+
func deleteMetadataAsync(ocId: String) async {
480+
await core.performRealmWriteAsync { realm in
481+
if let object = realm.object(ofType: tableMetadata.self, forPrimaryKey: ocId) {
482+
realm.delete(object)
483+
}
484+
}
485+
}
486+
487487
func replaceMetadataAsync(ocId: String, metadata: tableMetadata) async {
488488
let detached = metadata.detachedCopy()
489489

iOSClient/Data/NCMetadataTranfersSuccess.swift

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -39,21 +39,12 @@ actor NCMetadataTranfersSuccess {
3939
tranfersSuccess
4040
}
4141

42-
func getMetadata(ocIdTransfer: String) async -> tableMetadata? {
43-
return tranfersSuccess.filter({ $0.ocIdTransfer == ocIdTransfer }).first
44-
}
45-
46-
func getServerUrlFileNames() async -> [String] {
47-
return tranfersSuccess.map { $0.serverUrlFileName }
48-
}
49-
5042
func exists(serverUrlFileName: String) async -> Bool {
5143
return tranfersSuccess.filter({ $0.serverUrlFileName == serverUrlFileName }).first != nil
5244
}
5345

5446
func flush() async {
55-
let isInBackground = NCNetworking.shared.isInBackground()
56-
let snapshot: [tableMetadata] = tranfersSuccess
47+
let metadatas: [tableMetadata] = tranfersSuccess
5748
tranfersSuccess.removeAll(keepingCapacity: true)
5849

5950
NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterMetadataTranfersSuccessFlush)
@@ -62,7 +53,7 @@ actor NCMetadataTranfersSuccess {
6253
var metadatasLivePhoto: [tableMetadata] = []
6354
var autoUploads: [tableAutoUploadTransfer] = []
6455

65-
for metadata in snapshot {
56+
for metadata in metadatas {
6657
let results = await NCNetworking.shared.helperMetadataSuccess(metadata: metadata)
6758
if let localFile = results.localFile {
6859
metadatasLocalFiles.append(localFile)
@@ -75,8 +66,7 @@ actor NCMetadataTranfersSuccess {
7566
}
7667
}
7768

78-
let ocIds = snapshot.map(\.ocIdTransfer)
79-
await NCManageDatabase.shared.replaceMetadatasAsync(ocId: ocIds, metadatas: snapshot)
69+
await NCManageDatabase.shared.addMetadatasAsync(metadatas)
8070

8171
// Local File
8272
await NCManageDatabase.shared.addLocalFilesAsync(metadatas: metadatasLocalFiles)
@@ -87,23 +77,20 @@ actor NCMetadataTranfersSuccess {
8777
// Create Live Photo metadatas
8878
await NCManageDatabase.shared.setLivePhotoVideo(metadatas: metadatasLivePhoto)
8979

90-
// Set livePhoto on Server
91-
#if !EXTENSION
92-
if !isInBackground {
80+
if !NCNetworking.shared.isInBackground() {
81+
82+
// Set livePhoto on Server
9383
let accounts = Set(metadatasLivePhoto.map { $0.account })
9484
for account in accounts {
9585
await NCNetworking.shared.setLivePhoto(account: account)
9686
if isAppInBackground {
9787
return
9888
}
9989
}
100-
}
101-
#endif
10290

103-
// TransferDispatcher — notify outside of shared-state mutation
104-
if !isInBackground {
91+
// TransferDispatcher — notify outside of shared-state mutation
10592
await NCNetworking.shared.transferDispatcher.notifyAllDelegates { delegate in
106-
for metadata in snapshot {
93+
for metadata in metadatas {
10794
delegate.transferChange(status: NCGlobal.shared.networkingStatusUploaded,
10895
account: metadata.account,
10996
serverUrl: metadata.serverUrl,
@@ -115,6 +102,6 @@ actor NCMetadataTranfersSuccess {
115102
}
116103
}
117104

118-
nkLog(tag: NCGlobal.shared.logTagMetadataTransfers, message: "Flush successful (\(snapshot.count))", consoleOnly: true)
105+
nkLog(tag: NCGlobal.shared.logTagMetadataTransfers, message: "Flush successful (\(metadatas.count))", consoleOnly: true)
119106
}
120107
}

iOSClient/Networking/NCNetworking+NextcloudKitDelegate.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ extension NCNetworking {
145145
date: date)
146146
} else {
147147
#if !EXTENSION
148-
await NCManageDatabase.shared.clearMetadatasSessionAsync(ocId: metadata.ocId)
148+
await NCManageDatabase.shared.deleteMetadataAsync(ocId: metadata.ocId)
149149
await NCNetworking.shared.metadataTranfersSuccess.append(metadata: metadata,
150150
ocId: ocId,
151151
date: date,

iOSClient/Networking/NCNetworking+Task.swift

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -286,9 +286,8 @@ extension NCNetworking {
286286
func verifyZombie() async {
287287
// UPLOADING-FOREGROUND
288288
//
289-
if let metadatas = await NCManageDatabase.shared.getMetadatasAsync(predicate: NSPredicate(format: "session == %@ AND status == %d",
290-
sessionUpload,
291-
self.global.metadataStatusUploading)) {
289+
if let metadatas = await NCManageDatabase.shared.getMetadatasAsync(
290+
predicate: NSPredicate(format: "session == %@ AND status == %d", sessionUpload, self.global.metadataStatusUploading)) {
292291
for metadata in metadatas {
293292
guard let nkSession = NextcloudKit.shared.nkCommonInstance.nksessions.session(forAccount: metadata.account) else {
294293
await NCManageDatabase.shared.deleteMetadataAsync(id: metadata.ocId)
@@ -297,7 +296,7 @@ extension NCNetworking {
297296
}
298297

299298
// Verify in Metadata Transfer Success
300-
guard await metadataTranfersSuccess.getMetadata(ocIdTransfer: metadata.ocIdTransfer) == nil else {
299+
guard await !metadataTranfersSuccess.exists(serverUrlFileName: metadata.serverUrlFileName) else {
301300
continue
302301
}
303302

0 commit comments

Comments
 (0)