Claudio Cambra
|
c4d12115a9
|
Merge pull request #5527 from nextcloud/feature/file-provider-try-2
Implement File Provider file synchronisation engine for macOS
|
2023-05-12 17:05:25 +08:00 |
|
Claudio Cambra
|
23855a128b
|
Do not exclude file provider config entries from compile on non-macOS platforms
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:40 +08:00 |
|
Claudio Cambra
|
b7d9826877
|
Build macOS shell extensions with debug configuration in xcodebuild when CMAKE build type set to debug
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:39 +08:00 |
|
Claudio Cambra
|
246347f88a
|
Do not initialise file provider module if not enabled in config
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:39 +08:00 |
|
Claudio Cambra
|
ab070fc7c2
|
Add config entry for file provider module enabling
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:39 +08:00 |
|
Claudio Cambra
|
ace8dbc833
|
Add support for thumbnails in FileProviderExtension
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:39 +08:00 |
|
Claudio Cambra
|
7d47e2371b
|
Add convenience method to get thumbnailUrl in NextcloudItemMetadataTable
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:39 +08:00 |
|
Claudio Cambra
|
486c1a2556
|
Split local file related metadata management into own extension in NextcloudFilesDatabaseManager
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:39 +08:00 |
|
Claudio Cambra
|
4cb1e08d89
|
Split directory item metadata handling in database to new NextcloudFilesDatabaseManager extension
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:39 +08:00 |
|
Claudio Cambra
|
2b55b43e7b
|
Correctly report child item count for folders in FileProviderItem
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:39 +08:00 |
|
Claudio Cambra
|
16a28a7ccb
|
Add convenience method for NextcloudFilesDatabaseManager to get child items of a directory
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:39 +08:00 |
|
Claudio Cambra
|
0c78630703
|
Fix query of childDirectoriesForDirectory in NextcloudFilesDatabaseManager
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:38 +08:00 |
|
Claudio Cambra
|
6797e12f6e
|
Properly report modification date for FileProviderItem
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:38 +08:00 |
|
Claudio Cambra
|
3d6acb5371
|
Use consistent if defined in application.cpp
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:38 +08:00 |
|
Claudio Cambra
|
2c3fa71405
|
Rename FileProviderDomainManager::Private to FileProviderDomainManager::MacImplementation
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:38 +08:00 |
|
Claudio Cambra
|
e245ec0d2a
|
Set interpolated log strings in FileProvider logs to public
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:38 +08:00 |
|
Claudio Cambra
|
7e1ebed8c7
|
Split client interfacing code into FileProviderExtension extension
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:38 +08:00 |
|
Claudio Cambra
|
ebf96e3e81
|
Make NKError extension code more Swift-like, clean up
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:38 +08:00 |
|
Claudio Cambra
|
f37e7cc3b6
|
Remove readdFileProviderDomain hack in FileProviderDomainManager
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:38 +08:00 |
|
Claudio Cambra
|
0f578fabdd
|
Use specific signalEnumerator method in FileProviderExtension item renaming instead of reinventing wheel
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:38 +08:00 |
|
Claudio Cambra
|
a7344ba3fd
|
Fix unused/unmodified variable definition warnings in FileProviderEnumerator
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:37 +08:00 |
|
Claudio Cambra
|
67daae2626
|
Ensure we return deleted metadata directory copy rather than live fire realm object in recursive delete of NextcloudFilesDatabaseManager
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:37 +08:00 |
|
Claudio Cambra
|
766ecf410f
|
Parallelise conversion of NKFiles to NextcloudItemMetadataTables
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:37 +08:00 |
|
Claudio Cambra
|
7550ed7a1b
|
Properly handle metadata delete after item deletion in FileProviderExtension
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:37 +08:00 |
|
Claudio Cambra
|
c088f0eb81
|
Fix recursive metadata delete in NextcloudFilesDatabaseManager
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:37 +08:00 |
|
Claudio Cambra
|
2853b88258
|
Move NKFile to metadata conversion methods to a new extension for NextcloudItemMetadataTable, where they are better placed
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:37 +08:00 |
|
Claudio Cambra
|
6169594864
|
Prevent multi-thread modification of the same array with serial array modification dispatch queue when enumerating items in FileProviderEnumerator
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:37 +08:00 |
|
Claudio Cambra
|
9c1a035e3c
|
Reintegrate sync engine into FileProviderEnumerator class
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:37 +08:00 |
|
Claudio Cambra
|
bd50f753fa
|
Simplify initial item enumeration, no need to fetch from database in FileProviderEnumerator
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:37 +08:00 |
|
Claudio Cambra
|
fe7ca12d9c
|
Perform slow metadata to FileProviderItem conversion concurrently in FileProviderEnumerator
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:36 +08:00 |
|
Claudio Cambra
|
808f976ae9
|
Fix children serverurl rename in file provider nc files database
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:36 +08:00 |
|
Claudio Cambra
|
384093cbc6
|
Remove redundant double read of serverUrl when often we always want to do a depth 1 read in NextcloudSyncEngine
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:36 +08:00 |
|
Claudio Cambra
|
27a177ab35
|
Make sure to include new metadatas in folders to scan for changes in recursive scan of NextcloudSyncEngine
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 16:02:36 +08:00 |
|
Claudio Cambra
|
34a43fea69
|
Make sure to notify when folder moved in FileProviderExtension
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 13:29:57 +08:00 |
|
Claudio Cambra
|
9fadc89ff0
|
Fix unsetting of etags on directories (and only) directories on update
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 13:29:57 +08:00 |
|
Claudio Cambra
|
02e1d6a47f
|
Fix recursive directory metadata renaming order
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 13:29:57 +08:00 |
|
Claudio Cambra
|
9cc05457c0
|
Do not do specific enumeration of items working set in FileProviderEnumerator
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 13:29:57 +08:00 |
|
Claudio Cambra
|
289f7f2c9f
|
Ensure we do not set etag if we have set updateDirectoryEtags to false in NextcloudFilesDatabaseManager updateItemMetadatas
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 13:29:57 +08:00 |
|
Claudio Cambra
|
35570a3160
|
Move remote sync functionality out of enumerator and into separate NextcloudSyncEngine class
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 13:29:56 +08:00 |
|
Claudio Cambra
|
1524fc01f0
|
Progressively enumerate items as we get them for working set
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 13:29:56 +08:00 |
|
Claudio Cambra
|
5154a57ac6
|
Move conversion from NSData to NSFileProviderPage to separate func
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 13:29:56 +08:00 |
|
Claudio Cambra
|
6202f3d70a
|
Split metadata parsing to complete enumerator into own function
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 13:29:56 +08:00 |
|
Claudio Cambra
|
8c729fb2f9
|
Simplify enumerateItems of working set by using fullRecursiveScan in FileProviderEnumerator
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 13:29:56 +08:00 |
|
Claudio Cambra
|
b369b5d515
|
Handle invalidation of enumerator during long recursive scans in FileProviderEnumerator
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 13:29:56 +08:00 |
|
Claudio Cambra
|
213893b13f
|
Fix recursive scan when scanChangesOnly is false in FileProviderEnumerator
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 13:29:56 +08:00 |
|
Claudio Cambra
|
d0b4b6853c
|
Move deleted/updated conflict check to fullRecursiveScan in FileProviderEnumerator+RemoteSync
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 13:29:56 +08:00 |
|
Claudio Cambra
|
3c2c360a2e
|
Properly report and handle critical errors during recursive enumeration in FileProviderEnumerator
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 13:29:56 +08:00 |
|
Claudio Cambra
|
245129de99
|
Move remote sync stuff in FileProviderEnumerator to own file
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 13:29:55 +08:00 |
|
Claudio Cambra
|
b2d2f9586e
|
Properly report deleted metadatas in recursive directory delete in FileProviderEnumerator
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 13:29:55 +08:00 |
|
Claudio Cambra
|
a779fe76cb
|
Favour straight return in updateItemMetadatas rather than unnecessary completionHandler in NextcloudFilesDatabaseManager
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
|
2023-05-12 13:29:55 +08:00 |
|