Skip to content

Feature/deep link launcher support#6207

Merged
mahibi merged 8 commits into
masterfrom
feature/deep-link-launcher-support
May 15, 2026
Merged

Feature/deep link launcher support#6207
mahibi merged 8 commits into
masterfrom
feature/deep-link-launcher-support

Conversation

@mahibi
Copy link
Copy Markdown
Collaborator

@mahibi mahibi commented May 15, 2026

copied commits from #5664 to rebase on master and fix conflicts and try to merge for RC1

Thanks to https://github.com/angrymuesli !

🏁 Checklist

  • ⛑️ Tests (unit and/or integration) are included or not needed
  • 🔖 Capability is checked or not needed
  • 🔙 Backport requests are created or not needed: /backport to stable-xx.x
  • 📅 Milestone is set
  • 🌸 PR title is meaningful (if it should be in the changelog: is it meaningful to users?)

@mahibi mahibi added this to the 24.0.0 milestone May 15, 2026
@mahibi mahibi force-pushed the feature/deep-link-launcher-support branch from 4b65b08 to 28dfc26 Compare May 15, 2026 13:42
angrymuesli and others added 8 commits May 15, 2026 16:21
- Add custom URI scheme (nctalk://conversation/{token}) for opening
  conversations from external launchers like KISS
- Add HTTPS deep link support for /call/{token} URLs (fixes #847)
- Add dynamic shortcuts for favorite/recent conversations
- Add "Add to home screen" menu option in conversation long-press dialog
- New DeepLinkHandler utility for parsing deep link URIs
- New ShortcutManagerHelper utility for managing conversation shortcuts

Signed-off-by: angrymuesli <github.visibly626@slmails.com>
Address maintainer feedback and improve code quality:

- Replace nctalk:// with nextcloudtalk:// custom URI scheme
- Remove HTTPS deep links (not feasible for self-hosted domains)
- Add token validation (alphanumeric, 4-32 chars)
- Fix server URL matching to use proper host comparison
- Handle null user.id gracefully in ShortcutManagerHelper
- Manage RxJava disposables to prevent memory leaks
- Add lifecycle checks before UI operations
- Fix generic exception handling

URI format: nextcloudtalk://[user@]host/[base/]call/token

Signed-off-by: angrymuesli <github.visibly626@slmails.com>
- Align "Add to home screen" menu icon and text padding with other
  bottom dialog items (use standard_dialog_padding consistently)
- Disable shortcuts when a conversation is deleted so pinned shortcuts
  show "conversation no longer exists" instead of broken navigation
- Use nextcloudtalk:// deep link URIs in shortcuts instead of bundle
  extras to fix multi-account navigation bug where switching accounts
  via shortcut would show conversation list instead of the conversation

Signed-off-by: angrymuesli <github.visibly626@slmails.com>
…-stack

- Disable shortcuts when deleting or leaving a conversation from
  ConversationInfoActivity (previously only handled in bottom dialog)
- Fix back-stack for deep link navigation: open ConversationsListActivity
  before ChatActivity so pressing back shows the correct user's
  conversation list instead of stale data from a previous account

Signed-off-by: angrymuesli <github.visibly626@slmails.com>
Upstream migrated the conversation bottom dialog to a Compose
ModalBottomSheet. Adapt our shortcut features to the new architecture:

- Add AddToHomeScreen action to ConversationOpsAction sealed class
- Add "Add to home screen" menu item in ConversationOperationsSheet
- Wire handler in ConversationsListActivity.handleConversationOpsAction
- Fix back-stack: pass KEY_INTERNAL_USER_ID to ConversationsListActivity
  via intent so it reads the correct user from DB instead of stale cache

Signed-off-by: angrymuesli <github.visibly626@slmails.com>
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
solution is to use singleTask for MainActivity

steps to reproduce:
1. have an app instance opened
2. go to another app that contains the deep link & click it

without this fix:
another talk app instance is opened

with this fix:
the existing app instance is opened

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
@mahibi mahibi force-pushed the feature/deep-link-launcher-support branch from 0b563cc to 483a46e Compare May 15, 2026 14:21
@mahibi mahibi merged commit 7d75712 into master May 15, 2026
12 of 17 checks passed
@mahibi mahibi deleted the feature/deep-link-launcher-support branch May 15, 2026 14:26
@github-actions
Copy link
Copy Markdown
Contributor

APK file: https://github.com/nextcloud/talk-android/actions/runs/25922943364/artifacts/7021634613
To test this change/fix you can simply download above APK file and install and test it in parallel to your existing Nextcloud app.
qrcode (please click on link to get QR code displayed)

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.

3 participants