fix(drawer): external site links no longer stop working over time - #17445
fix(drawer): external site links no longer stop working over time#17445about2crash wants to merge 1 commit into
Conversation
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
|
Hello there, We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process. Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6 Thank you for contributing to Nextcloud and we hope to hear from you soon! (If you believe you should not receive this message, you can add yourself to the blocklist.) |
External link menu items are registered with
MENU_ITEM_EXTERNAL_LINK+ the link's local database_id. That column isAUTOINCREMENTand 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 clickedand 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 opensExternalSiteWebViewwith the link URL.🖼️ Screenshots
🏚️ Before (master)
record_before.mp4
🏡 After (this PR)
record_after.mp4
🏁 Checklist
🤖 AI (if applicable)