Repository navigation
feat: rebuild the Share Extension with SwiftUI - #4430
Merged
Merged
Conversation
Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Host Share sources in app Debug builds with SHARE_PREVIEWS and exclude them from Release builds. Gate preview code and document the required scheme. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Persist the last three successful upload destinations per account and validate folders before selection. Add unit tests for recent destination storage. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Require server capabilities before browsing or uploading, with loading states and retry support. Fall back to usable text when other shared representations fail, including attributed text, and add import regression tests. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Centralize account readiness checks and pass capabilities explicitly through upload preparation and staging. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Distinguish recent-folder selection from tree selection, streamline the folder and file lists, and show a pluralized file count on the upload button. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Refresh folders asynchronously and consolidate share status indicators into a single prioritized view. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Replace the account picker sheet with a menu showing avatars and account aliases. Add cached Quick Look thumbnails with file-type icon fallbacks, and enlarge file and folder rows. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Block network actions while offline and retry loading on reconnect. Adapt the Share extension to compact landscape layouts and show loading progress beside the account menu. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Place the folder header and upload button across both columns, let the file list fill available height, and round selected folder highlights. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Add an explicit cancel action and refine folder label colors and selection padding. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Show favorite folders first with accessible star badges, and scale file thumbnails to fill their frames. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Process only directories without replacing cached file metadata. Refine landscape layout, cap Dynamic Type scaling, and show conflict checks in the upload button. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Show errors inline with retry or acknowledgment actions, and block uploads while the destination is loading or has failed. Label recent and all folders, and use English (US) for previews and debug launches. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Delete obsolete UIKit sources and storyboard, remove their Xcode project references, and drop the unused animated GIF bridging import. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Remove unused sources, resources, and package dependencies from the Share target. Refresh README guidance for SPDX headers, Xcode setup, and test servers. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
marinofaggiana
marked this pull request as ready for review
October 31, 2026 07:32
Initialize the folder browser before fetching server capabilities, then refresh folders once capabilities load. Show progress or errors while the share view initializes. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Collaborator
Collaborator
This screen seems too complicated. No need for it IMO.
Dropbox does it like this and personally I'm a big fan. Really simple. @kra-mo @jancborchardt @nimishavijay what do you think? |
Preserve folder content during account switches and select and reveal newly created folders. Unify loading feedback, keep file extensions visible, and strip bidirectional controls from displayed filenames. Tie folder dialog validation to the text field lifetime to avoid retaining alerts. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Clear pending uploads and authentication state when no account is available, and suppress upload UI updates after cancellation. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Derive account and folder readiness from existing state, keep upload data local, and silently remove unavailable recent folders. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Strengthen rich-text sharing coverage to verify the original RTF data is preserved. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Keep conflict actions visible below the file list, clarify button labels, and reuse a shared upload button. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Member
Author
|
@mpivchev pls review |
Present the passcode within the Share panel and start biometrics after presentation completes. Add the Face ID usage description and resume authentication after upload confirmation is dismissed. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Provision passcode test accounts from launch environment credentials in debug builds, while keeping browser authentication as the default for other UI tests. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Increase the test job timeout to 60 minutes and the Xcode test timeout to 45 minutes. Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Run the presented-sheet passcode test once to validate the timeout. Assisted-by: Codex:gpt-6 Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Assisted-by: Codex:gpt-6 Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Replaces the legacy Share Extension with a new SwiftUI interface and revised input preparation, account selection, and upload conflict handling.
Adds unit tests for input loading, conflict naming, and recent destinations. Device testing and broader validation are still ongoing.
🤖 AI