Mobile 1.0.0-beta.25 (beta)

Caution
The Fluxer Flutter mobile client is still in beta so features will be missing or broken.
Pre-release build for TestFlight and Android APK (FCM + OSS).

What's New

  • Added support for connecting to self-hosted instances, by @edeuss
  • Added support for keeping calls going in the background while leaving the app (no ringing from background yet), by @edeuss
  • Added more performance improvements by @M0N7Y5
  • Added toasts to badges, by @Jiralite
  • Added LaTeX / KaTeX code block rendering, by @edeuss
  • Added start of channel welcome messages from desktop, by @M0N7Y5
  • Added support for custom status emojis, by @edeuss
  • Added toast message for copying a code block, by @edeuss
  • Improvements to chat read state tracking and display, by @M0N7Y5
  • Improvements to chat scrolling, by @M0N7Y5
  • Fixed mentions in reply preview area showing the @ symbol, by @Jiralite
  • Fixed scrolling to close unimplemented settings pages, by @Jiralite
  • Fixed centering for communities in collapsed folders, by @Jiralite
  • Fixed profile pictures rendering with solid background colors, by @Jiralite
  • Fixed revealed text in links with unfurled media, by @Jiralite
  • Fixed masked links showing content for message links and channel links, by @Jiralite
  • Fixed system messages not always being indicated correctly, by @Jiralite
  • Fixed display names FluxerTags appearing in profiles, by @Jiralite
  • Fixed user profiles not showing certain fields, by @Jiralite
  • Fixed multi-line strikethrough not displaying properly, by @edeuss
  • Fixed emojis in spoiler tags not displaying correctly, by @edeuss
  • Fixed incorrect parsing of markdown links when visible text is blank, by @edeuss
  • Fixed the count of files being uploaded showing a # instead of a number, by @edeuss
  • Fixed community profile picture setting "Don't show" is not respected in chat, by @edeuss
  • Fixed custom status bottom sheet not showing a custom emoji preview, by @edeuss
  • Fixed markdown alerts escape multi-line code block, by @edeuss

Detailed changes

Features

  • feat: tappable badges (#369) @Jiralite
  • code block add copy toast (@edeuss) (7a0fffb)
  • support custom status emoji (@edeuss) (3e721b4)
  • support LaTeX / KaTeX code block rendering (@edeuss) (26e37b8)
  • hide fluxer tag for everyone is premium (@edeuss) (8bedd05)
  • handle plutonium correctly with limits (@edeuss) (9f32042)
  • add offline account switcher (@edeuss) (a06bf36)
  • show verified badge for official instance (@edeuss) (690969f)
  • show domain on account switcher (@edeuss) (8ee3193)
  • initial support for self-hosted instances (@edeuss) (8b75190)
  • show start-of-channel welcome section (@M0n7y5) (aa2e7a3)
  • load one newer page when a user scroll settles at the bottom (@M0n7y5) (40408be)
  • callkit integration for background call handling (@edeuss) (980ec98)

Fixes

  • fix: cluster group direct message icons everywhere (#390) @Jiralite
  • fix(channel_jump_link): Parity of jump hosts with desktop (#356) @Jiralite
  • fix(user_settings_modal): allow scrolling to close unimplemented settings (#387) @Jiralite
  • fix: show mention indicator in reply preview area (#385) @Jiralite
  • fix: 1-minute TTL for profile caching (#386) @Jiralite
  • fix: consistent profile display name and FluxerTag (#384) @Jiralite
  • fix: proper handling of system and bot (#382) @Jiralite
  • fix: flutter analyze errors (#383) @Jiralite
  • fix: preserve labels for masked channel and message links (#377) @Jiralite
  • fix: only hide unfurled media when message is a single link (#380) @Jiralite
  • fix: remove role colours for backgrounds (#373) @Jiralite
  • fix(guild_navbar): centre communities in collapsed folders (#375) @Jiralite
  • fix: ensure login screens are mutually exclusive (#368) @Jiralite
  • tolerate null billing subscription fields (@M0n7y5) (e253757)
  • alerts escaping code blocks (@edeuss) (b3185a5)
  • show emoji preview (@edeuss) (ab30c1e)
  • display correct user avatar based on profile flag (@edeuss) (5959541)
  • allow cancel inflight attachment sending (@edeuss) (09f2e07)
  • display the correct count of files being uploaded (@edeuss) (32dbdc5)
  • render blank links as normal text (@edeuss) (c745c1b)
  • emojis in spoiler tags not displaying correctly (@edeuss) (b034a2f)
  • correctly support multi-line strikethrough (@edeuss) (2f5b2be)
  • provider issue (@edeuss) (1f22b4c)
  • do not auto open all links (@edeuss) (6739897)
  • preserves current logged in instance (@edeuss) (95bae57)
  • remove debounce and only on continue (@edeuss) (841ef61)
  • check correct path non-official instance (@edeuss) (cfb3029)
  • add logs (@edeuss) (999f2d2)
  • keep unread divider visible after auto-ack (@M0n7y5) (c264c27)
  • open at the latest message to remove scroll jump and runaway load (@M0n7y5) (75be928)
  • prevent scroll jumps and stalls when loading older messages (@M0n7y5) (fc3509e)
  • local background messages (@edeuss) (b56cf89)
  • background entry point (@edeuss) (4982a27)
  • rebuild message list on a reverse list to keep scroll stable (@M0n7y5) (9cdfdbf)
  • trigger newer pagination only within range of the bottom edge (@M0n7y5) (e35e264)
  • don't snap to bottom when pagination reaches the live tail (@M0n7y5) (068d44f)
  • keep scroll stable when appending newer messages (@M0n7y5) (3caf52e)
  • remove processing (@edeuss) (eec0b09)
  • stop scroll-settle re-check from chaining newer messages (@M0n7y5) (0816489)
  • re-check pagination on scroll settle to chain edge loads (@M0n7y5) (acd466f)
  • show passkey errors on the 2FA screen instead of failing silently (@M0n7y5) (7c940f6)
  • surface specific login validation errors instead of a generic one (@M0n7y5) (edf24f2)
  • react to user and member updates in message author display (@M0n7y5) (84651a4)

Other

  • perf(ui): remove Opacity saveLayer from loading spinner dots (@M0n7y5) (ec7f7a0)
  • perf(chat): pause neko sprite animation while off-screen (@M0n7y5) (278cdd0)
  • perf(dm): scope DM list presence to per-row avatar watches (@M0n7y5) (7d0e57d)
  • perf: drop saveLayer for currentColor SVGs via SvgTheme (@M0n7y5) (b7e9cc4)
  • perf(settings): skip settings rebuilds on presence-only user updates (@M0n7y5) (f497659)
  • perf(chat): decode attachment thumbnails and video posters at display size (@M0n7y5) (fbe170a)
  • perf(chat): rebuild neko sprite only on frame change (@M0n7y5) (153011c)
  • perf(chat): hoist message invite and theme regexes to static fields (@M0n7y5) (67714a1)
  • perf(gateway): batch bulk presence writes into one transaction (@M0n7y5) (be3e576)
  • perf(chat): skip message rebuilds on presence-only updates (@M0n7y5) (c406ecc)
  • perf(chat): serve pagination from the drift cache and de-storm unread (@M0n7y5) (1b2f42f)
  • perf(chat): scope message hover overlays and hoist per-item render settings (@M0n7y5) (a2217d2)
  • perf(gateway): batch reaction ADD_MANY into one write and enable debounce flag (@M0n7y5) (30e7110)

Fixed