Skip to content

feat(home): announcement 'don't show again' + clickable markdown links#17

Merged
SiteRelEnby merged 1 commit into
mainfrom
feat/announcement-dismiss-and-links
Jul 4, 2026
Merged

feat(home): announcement 'don't show again' + clickable markdown links#17
SiteRelEnby merged 1 commit into
mainfrom
feat/announcement-dismiss-and-links

Conversation

@SiteRelEnby

@SiteRelEnby SiteRelEnby commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator

Two web-parity gaps on the home-screen announcement banners.

"Don't show again" (persistent dismiss)

Dismissal was session-only (an in-memory set), so a dismissed announcement came back on the next load. Added a "Don't show again" action that persists the announcement id into the android client-settings dismissed_announcements list (read back on load and unioned with the local set so an optimistic dismiss isn't lost to a racing refresh). Matches web, which stores the same list per client. The X still does a session-only dismiss.

Clickable markdown links in the body

Announcement bodies rendered as plain text. Added InlineMarkdownText - a small inline-only renderer: clickable links (via Compose's LinkAnnotation) plus bold / italic / code / strikethrough. No block markdown (headings, lists, images), so it stays safe in a compact banner. Only http(s) and mailto targets are honoured; anything else (e.g. javascript:) falls through to plain text. This is deliberately not the full SheafMarkdownText renderer, per the ask.

Verification

  • :app:testPlayReleaseUnitTest pass; :app:assemblePlayRelease green through R8.
  • Not device-tested; worth a glance that a link in an announcement opens and that "Don't show again" survives an app restart.

Two web-parity gaps on home-screen announcements:

- Dismissal was session-only (an in-memory set), so a dismissed
  announcement reappeared on the next load. Add a 'Don't show again'
  action that persists the id into the android client-settings
  dismissed_announcements list (read back on load, unioned with the
  local set), matching web; the X still does a session-only dismiss.

- Announcement bodies rendered as plain text. Add InlineMarkdownText, a
  small inline-only renderer (clickable http/https/mailto links plus
  bold/italic/code/strikethrough, no block markdown) and use it for the
  body, so an admin can include a link. Non-http(s)/mailto schemes fall
  through to plain text.
@SiteRelEnby SiteRelEnby merged commit 33f395a into main Jul 4, 2026
1 check passed
@SiteRelEnby SiteRelEnby deleted the feat/announcement-dismiss-and-links branch July 4, 2026 14:10
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