Skip to content

JMAPJolt-v0.18

Choose a tag to compare

@FalseEnvironment FalseEnvironment released this 27 Jun 09:26
· 113 commits to main since this release

Calendar widget, threading improvements, notification reliability and security hardening.

Calendar Widget

  • Agenda widget — Added a home-screen widget displaying upcoming calendar events
  • Auto-refresh — Widget automatically refreshes 30 minutes after an event ends so past events disappear without manual action
  • Tap navigation — Tapping a widget event navigates directly to the related email

Threading

  • Subject-based threading — Replies and forwards (Re:/Fwd:) now group under the same conversation even when the server assigns different thread IDs
  • Paged expansion — Long threads expand page by page instead of loading all messages at once

Notifications & Reliability

  • Battery optimization prompt — App now requests exemption from battery optimization on first sync so OEM battery killers cannot terminate the background service
  • SSE streaming fix — Push notification service now correctly receives server-sent events in the background; the previous implementation buffered the stream and never delivered events
  • SSE wakeup fix — Push notification service now restarts correctly when the device is in deep sleep
  • SSE reconnect fix — SSE loop no longer permanently stops for an account after a transient network error; retries with exponential backoff instead
  • Per-email notifications — Each new email now appears as a separate notification; multiple arrivals accumulate instead of replacing each other
  • Notification sender name — Notification title shows a friendly sender name (display name, or the domain label when the local-part is generic
  • Notification body — Subject line (Re:/Fwd: prefixes stripped) followed by the message body; forwarded headers, quoted lines, leaked CSS and URLs are removed from the preview
  • WorkManager interval corrected — Fallback polling interval corrected to 15 minutes

Settings & UI Refinements

  • Debug mode toggle — Hidden switch in Settings → Information shows/hides the debug status bar
  • Improved debug messages — Status bar messages now include [HH:mm:ss] timestamps, folder name and email count at a glance
  • Theme-aware switch effects — Debug mode toggle ripple and aura effects follow the selected accent color
  • Favicon confirmation — Favicon toggle now asks for confirmation before enabling, explaining the external DuckDuckGo service used

Performance

  • APK size — Reduced ~36% via R8 minification and resource shrinking
  • Memory — Favicons downsampled to max 96px to reduce memory usage
  • Build — Cache and parallel compilation enabled for faster build times

Bug Fixes

  • Fixed CancellationException being swallowed in sync worker and JMAP client, causing stuck retry chains
  • Fixed crash on fast email swipe gesture (null pointer dereference)
  • Fixed SSE service restart alarm firing late under Doze mode (setExactAndAllowWhileIdle replaces inexact alarm)
  • Fixed SSE service not restarting when killed while the app was backgrounded

Security

  • URL validation now checks port matching in addition to scheme and host
  • Push notifications on lock screen no longer show email content preview
  • Account email address redacted from debug logs