Remove items in Fileprovider

After I receive an apns request. func enumerateItems(for observer: NSFileProviderEnumerationObserver, startingAt page: NSFileProviderPage) will be called. And I start fetch new items from my server. If new items have been deleted something that old items which already showed to the user contains. These have been deleted items will not disappear on the screen.

func enumerateItems(for observer: NSFileProviderEnumerationObserver, startingAt page: NSFileProviderPage) {

        task = Task {

            do {

                let flat = MediaItemReference.flat(enumeratedItemIdentifier == .rootContainer ? root : enumeratedItemIdentifier.rawValue)

                guard let uuid = UUID(uuidString: flat.identifier) else {

                    observer.finishEnumeratingWithError(FileProviderError.other)

                    return

                }

                let fileContents = try await WebApi.getSubForFileProvider(uuid)

                let refs = fileContents.map { fileContent -> MediaItemReference in

                    InfoPool.shared.set(fileContent.uuid.uuidString, value: fileContent)

                    return MediaItemReference(

                        identifier: fileContent.uuid.uuidString,

                        isDirectory: fileContent.isDictionary,

                        filename: fileContent.name,

                        father: uuid.uuidString)

                }

                let items = refs.map(FileProviderItem.init(reference:))

                observer.didEnumerate(items)

                observer.finishEnumerating(upTo: nil)

            } catch {

                print("=>", error.localizedDescription)

                observer.finishEnumeratingWithError(error)

            }

        }

    }

Accepted Reply

Use isTrushed in Item

Replies

Use isTrushed in Item