Skip to content

fix(drawer): external site links no longer stop working over time - #17445

Open
about2crash wants to merge 1 commit into
nextcloud:masterfrom
about2crash:fix-drawer-external-links
Open

fix(drawer): external site links no longer stop working over time#17445
about2crash wants to merge 1 commit into
nextcloud:masterfrom
about2crash:fix-drawer-external-links

Conversation

@about2crash

@about2crash about2crash commented Aug 6, 2026

Copy link
Copy Markdown

External link menu items are registered with MENU_ITEM_EXTERNAL_LINK + the link's local database _id. That column is AUTOINCREMENT and the link table is cleared and refilled on every refresh, so the IDs grow without bound. The click handler only accepted an offset of 0–100, so once the IDs passed that window every external link silently stopped responding, no error, and it never recovers.

Dispatch on the menu group the items were registered under, and resolve the link by ID instead of by display name. The latter also fixes two links sharing a display name opening the same URL.

Reproduced with a link at local ID 501 (menu item 612): on master the tap logs Unknown drawer menu item clicked and nothing happens.

🧪 Testing

Verified manually on a device: with a link at local ID 501 in external_links, the drawer entry does nothing on master and opens correctly with this change.

Added DrawerActivityIT#externalLinkWithIdBeyondLegacyRangeIsOpened, which inserts a link at ID 501 and asserts the drawer entry opens ExternalSiteWebView with the link URL.

🖼️ Screenshots

🏚️ Before (master)

record_before.mp4

🏡 After (this PR)

record_after.mp4

🏁 Checklist

  • ⛑️ Tests included
  • 🔙 Backport: maintainers can request one if needed.
  • 📅 Milestone: maintainers can add one if needed.
  • 🌸 PR title is meaningful (if it should be in the changelog: is it meaningful to users?)

🤖 AI (if applicable)

  • The content of this PR was partly or fully generated using AI

External link menu items are registered with MENU_ITEM_EXTERNAL_LINK + the link's local database _id. That column is AUTOINCREMENT and the link table is cleared and refilled on every refresh, so the IDs grow without bound. The click handler only accepted an offset of 0-100, so once the IDs passed that window every external link silently stopped responding.

Dispatch on the menu group the items were registered under, and resolve the link by ID instead of by display name.

Signed-off-by: about2crash <146389368+about2crash@users.noreply.github.com>
Assisted-by: ClaudeCode:claude-opus-5
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.

1 participant