Skip to content

JMAPJolt-v0.21

Choose a tag to compare

@FalseEnvironment FalseEnvironment released this 08 Aug 15:44
· 68 commits to main since this release

Contacts (new)

  • Address book — New Contacts panel backed by two sources at once: JMAP (JSContact ContactCard) and contacts synced by DAVx5 into the system provider
  • Contact photos — Photos sync as JSContact media data URIs (JMAP) and ContactsContract blobs (DAVx5), and show up in the address book rows, the email list (a known sender's photo beats the domain favicon) and the compose recipient picker
  • Contact editor — Full editor for names, emails, phones, organization, addresses, categories and notes
  • Multi-select — Select several contacts to delete or share at once, with A–Z index letters down the list
  • vCard import/export — New Contacts category in Settings: import .vcf files and export the whole address book
  • Recipient picker — Compose offers a searchable contact picker
  • Backend scope — New "Show" setting: Both / Only JMAP / Only DAVx5. With an "only" choice the All/JMAP/DAVx5 chip bar disappears and the new-contact editor drops the "Save to" picker, saving straight to the pinned backend

Calendar

  • Time format — System default / 24-hour / 12-hour (AM/PM)
  • Time zone — Automatic or an explicit zone
  • Fixed all-day events — Corrected RFC 5545 duration parsing; all-day events now render in their own band instead of distorting the timeline

Search & folders

  • Create folders from the folder editor — Accent "+ Create new folder" row at the bottom of the Edit folders dialog
  • Fixed deleting non-empty folders — Mailbox/set destroy now passes onDestroyRemoveEmails; without it servers refused to destroy any folder still holding mail
  • Restore trashed mail from search — The top-right action now follows the selected email's own origin folder instead of the folder you searched from, so a trashed hit offers "Move to Inbox"; mixed selections apply the right action per email
  • Permanent delete from search — Deleting a hit that already sits in Trash asks for the permanent-delete confirmation, and no longer overwrites the Trash cache with whatever list was on screen
  • Search from other tabs — Typing in the search bar from Settings brings the mail list forward instead of filtering a hidden one.

Accounts & login

  • App passwords — Supported, with typed auth errors that tell wrong credentials apart from server and network failures
  • Account section in Settings — Profile row (avatar, nickname, address) with "Edit name and avatar" and "Add account", mirroring the drawer; the account color dot and swatch only appear with 2+ accounts
  • Floating-label outlined inputs — Login and add-account fields redesigned, theme-aware across all themes

UI

  • Settings spacing — Row dividers removed in favor of uniform 10dp spacing

Security

  • Hardened vCard import — Imported PHOTO payloads capped at 5 MB of base64, and .vcf files read through a bounded reader that rejects anything past 20 MB instead of slurping the stream into memory
  • Export cleanup — Previously shared .vcf files are cleared from the cache directory before writing a new one, so exported contact data doesn't linger on disk
  • HTML sanitizer fix — The unquoted on*-handler strip regex now allows whitespace around =, closing an onclick =value bypass

Compatibility

  • 32-bit ARM devices — New armeabi-v7a APK alongside the existing arm64-v8a one; pick the file matching your phone