Commit Graph

402 Commits

Author SHA1 Message Date
Iva Horn
d6db27ad78 fix(file-provider): Fix #8914 by omitting the faulty NSFileProviderRequest argument on enumerator request.
Signed-off-by: Iva Horn <iva.horn@nextcloud.com>
2025-10-23 15:32:29 +00:00
Iva Horn
e8d20eca0d fix(file-provider): Adjusted log level of a less important message to debug.
Signed-off-by: Iva Horn <iva.horn@nextcloud.com>
2025-10-20 10:22:18 +00:00
Iva Horn
7266c66b4e feat: Logging NSFileProviderRequest.
Signed-off-by: Iva Horn <iva.horn@nextcloud.com>
2025-10-20 10:22:18 +00:00
Iva Horn
a445681880 feat: Branded file provider extension SF Symbol.
Signed-off-by: Iva Horn <iva.horn@icloud.com>
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2025-10-15 18:18:48 +02:00
Jyrki Gadinger
90e610934e fix(file-provider): report a different error if database is not ready
As per [the docs for `NSFileProviderReplicatedExtension
item(for:request:completionHandler:)`][1], the system will automatically
retry calling the method if the error is not one of `.notAuthenticated`,
`.serverUnreachable`, or `.noSuchItem`.

From my observations it seems that if the error `.cannotSynchronize` is
returned for the root container (i.e.
`NSFileProviderRootContainerItemIdentifier`), the system/file provider
framework just ends up deleting the newly created sync directory inside
`~/Library/CloudStorage`.  This broke the entry in the Finder sidebar.

After changing the error to `.notAuthenticated` (which is semantically
wrong, but alas), I now could disable/enable the File Provider as often
as I wanted without the Finder sidebar entry to ever break due to the
directory having been removed previously ...  Strange, this.

[1]: https://developer.apple.com/documentation/fileprovider/nsfileproviderreplicatedextension/item(for:request:completionhandler:)#Discussion

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2025-10-15 15:45:58 +00:00
Iva Horn
dea70f985a fix(file-provider): Updated logging calls in extension implementation.
Signed-off-by: Iva Horn <iva.horn@icloud.com>
2025-10-13 10:20:22 +02:00
Iva Horn
f45f8b968d feat(file-provider): Integrated localizations from Transifex.
- Introduced TransifexStringCatalogSanitizer command-line utility.
- Introduced dedicated Transifex CLI configuration file for NextcloudIntegration project.

Signed-off-by: Iva Horn <iva.horn@icloud.com>
2025-10-09 00:37:12 +00:00
Iva Horn
b132745adc fix: Improved one logging call.
Signed-off-by: Iva Horn <iva.horn@icloud.com>
2025-10-07 22:20:40 +02:00
Iva Horn
57fbc2a271 feat: Improved logging of file provider extension implementation.
Signed-off-by: Iva Horn <iva.horn@icloud.com>
2025-10-01 11:56:54 +02:00
Iva Horn
6c5ee7c14a feat: Replaced Unified Logging System with Custom Solution.
- Removed explicit reference to NextcloudKit dependency which implicitly is pulled in already by NextcloudFileProviderKit.
- Consolidated some source code files into their respective view controllers in the file provider UI extension.

Signed-off-by: Iva Horn <iva.horn@icloud.com>
2025-09-24 13:23:28 +02:00
Iva Horn
d55a311ac7 fix: Added clearance of NextcloudKit account error state on injection of credentials.
Signed-off-by: Iva Horn <iva.horn@icloud.com>
2025-09-17 08:15:44 +02:00
Iva Horn
6e2db6f08b feat: Configured NextcloudKit based on file provider domain identifier.
Signed-off-by: Iva Horn <iva.horn@icloud.com>
2025-09-17 08:15:44 +02:00
Iva Horn
3510d685f3 feat: NextcloudKit update and UUID db names.
Signed-off-by: Iva Horn <iva.horn@icloud.com>
2025-09-17 08:15:44 +02:00
Iva Horn
a553dd4d46 fix: Disabled interceptor for authentication attempt.
Signed-off-by: Iva Horn <iva.horn@icloud.com>
2025-09-17 08:15:44 +02:00
Iva Horn
0b2ead8243 feat: Implemented reauthentication in file provider UI extension (#8617).
Signed-off-by: Iva Horn <iva.horn@icloud.com>
2025-09-17 08:15:44 +02:00
copilot-swe-agent[bot]
853d1ab78b feat: implement UUID-based file provider domain identifiers with backward compatibility.
Signed-off-by: Iva Horn <iva.horn@icloud.com>
2025-09-17 08:15:44 +02:00
Jyrki Gadinger
9711bbfdee fix(FileProviderExt): do not report syncing state when trying to delete trash items
Trying to delete items from the trash with the "Allow deletion of items
in Trash" setting unticked would previously result in the sync state
being stuck in the "Syncing" state.

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2025-08-21 17:37:49 +02:00
Iva Horn
a4821ffdc7 fix(l10n): Deleted all AI translations for file provider for one time upload to Transifex to prepare proper community translations.
Signed-off-by: Iva Horn <iva.horn@icloud.com>
2025-08-08 16:00:30 +02:00
copilot-swe-agent[bot]
426ba67ba7 fix(l10): Add proper translations for macOS File Provider extensions
Co-authored-by: i2h3 <142165879+i2h3@users.noreply.github.com>
2025-08-04 16:25:34 +02:00
Nextcloud bot
02f13b851c
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-08-01 09:03:03 +00:00
Iva Horn
c78bd2f2e6 feat(l10n): Set up string catalogs for file provider and file provider UI extensions.
Signed-off-by: Iva Horn <iva.horn@icloud.com>
2025-08-01 09:02:56 +02:00
Claudio Cambra
9fb9dac362 fix(shell_integration/macOS/FileProviderExt): Invalidate change observer when creating a new one
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-07-09 16:07:15 +02:00
Claudio Cambra
1b54177d29 fix(shell_integration/macOS/FileProviderExt): Fix RCO instantiation following NCFPK changes
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-07-09 16:07:15 +02:00
Claudio Cambra
666a089d29 fix(shell_integration/macOS/FileProviderExt): Conform to changes in MaterialisedEnumerationObserver
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-06-17 09:11:59 +02:00
Claudio Cambra
f458de6106 feat(shell_integration/macOS/FileProviderExt): Be more informative when rejecting provided credentials
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-06-02 15:15:32 +02:00
Claudio Cambra
9ff78ac969 feat(shell_integration/macOS/FileProviderExt): Remove fast enumeration settings
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-06-02 15:15:32 +02:00
Claudio Cambra
866cbe3af9 fix(shell_integration/macOS/FileProviderExt): Remove fast enumeration use in enumerator
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-06-02 15:15:32 +02:00
Claudio Cambra
549aaca3e3 feat(shell_integration/macOS/FileProviderExt): Adapt to async stored item fetching from NCFPK 2.1 when handling keep downloaded
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-28 08:52:47 +02:00
Claudio Cambra
51df83bcdb feat(shell_integration/macOS/FileProviderExt): Adapt to async stored item fetching from NCFPK 2.1
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-28 08:52:47 +02:00
Claudio Cambra
87acefedd7 feat(gui/macOS): Use separator that does not break the socket API
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-15 12:10:44 +02:00
Claudio Cambra
e2a6ea518b feat(gui/macOS): Rather than perform back-and-forth for ignore list, just send on setup
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-15 12:10:44 +02:00
Claudio Cambra
b9576bf9c1 feat(shell_integration/macOS/FileProviderExt): Add XPC interface method to set ignore list
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-15 12:10:44 +02:00
Claudio Cambra
82fa85c0c9 feat(shell_integration/macOS/FileProviderExt): Add some debug logging for ignore list receipt
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-15 12:10:44 +02:00
Claudio Cambra
ef180f88ee feat(shell_integration/macOS/FileProviderExt): Await ignored files before proceeding with create/modify/delete
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-15 12:10:44 +02:00
Claudio Cambra
cc4bc8fa98 feat(shell_integration/macOS/FileProviderExt): Pass ignored files matcher when creating/modifying/deleting items
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-15 12:10:44 +02:00
Claudio Cambra
f94ee2142f feat(shell_integration/macOS/FileProviderExt): Parse received ignored files to set up IgnoredFilesMatcher
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-15 12:10:44 +02:00
Claudio Cambra
69ff59d42c feat(shell_integration/macOS/FileProviderExt): Request ignored files list on account setup
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-15 12:10:44 +02:00
Claudio Cambra
ab416896ac
feat(shell_integration/macOS/FileProviderExt): Fix REUSE compliance
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-15 15:04:56 +08:00
Claudio Cambra
867b0fe1f3
feat(shell_integration/macOS/FileProviderExt): Implement handling of keep downloaded action
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-15 15:04:02 +08:00
Claudio Cambra
92b0eb3bb8
feat(shell_integration/macOS/FileProviderExt): Add "Keep Downloaded" related menu actions
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-15 15:04:02 +08:00
Claudio Cambra
008ee941c1
feat(shell_integration/macOS/FileProviderExt): Add basic CustomActions FileProviderExtension extension
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-15 15:04:01 +08:00
Claudio Cambra
c6254b57fb fix(shell_integration/macOS/FileProviderExt): Use NSError-based deletion rejected builder method
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-14 16:51:49 +02:00
Claudio Cambra
8a7fd5651b fix(shell_integration/macOS/FileProviderExt): Make item filename public during rejected deletion
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-14 16:51:49 +02:00
Claudio Cambra
a8bff243df feat(shell_integration/macOS/FileProviderExt): Add ClientCommunicationProtocol method to get/set trash deletion enablement
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-14 16:51:49 +02:00
Claudio Cambra
2c1f4be6a6 feat(shell_integration/macOS/FileProviderExt): Add config entry to check if trash deletion enabled setting has been set
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-14 16:51:49 +02:00
Claudio Cambra
aab2728a84 feat(shell_integration/macOS/FileProviderExt): Prevent deletion of trashed items when config flag is set
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-14 16:51:49 +02:00
Claudio Cambra
70b258df83 feat(shell_integration/macOS/FileProviderExt): Add config setting for preventing deletion of trashed items
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-14 16:51:49 +02:00
Claudio Cambra
a000dd60a7 fix(shell_integration/macOS/FileProviderExt): Add method to acquire user agent in FPUIExtensionService
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-09 17:48:38 +02:00
Claudio Cambra
c064b6a452 fix(macOS): Also send user agent over XPC service
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-09 17:48:38 +02:00
Claudio Cambra
3dbdaaf54c fix(macOS): Send user agent string over File Provider socket along with account details
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2025-05-09 17:48:38 +02:00