Commit Graph
312 Commits
Author SHA1 Message Date
Linus Rath 04ff8728da Merge branch 'fx/files' into feat/stalwart-1.0 2026-10-29 03:26:03 +01:00
Linus Rath 4a56e825e4 fix: work out where trashed items came from once per listing instead of once per row 2026-10-29 03:13:31 +01:00
Linus Rath 9d1337bf71 Merge branch 'fx/push' into feat/stalwart-1.0 2026-10-29 03:12:56 +01:00
Linus Rath d908f95fd7 fix: refuse .Trash as a name at the top of Files, where it would become the trash 2026-10-29 03:10:35 +01:00
Linus Rath d92a2ca835 fix: renew push for every signed-in account and show each account's push state in the notification settings 2026-10-29 02:57:24 +01:00
Linus Rath 9ccb62286e fix: show a plain new-mail notification instead of another login's message when two logins share a JMAP account id 2026-10-29 02:51:24 +01:00
Linus Rath 65f00640ba fix: mark a message read when the notification's Delete moves it to Trash and the delete action says so #86 2026-10-29 02:42:00 +01:00
Linus Rath 77327ea856 fix: never patch or judge another client's push subscription that reuses this device's subscription id 2026-10-29 02:40:40 +01:00
Linus Rath ce47c73f33 fix: keep extending push in the background after the app refreshed the subscription at launch 2026-10-29 02:37:52 +01:00
Linus Rath 388f46b5b9 fix: let the composer send and save again in the account it was opened in 2026-10-29 02:36:09 +01:00
Linus Rath d3d28d551e fix: show the relay push still goes through after the mail server refused a new one 2026-10-29 02:35:36 +01:00
Linus Rath 867ef20e51 Merge branch 's10/mail' into feat/stalwart-1.0 2026-10-29 02:34:22 +01:00
Linus Rath db47162367 fix: register with the previous push relay again when the mail server refuses a new one 2026-10-29 02:33:11 +01:00
Linus Rath 93ea948045 fix: keep the working push registration when a re-register at the subscription limit moves to another relay 2026-10-29 02:31:06 +01:00
Linus Rath 7c91418336 feat: keep deleted files in a Files trash with Restore, Delete permanently and Empty trash 2026-10-29 02:30:36 +01:00
Linus Rath 3047d5c495 Merge branch 's10/push' into feat/stalwart-1.0 2026-10-29 02:22:54 +01:00
Linus Rath 8893a9e21e Merge branch 's10/auth' into feat/stalwart-1.0 2026-10-29 02:22:07 +01:00
Linus Rath 9daa3441c8 fix: keep a composer left open across an account switch from saving or deleting drafts in the other account 2026-10-29 02:15:14 +01:00
Linus Rath 7c495d03ab fix: let files in a shared folder be renamed and deleted on Stalwart 1.0, which sends rights for folders only 2026-10-29 02:11:28 +01:00
Linus Rath 15171637cd fix: keep the own and a group's scheduled mail apart when their ids are the same 2026-10-29 02:10:26 +01:00
Linus Rath 9804b49979 fix: keep push working when the app isn't opened for a week 2026-10-29 02:08:10 +01:00
Linus Rath 1456e15d5c fix: keep accounts signed in when Stalwart 1.0 rotates the refresh token 2026-10-29 02:07:46 +01:00
Linus Rath 6ffd0473e5 fix: sign in through the server's own sign-in page on Stalwart 1.0 2026-10-29 02:07:46 +01:00
Linus Rath 96ef85159b fix: sign in with password and two-factor code on Stalwart 1.0 2026-10-29 02:07:36 +01:00
Linus Rath 4ec2ccac11 fix: say the mail server refuses push relays that are not on a public domain 2026-10-29 02:03:24 +01:00
Linus Rath 18b8aa096f fix: send writes in shared folders to the account that holds them and offer the ones its rights allow 2026-10-29 02:01:47 +01:00
Linus Rath 20be110537 fix: keep the device sync push types when a subscription write fails for another reason 2026-10-29 02:00:50 +01:00
Linus Rath 913b37661f fix: send the quoted inline images along with replies and forwards 2026-10-29 01:53:59 +01:00
Linus Rath d2bb479ac6 fix: keep inline images of drafts and sent mail on Stalwart 1.0 2026-10-29 01:53:57 +01:00
Linus Rath df4cb7688d fix: offer only the vacation and favicon settings the app has in the settings search 2026-10-29 01:37:46 +01:00
Linus Rath f1db6b488a Merge branch 'main' into feat/stalwart-1.0 2026-10-29 01:30:03 +01:00
Linus Rath f358d60584 fix: place calendar events at their clock time on DST change days 2026-10-25 14:18:45 +01:00
Linus Rath b4331a9bf9 feat: sign in with an access token 2026-10-25 12:14:30 +01:00
Linus Rath 8303ff769f feat: let the iOS notification extension reach the active account without push setup 2026-10-22 22:53:42 +02:00
Linus Rath f62849d1fe feat: turn on push notifications on iOS through the relay's APNs transport 2026-10-22 22:53:42 +02:00
Linus Rath 2618680b21 feat: keep iOS credentials where a notification extension can read them 2026-10-22 22:53:42 +02:00
Linus Rath 533f176e88 test: time each module's evaluation at start-up in builds made for the performance harness 2026-10-22 22:04:29 +02:00
Linus Rath 0109273037 fix: start typing in the message body when the empty space under it is tapped 2026-10-22 22:04:29 +02:00
Linus Rath e06d92d88f fix: open the photo, camera and file pickers from the compose attach sheet on ios 2026-10-22 22:04:28 +02:00
Linus Rath 42e89122bd test: mark where the time goes when a message opens 2026-10-22 22:04:28 +02:00
Linus Rath bdade8503d test: mark how long each persisted cache takes to load 2026-10-22 22:04:28 +02:00
Linus Rath 57ca1c8083 test: log timing marks for the performance harness when launched with -perfMarks 2026-10-22 22:04:28 +02:00
Linus Rath 341cdb0e61 feat: build a Google Play bundle alongside the GitHub APK
The app now has two product flavors. `github` is the sideloaded APK as
before, with the same package name and its in-app updater. `play` is a
bundle for Google Play as `org.bulwarkmail.mobile`, without the updater
or the installer permission, since Play forbids apps updating themselves.

- `release-android.yml` builds the Play bundle in a second job, checks
  its signer, package name and permissions, and keeps it as an artifact.
  With `PLAY_SERVICE_ACCOUNT_JSON` set it uploads it to internal testing.
- The Play flavor uses the new Firebase project; the GitHub flavor keeps
  the old one until the app re-registers its token when it changes.
- Widget clicks and the device-sync account type follow the package name.
- Photos come from the system picker without asking for media access,
  and the unused microphone permission from expo-camera is removed.
- A manual workflow run without a tag no longer replaces the APK of the
  latest release.
2026-10-20 12:56:44 +02:00
Linus Rath 5f5ffdaddb feat: mute notifications for single folders or whole accounts #78 2026-10-19 13:11:12 +02:00
Linus Rath 2b486cb1ef fix: show tags with no local definition in the message header, as the list does #79 2026-10-19 13:02:29 +02:00
Linus Rath d22fb8d5d0 feat: open the files inside ZIP archives and attached messages 2026-10-16 19:39:57 +02:00
Linus Rath 56d826c508 test: cover how the PDF preview reports protected and unreadable files 2026-10-16 19:24:19 +02:00
Linus Rath e5492b89c8 feat: show PDFs in the app on Android 2026-10-16 19:23:17 +02:00
Linus Rath 11e74042e2 fix: hand files with a generic type to other apps by the type their name implies 2026-10-16 19:11:50 +02:00
Linus Rath 95580b84ea feat: play video and audio, and show SVG, HTML and Markdown files in the preview 2026-10-16 19:11:24 +02:00