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