Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 11 additions & 7 deletions File Provider Extension/FileProviderEnumerator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -163,12 +163,11 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
let fileProviderUtility = fileProviderUtility()
let createMetadata = NCManageDatabaseCreateMetadata()

func getItemsFrom(metadatas: [tableMetadata], createDirectory: Bool) async -> [NSFileProviderItem] {
let predicate = NSPredicate(format: "account == %@ AND serverUrl == %@", session.account, serverUrl)
func getItemsFrom(metadatas: [tableMetadata], addOnDB: Bool) async -> [NSFileProviderItem] {
var items: [NSFileProviderItem] = []

// Get parentItemIdentifier
guard let directory = await NCManageDatabase.shared.getTableDirectoryAsync(predicate: predicate),
guard let directory = await NCManageDatabase.shared.getTableDirectoryAsync(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", session.account, serverUrl)),
let parentItemIdentifier = await fileProviderUtility.getParentItemIdentifierAsync(
session: session,
directory: directory
Expand All @@ -183,9 +182,13 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
continue
}

if createDirectory, metadata.directory {
await NCManageDatabase.shared.createDirectory(metadata: metadata)
if addOnDB {
if metadata.directory {
await NCManageDatabase.shared.createDirectory(metadata: metadata)
}
await NCManageDatabase.shared.addMetadataAsync(metadata)
}

autoreleasepool {
let item = FileProviderItem(metadata: metadata, parentItemIdentifier: parentItemIdentifier)
items.append(item)
Expand All @@ -195,6 +198,7 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
}

// Request pagination
//
let showHiddenFiles = NCPreferences().getShowHiddenFiles(account: session.account)
var offset = 0
if pageNumber > 0 {
Expand Down Expand Up @@ -242,7 +246,7 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
await NCManageDatabase.shared.createDirectory(metadata: metadataFolder)
}

let items = await getItemsFrom(metadatas: Array(metadatas), createDirectory: true)
let items = await getItemsFrom(metadatas: Array(metadatas), addOnDB: true)
if self.totalItems() >= self.paginatedTotal {
ncPaginate = false
}
Expand All @@ -266,7 +270,7 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
guard let metadatas = await NCManageDatabase.shared.getResultsMetadatasAsync(predicate: predicate) else {
return ([], false)
}
let items = await getItemsFrom(metadatas: Array(metadatas), createDirectory: false)
let items = await getItemsFrom(metadatas: Array(metadatas), addOnDB: false)
return (items, false)
}
}
Expand Down
4 changes: 2 additions & 2 deletions Nextcloud.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -5709,7 +5709,7 @@
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 0;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = NKUJUXUJ3B;
ENABLE_STRICT_OBJC_MSGSEND = YES;
Expand Down Expand Up @@ -5775,7 +5775,7 @@
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 0;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = NKUJUXUJ3B;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
Expand Down
Loading