Skip to content

Improved file provider switch user experience - #10354

Merged
i2h3 merged 1 commit into
masterfrom
i2h3/fix/file-provider-switch-ux
Jul 16, 2026
Merged

Improved file provider switch user experience#10354
i2h3 merged 1 commit into
masterfrom
i2h3/fix/file-provider-switch-ux

Conversation

@i2h3

@i2h3 i2h3 commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

Makes the macOS File Provider and classic sync folders (FinderSync) mutually exclusive at the app level, since a single File Provider domain deactivates the FinderSync extension system-wide.

Key changes

  • Single app-level Enable File Provider switch in General settings; the per-account File Provider panel is removed.
  • File Provider mode on → every account (existing and later-added) gets a domain; off → all domains removed. Fresh installs default to File Provider; existing classic-only deployments stay classic.
  • Enabling discards all classic sync-folder connections (local files kept on disk); disabling removes domains and does not recreate classic folders. Both directions require explicit confirmation.
  • Startup reconciliation dialog for mixed deployments: Keep File Provider / Keep classic sync folders / Decide later (re-prompts until resolved).
  • The account page's "Classic sync" panel is hidden while File Provider mode is on (with a conflict banner + Resolve… while classic folders still exist), and its E2E section shows "The File Provider extension does not support end-to-end encryption yet."
  • Account wizard follows the global mode (skips folder setup when on) and cancels itself if the mode is toggled while it is open.
  • Hardening: domain-add failures are now propagated (no more silent success), and FolderMan::addFolder refuses classic folders while the mode is on.

Manual test cases

  1. Fresh install: enable → no folders, no confirmation folder-list; add account via wizard → sync-options step skipped, domain created; second account → domain created.
  2. Enable with classic folders: confirmation lists affected accounts → Cancel leaves everything, switch snaps back; Enable → domains created, classic connections removed, local files kept, FinderSync badges gone, "Classic sync" panels hidden.
  3. Disable: confirmation → domains removed, nothing recreated, "Classic sync" panel + Add Folder Sync Connection return. Dirty-data variant: unsynced edit first → "Unsynchronized Content" + preserved folder revealed.
  4. Switch UX: switch disabled during the operation; rapid double-click harmless; cancelling a confirmation reverts the switch.
  5. Mixed-deployment update: reconciliation dialog appears → verify all three buttons; Decide later shows the account banner and re-prompts next launch; kill app right after Keep File Provider → re-prompts (crash recovery).
  6. Migration: existing per-account-FP deployment → stays on File Provider, no dialog; classic-only deployment → stays classic.
  7. New account while mode on: wizard skips sync options and provisions a domain; toggling the switch while the wizard is open cancels the wizard.
  8. E2E section: with File Provider on, every account page shows the "not supported yet" note (including servers without the e2e app); with File Provider off, the normal "set up encryption" prompt appears only where the server supports e2e.
  9. Failure path: force a domain-add failure → classic folders left intact, warning lists failed accounts, retried/re-prompted next launch.
  10. Platform gating: macOS 13 Ventura → switch hidden, classic available; Windows/Linux and non-File-Provider builds → unchanged.

Checklist

AI (if applicable)

Screenshots

Description Before After
General Settings Bildschirmfoto 2026-07-16 um 13 40 25 Bildschirmfoto 2026-07-16 um 12 04 14
File Provider Account Bildschirmfoto 2026-07-16 um 13 43 29 Bildschirmfoto 2026-07-16 um 12 04 05
Sync Folder Account Bildschirmfoto 2026-07-16 um 13 43 15 Bildschirmfoto 2026-07-16 um 12 05 22
Server lacks E2EE Capability See sync folder account (section is omitted) Bildschirmfoto 2026-07-16 um 12 05 25

@i2h3 i2h3 added this to the 34.0.0 milestone Jul 13, 2026
@i2h3 i2h3 self-assigned this Jul 13, 2026
@i2h3 i2h3 added os: 🍎 macOS Apple macOS, formerly also known as OS X feature: ☁️ GUI System tray icon and menu. feature: 🔄 sync engine feature: 📁 file provider macOS File Provider Extension, more general also known as virtual file system. labels Jul 13, 2026
@github-project-automation github-project-automation Bot moved this to 🧭 Planning evaluation (don't pick) in 💻 Desktop Clients team Jul 13, 2026
@i2h3 i2h3 moved this from 🧭 Planning evaluation (don't pick) to 🏗️ In progress in 💻 Desktop Clients team Jul 13, 2026
@i2h3
i2h3 marked this pull request as draft July 13, 2026 09:47
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
1 Security Hotspot
75.9% Coverage on New Code (required ≥ 80%)
C Reliability Rating on New Code (required ≥ A)
D Security Rating on New Code (required ≥ A)
300 New Code Smells (required ≤ 0)
1 New Bugs (required ≤ 0)
D Maintainability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

💡 Need a hand with PR review? Try Gitar by Sonar!

@i2h3
i2h3 force-pushed the i2h3/fix/file-provider-switch-ux branch 4 times, most recently from 1a589f1 to 53bab0f Compare July 15, 2026 13:50
@i2h3
i2h3 marked this pull request as ready for review July 16, 2026 10:02
@i2h3
i2h3 requested a review from claucambra as a code owner July 16, 2026 10:02
Signed-off-by: Iva Horn <iva.horn@nextcloud.com>
@i2h3
i2h3 force-pushed the i2h3/fix/file-provider-switch-ux branch from 53bab0f to 022a5c4 Compare July 16, 2026 10:02
@github-actions

Copy link
Copy Markdown
Contributor

Artifact containing the AppImage: nextcloud-appimage-pr-10354.zip

Digest: sha256:51abd7504466b07f55275685415916451f9866b36b69d5a5c524e22181cf9627

To test this change/fix you can download the above artifact file, unzip it, and run it.

Please make sure to quit your existing Nextcloud app and backup your data.

@i2h3

i2h3 commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator Author

/backport to stable-34.0

@i2h3
i2h3 merged commit 2e4fabb into master Jul 16, 2026
19 of 21 checks passed
@github-project-automation github-project-automation Bot moved this from 🏗️ In progress to ☑️ Done in 💻 Desktop Clients team Jul 16, 2026
@i2h3
i2h3 deleted the i2h3/fix/file-provider-switch-ux branch July 16, 2026 11:53
@mgallien mgallien modified the milestones: 34.0.0, 35.0.0 Jul 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature: 🔄 sync engine feature: ☁️ GUI System tray icon and menu. feature: 📁 file provider macOS File Provider Extension, more general also known as virtual file system. os: 🍎 macOS Apple macOS, formerly also known as OS X

Projects

Status: ☑️ Done

Development

Successfully merging this pull request may close these issues.

2 participants