Commit Graph

381 Commits

Author SHA1 Message Date
Claudio Cambra
ad2a2c40d8 Try to authenticate new account details before setting them
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-10-11 16:40:47 +08:00
Claudio Cambra
4012d43bb9 Do not provide items if account is not set up correctly
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-09-12 09:50:50 +02:00
Claudio Cambra
1283284572 Remove ncAccount usages removed in NCFPK API
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-07-29 16:52:37 +08:00
Claudio Cambra
92f42bc16d
Lock and unlock when accessing sync actions in FileProviderExt to protect against possible races
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-07-23 14:06:29 +08:00
Claudio Cambra
939d67bfcc
Set self as listener for Enumerator in FileProviderExt
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-07-23 14:06:29 +08:00
Claudio Cambra
617ca1a153
Add conformance to NextcloudFileProviderKit's EnumerationListener protocol in FileProviderExt
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-07-23 14:06:28 +08:00
Claudio Cambra
0c78594481
Track sync actions in main FileProviderExt procedures
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-07-23 14:06:28 +08:00
Claudio Cambra
3f3f478f6a
Add method to remove finished sync action in FileProviderExt
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-07-23 14:06:28 +08:00
Claudio Cambra
c189f2952f
Add method to mark action as error sync action in FileProviderExt
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-07-23 14:06:28 +08:00
Claudio Cambra
3e6b20713e
Add method to insert new sync action in FileProviderExt
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-07-23 14:06:28 +08:00
Claudio Cambra
885d9f3566
Add method to report a change in sync state if applicable in FileProviderExt
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-07-23 14:06:28 +08:00
Claudio Cambra
5237822221
Add sets for actions, to be able to track multiple actions
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-07-23 14:06:28 +08:00
Claudio Cambra
e7a164d312 Remove unused urlsession stuff in FileProviderExtension
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-07-19 16:24:21 +08:00
Claudio Cambra
ac6e0d81f6 Implement ChangeNotificationInterface in client interface extension of FileProviderExtension
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-07-19 16:24:21 +08:00
Claudio Cambra
73fde5065d Adapt to remoteInterface changes in NCFPK
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-07-19 16:24:21 +08:00
Claudio Cambra
313f3bdb72 Add NCFPKAppGroupIdentifier in FileProviderExt info plist
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-07-19 16:24:21 +08:00
Claudio Cambra
77f9096538
Set changeobserver as delegate for nkcommon
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:05 +08:00
Claudio Cambra
68370ade88
Add change observer from NCFPK
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:05 +08:00
Claudio Cambra
6a64248ff6
Always signal enumerator after errors to try and recover from what the error might have been
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:04 +08:00
Claudio Cambra
33e2c084a5
Provide NCFPK enumerator with extension domain
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:04 +08:00
Claudio Cambra
7664509e22
Correctly set up NCKit instance with account string
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:04 +08:00
Claudio Cambra
9e7ce1640d
Remove unused components in FileProviderExt
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:04 +08:00
Claudio Cambra
c082c446c1
Fix passing of wrong item into item.modify
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:04 +08:00
Claudio Cambra
dab28f20f4
Improve logging in delete item procedure of FPExt
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:04 +08:00
Claudio Cambra
485b07a805
Use NCFPK item modify method
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:03 +08:00
Claudio Cambra
c9a131736a
Use NCFPK Item.create in createItem
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:03 +08:00
Claudio Cambra
2373cd4dde
Use fetchContents from NCFPK item
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:03 +08:00
Claudio Cambra
3ec18ba1a6
Simplify FileProviderExtension's deleteItem method by leveraging Item's delete method
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:03 +08:00
Claudio Cambra
788fd7f363
Greatly simplify item method of FIleProviderExtension by using item storedItem method
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:03 +08:00
Claudio Cambra
6200cab957
Use new convenience method to get Item for root container from NCFPK
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:03 +08:00
Claudio Cambra
d74d23cedb
Use thumbnail fetching procedure from NCFPK
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:02 +08:00
Claudio Cambra
e8d1afa3df
Adapt to new NextcloudFileProviderKit item nomenclature
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:02 +08:00
Claudio Cambra
913d724254
Make use of NextcloudFileProviderKit materialisedenumerationobserver
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:02 +08:00
Claudio Cambra
2c0688f82b
Use FileProviderItem from NextcloudFileProviderKit
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:02 +08:00
Claudio Cambra
5a774756b6
Use Enumerator in NextcloudFileProviderKit
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:02 +08:00
Claudio Cambra
b9483f0c55
Remove use of all code now available in NextcloudFileProviderKit
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:01 +08:00
Claudio Cambra
3066f58673
Allow NextcloudFilesDatabaseManager to take a specific realmconfig in constructor
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:01 +08:00
Claudio Cambra
2caa43a76d
Database manager does not need to be an NSObject
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:15:01 +08:00
Claudio Cambra
ff9e344810 Move all share fetching logic to FileProviderUIExt
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:11:50 +08:00
Claudio Cambra
145d92e5cb Add method to get an item's server path through FPUIExtensionService
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:11:50 +08:00
Claudio Cambra
e6f20e9498 Remove logging from NextcloudAccount
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:11:50 +08:00
Claudio Cambra
81dc8ce708 Add method to FPUIExtensionServiceSource to get extension account details
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:11:50 +08:00
Claudio Cambra
259a28e33e Add method to convert dictionary to NextcloudAccount
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:11:50 +08:00
Claudio Cambra
02b5a31eae Add method to export NextcloudAccount details to dictionary
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:11:50 +08:00
Claudio Cambra
5b1b87b788 Add FPUIExtensionServiceSource to services published by FileProviderExt
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:11:50 +08:00
Claudio Cambra
9ce3af3de7 Fix visibility of logging in ItemSharesController
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:11:50 +08:00
Claudio Cambra
e15db9b938 Fix protocol used for FPUIExtensionServiceSource
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:11:50 +08:00
Claudio Cambra
6dad778498 Add share fetching routine to FPUIExtensionService
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:11:50 +08:00
Claudio Cambra
07473ac5d9 Add fetch method to itemsharescontroller
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:11:50 +08:00
Claudio Cambra
0feb5da08f Add starter ItemSharesController
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:11:50 +08:00
Claudio Cambra
8982857833 Add starter FPUIExtensionServiceSource
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:11:50 +08:00
Claudio Cambra
dbe8a5f8f2 Add starter FPUIExtensionService protocol
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-17 16:11:50 +08:00
Claudio Cambra
60f116cdd4 Implement eviction capabilities in FileProviderItem
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-03-07 11:51:55 +08:00
Claudio Cambra
1a576a15d6 Log setting change for fast enumeration in ClientCommunicationService
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-03-06 18:46:41 +08:00
Claudio Cambra
bbe48954be Add method to set fast enumeration in client communication service
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-03-06 18:46:41 +08:00
Claudio Cambra
8d3b676558 Add method to get state of fast enumeration setting
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-03-06 18:46:41 +08:00
Claudio Cambra
9a8af68ddc Add lazy var for whether the fastEnumeration value has actually been set in settings
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-03-06 18:46:41 +08:00
Claudio Cambra
a3e1d66707 Use value from config for fastEnumeration when creating enumerator
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-03-06 18:46:41 +08:00
Claudio Cambra
534b3a60d7 Add fastEnumerationEnabled property to config
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-03-06 18:46:41 +08:00
Claudio Cambra
f987bcd97a Add computed property to FileProviderConfig to get and set internal config
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-03-06 18:46:41 +08:00
Claudio Cambra
1fc6014230 Add a starter FileProviderConfig
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-03-06 18:46:41 +08:00
Claudio Cambra
cac263f174 Clean up properties and init/invalidate in FileProviderExtension
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-03-06 18:46:41 +08:00
Claudio Cambra
179a368f9f Add option to do a fast enumeration of changes which ignores new, unexplored folders
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-03-06 18:46:41 +08:00
Claudio Cambra
9946495edb
Replace handling of debug archive creation in clientcommunicationservice with simple retrieval of debug string
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-02-19 22:45:18 +08:00
Claudio Cambra
571b1ca238
Directly provide text file path to logger for debug archive creation
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-02-19 22:45:18 +08:00
Claudio Cambra
70521e95bc
Implement creating debug archive in client communication service
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-02-19 22:45:18 +08:00
Claudio Cambra
1dcfee4087
Add function to File Provider Logger extension to create debug logs file
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-02-19 22:45:17 +08:00
Claudio Cambra
0ddd22ddbb
Add function to retrieve log entries in File provider Logger extension
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-02-19 22:45:17 +08:00
Claudio Cambra
3334b4e49c Do not reconfigure file provider extension account if we are receiving the same details again
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-02-19 22:39:37 +08:00
Claudio Cambra
b22f463ad5 Add explainer to client interface
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-02-19 22:39:37 +08:00
Claudio Cambra
5ed456f30c Implement NSFileProviderServicing in FileProviderExtension
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-02-19 22:39:37 +08:00
Claudio Cambra
6cb71694fd Log extension id sent over XPC publicly
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-02-19 22:39:37 +08:00
Claudio Cambra
2d1e5ba197 Ensure the listener is resumed once the endpoint is created in the extension
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-02-19 22:39:37 +08:00
Claudio Cambra
5f6f7f302a Add extensionAccountId property to ClientCommunicationProtocol
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-02-19 22:39:37 +08:00
Claudio Cambra
ac43369bed Properly implement listener should accept connection in ClientCommunicationService
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-02-19 22:39:37 +08:00
Claudio Cambra
026f082253 Reimplement ClientCommunicationService in Swift
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-02-19 22:39:37 +08:00
Claudio Cambra
dd39991f1c Implement ClientCommunicationProtocol in ClientCommunicationService
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-02-19 22:39:37 +08:00
Claudio Cambra
e763a9d29b Add ClientCommunicationProtocol
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-02-19 22:39:37 +08:00
Claudio Cambra
a2d69fcf7c Keep pointer to FileProviderExtension around in ClientCommunicationService
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-02-19 22:39:37 +08:00
Claudio Cambra
22c176af8a Add starter client communication service
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-02-19 22:39:37 +08:00
Claudio Cambra
7ac5f38178 Cllean up function and method calls in File Provider Extension
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-02-06 11:45:44 +01:00
Claudio Cambra
d707ccc5b3 Clean up file provider extension property declarations and init
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-02-06 11:45:44 +01:00
Claudio Cambra
3928573ff4 Run swift-format on swift code
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-02-06 11:45:44 +01:00
Dimitri Papadopoulos
09521edbac Fix residual typos found by codespell
Signed-off-by: Dimitri Papadopoulos <3234522+DimitriPapadopoulos@users.noreply.github.com>
2023-09-16 20:36:56 +02: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
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
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