Skip to content

Refactor FileProvider implementation to replicated approach #3402

Open
@Pit-Storm

Description

@Pit-Storm

[...]

Recomendation to fix this:
Since iOS 16 there is another way to implement the FileProvider. See: https://developer.apple.com/documentation/fileprovider/nsfileproviderreplicatedextension

The NSFileProviderReplicatedExtension might make sense in the use case of NC for iOS, because you don't want to take care of files on the file providers file system. The NC FileProviderExtension just should take care of xyncing the files properly.
As far as I understood the code there a couple of updates needed, but this can help solving several issues with file syncing that had been edited in other apps through the iOS File explorer.

Also it might be good to add files to the WorkingSet in NSFileProviderEnumerator that has been marked as "Available offline". So it is convenient that those files (like favorites) are always stay in sync until the internet connection is lost.

Also wit the new way of syncing items through NSFileProvidedReplicatedExtension it's possible to keep track of materialized and non materialized items (as far as I understood, that's new). So, NC iOS App keeps track of changes through those items, and if there is a change it triggers an update of the local copy of the item through the fileProvider in the background.

I don't know (searched for it, but couldn't find) if you guys want to include devices older than iOS 16. In that case this change would not yet be possible, but it's really worth taking this change the replicated provider implementation into account, because it will boost user experience to a whole new level.

Originally posted by @Pit-Storm in #3401

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions