Skip to content

feat: Improve ShareExtension UX - #2780

Merged
Ivansss merged 27 commits into
mainfrom
feat/noid/improve-shareextension-ux
Oct 26, 2026
Merged

Ivansss merged 27 commits into
mainfrom
feat/noid/improve-shareextension-ux

Conversation

@SystemKeeper

Copy link
Copy Markdown
Collaborator

Trying again, lost the original one to githubs 500...

Before we did uploading and sharing completely synchronously. To have a better UX, we

  • Keep the probing synchronously
  • Put the uploading of the files on a background URLSession (so it is done without extension or app running)
  • The background URLSession still calls delegates, either in the ShareExtension, in case it is still running, or on the main app (so we need to handle both cases)
  • Only on the last file delegate (in case multiple are shared) we share the files to the conversation. This keeps the ordering and caption. It would be better with Add bulk attachment sharing endpoint spreed#19946 of course.
  • If something fails in the background, we show a local notification.
  • Opening the local notification opens the conversation and shows the share dialog to retry sharing.
  • Having multiple failed attempts from different shares (so different conversation and/or different upload group) is something we might expand on later, but that is something I would not expect to happen too often

🤖 AI (if applicable)

  • The content of this PR was partly or fully generated using AI (N/A)

Assisted-by: ClaudeCode:claude-opus-5.5
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Assisted-by: ClaudeCode:claude-opus-5.5
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Assisted-by: ClaudeCode:claude-opus-5.5
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Assisted-by: ClaudeCode:claude-opus-5.5
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Assisted-by: ClaudeCode:claude-opus-5.5
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Assisted-by: ClaudeCode:claude-opus-5.5
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
@SystemKeeper
SystemKeeper requested a review from Ivansss October 22, 2026 16:06
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Assisted-by: ClaudeCode:claude-opus-5.5
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Assisted-by: ClaudeCode:claude-opus-5.5
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Assisted-by: ClaudeCode:claude-opus-5.5
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Assisted-by: ClaudeCode:claude-opus-5.5
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Assisted-by: ClaudeCode:claude-opus-5.5
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Assisted-by: ClaudeCode:claude-opus-5.5
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Assisted-by: ClaudeCode:claude-opus-5.5
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Assisted-by: ClaudeCode:claude-opus-5.5
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Assisted-by: ClaudeCode:claude-opus-5.5
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Assisted-by: ClaudeCode:claude-opus-5.5
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Assisted-by: ClaudeCode:claude-opus-5.5
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Assisted-by: ClaudeCode:claude-opus-5.5
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Assisted-by: ClaudeCode:claude-opus-5.5
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
Assisted-by: ClaudeCode:claude-opus-5.5
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
@Ivansss
Ivansss merged commit d0bdff3 into main Oct 26, 2026
10 checks passed
@Ivansss
Ivansss deleted the feat/noid/improve-shareextension-ux branch October 26, 2026 17:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants