Repository navigation
JMAPJolt-v0.18
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
CancellationExceptionbeing 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 (
setExactAndAllowWhileIdlereplaces 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