Skip to content

Releases: JUhalt/thunderbird-android

ThunderWren Wear OS Prototype v0.1.0-beta8

Choose a tag to compare

@JUhalt JUhalt released this 03 Oct 15:34
2b56595

ThunderWren v0.1.0-beta8 🐦⚡

Two small fixes from the pre-submission audit. Nothing new to learn; both apps changed, so update both.

🔒 Mark all as read only reaches folders the watch can see

The phone now checks that a folder is one it shows on the watch before marking everything in it as read. Hidden folders, Drafts and the Outbox can't be marked from the watch, even by a request that names them directly.

🗣️ Clearer screen reader label in folders

In a folder, the name at the top says "Back to the folder list" to screen readers instead of "Switch mailbox", which is what it does.

🧪 Try it

  1. git fetch --tags && git checkout v0.1.0-beta8, or pull main.
  2. Run app-thunderbird with fullDebug on your phone, and app-thunderwren with optimized on your watch.
  3. Open a folder and mark all as read: it should work as in beta7. With TalkBack on, focus the folder name at the top to hear the new label.

The watch app reports version 0.1.0-beta8 at the bottom of its settings.


Built with AI assistance (Claude Code) and tested by the maintainer on a Pixel 10 Pro Fold and Pixel Watch 5. AI-generated code is held to the same review standards as any other code, following AGENTS.md.

ThunderWren Wear OS Prototype v0.1.0-beta7

Choose a tag to compare

@JUhalt JUhalt released this 03 Oct 13:24
1dcf88f

ThunderWren v0.1.0-beta7 🐦⚡

Folders on the watch. This beta adds the last open item on the list, browsing folders other than the inbox. It also settles the other one: ThunderWren won't get a standalone mode, and the README and RFC now explain why. Both the phone app and the watch app changed, so update both.

📁 Folders

In the mailbox list (tap the mailbox name at the top of the inbox), a new Folders section has one button per account. Tap one to see that account's folders.

  • The same folders as the phone. They're in the same order with the same names, and show unread counts. Drafts and the Outbox stay on the phone, since drafts are written and sent there.
  • A folder works like an inbox. Open messages, swipe to archive or delete, reply, and mark everything in the folder as read.
  • Sent shows who messages went to. Like the phone, messages in the Sent folder show "To: …" instead of your own name. Replying to one replies to its recipients.
  • Only what you open is sent. The phone sends a folder when you open it, and the watch keeps it in memory only. Your inboxes still update on their own as before.
  • No double archiving. Messages in the Archive folder don't offer Archive. Thunderbird would silently skip them, so the phone now says so instead of pretending it worked.

The demo mailbox has folders too: Inbox, Sent, Archive, Trash, and a folder of each account's own. In the demo, archiving moves a message to Archive, and deleting moves it to Trash.

➖ Standalone mode: decided against

A watch that syncs mail by itself would need your passwords and its own copy of the mail engine. It would also sync the same mail as your phone, at the cost of the watch's battery. ThunderWren keeps the phone in charge instead. When your watch is away from your phone but both are online, Wear OS can still reach the phone over Wi-Fi or mobile data. The RFC has the details.

🖼️ A refreshed project page

The README now shows a screenshot next to each feature, all rendered from the current watch app with the demo mailbox.

🧪 Try it

  1. git fetch --tags && git checkout v0.1.0-beta7, or pull main.
  2. Run app-thunderbird with fullDebug on your phone, and app-thunderwren with optimized on your watch. The phone app needs updating too, because it now answers the watch's folder requests. An older phone app makes the watch say "Update Thunderbird on your phone to do this from your watch".
  3. No phone? Tap Try the demo on the watch, or turn on Settings → Demo mailbox.

The watch app reports version 0.1.0-beta7 at the bottom of its settings (0.1.0-beta7-optimized for the optimized build).


Built with AI assistance (Claude Code) and tested by the maintainer on a Pixel 10 Pro Fold and Pixel Watch 5. AI-generated code is held to the same review standards as any other code, following AGENTS.md.

ThunderWren Wear OS Prototype v0.1.0-beta6

Choose a tag to compare

@JUhalt JUhalt released this 02 Oct 16:06
bf0366d

ThunderWren v0.1.0-beta6 🐦⚡

Simpler settings and a faster way to test. This beta follows up on testing beta5 on a Pixel 10 Pro Fold with a Pixel Watch 5. Only the watch app changed.

👆 Simpler swipe settings

The four swipe combinations are now two settings. In Settings, tap a row to change it:

  • Swipe left: Archive or Delete.
  • Swipe right: Go back (the usual Wear OS gesture), Archive, or Delete.

If you give swiping right an action, swipe from the very left edge of the screen to go back. The settings screen reminds you. Your beta5 choice is carried over.

🧪 Demo mailbox in the settings

Settings → Demo mailbox shows sample mail instead of yours, even while your phone is connected. It's handy for trying things out or taking screenshots without showing your own mail. Turn it off to see your mail again.

Try the demo on the "Connect your phone" screen still works as before, and your phone's mail replaces it as soon as it arrives.

⚡ Faster testing, quieter start

  • New optimized build of the watch app. Debug builds, the ones Android Studio installs by default, run much slower on the watch, especially right after installing. The optimized build runs at full speed and still connects to the phone's fullDebug build. Pick optimized for app-thunderwren under Build → Select Build Variant.
  • No more "Your phone isn't connected" when the app opens if the phone is just slow to answer. It still appears when you tap Refresh and the phone can't be reached, and when the companion is turned off on the phone.

🧪 Try it

  1. git fetch --tags && git checkout v0.1.0-beta6, or pull main.
  2. Run app-thunderbird with fullDebug on your phone, and app-thunderwren with optimized on your watch.
  3. No phone? Tap Try the demo on the watch, or turn on Settings → Demo mailbox.

The watch app reports version 0.1.0-beta6 at the bottom of its settings (0.1.0-beta6-optimized for the optimized build). Details are in the README and RFC 0010.


Built with AI assistance (Claude Code) and tested by the maintainer on a Pixel 10 Pro Fold and Pixel Watch 5. AI-generated code is held to the same review standards as any other code, following AGENTS.md.

ThunderWren Wear OS Prototype v0.1.0-beta5

Choose a tag to compare

@JUhalt JUhalt released this 27 Sep 15:03
7426618

ThunderWren v0.1.0-beta5 🐦⚡

Tested on a real phone and watch. This beta fixes what came up when running beta4 on a Pixel 10 Pro Fold with a Pixel Watch 5: messages can now be read in full, and there are watch settings.

📖 Read the whole message (new)

Until now, the watch only showed the first 300 characters of a message, the same preview as in the inbox. Now, opening a message loads its whole text from Thunderbird on your phone.

  • You see the preview right away, and the rest appears a moment later.
  • Long messages are split into paragraphs, so they scroll smoothly.
  • Very long messages (over 20,000 characters), or ones your phone has only partly downloaded, show the part that fits and say "The rest of this message is on your phone." Use Open on phone for those.
  • Encrypted messages are still read on the phone.
  • The text is only sent when you open a message, and isn't stored on the watch.

⚙️ Watch settings (new)

Scroll to the end of the inbox and tap Settings.

  • Swipe actions. Choose one of:

    • Swipe left to archive or delete (the default): a full swipe archives, and Delete is next to Archive.
    • Swipe left to delete or archive: a full swipe deletes, and Archive is next to Delete.
    • Swipe left to archive, right to delete.
    • Swipe left to delete, right to archive.

    With the two-direction choices, a swipe to the right on a message is taken by the message, so to go back, swipe from the very left edge of the screen.

  • Confirm before deleting, in the inbox and on the message screen.

  • Mark as read when opened: on by default, as on the phone.

  • Show message previews: turn it off for a shorter, more private inbox.

  • The version of the watch app.

🔒 Turning the companion off now clears the watch

When the wear_companion feature flag is off, the watch no longer keeps showing the last mail it received. The next time the watch asks for anything, the phone removes its data from the watch, and the watch says "The watch companion is turned off in Thunderbird on your phone."

⚡ Smoother scrolling

  • Message cards no longer redraw every time scrolling starts or stops.
  • Dates are formatted once per message instead of twice.

Debug builds are always noticeably slower than normal builds, so beta5 in a debug build will still feel a little slower than the finished app.

🚩 Flags on in Daily builds

wear_companion and wear_notification_quick_reply are now on in Debug and Daily builds, the first step of the rollout described in RFC 0010. They're still off in Beta and Release builds.

🧪 Try it

  1. git fetch --tags && git checkout v0.1.0-beta5, or pull main.
  2. Run app-thunderwren on your watch (or a Wear OS emulator) and app-thunderbird with the fullDebug variant on your phone.
  3. No phone? Tap Try the demo on the watch.

The watch app reports version 0.1.0-beta5. Details are in the README and RFC 0010.


Built with AI assistance (Claude Code) and tested by the maintainer on a Pixel 10 Pro Fold and Pixel Watch 5. AI-generated code is held to the same review standards as any other code, following AGENTS.md.

ThunderWren Wear OS Prototype v0.1.0-beta4

Choose a tag to compare

@JUhalt JUhalt released this 26 Sep 23:16
dc2b6b1

ThunderWren v0.1.0-beta4 🐦⚡

Ready for the Thunderbird team. This beta doesn't add new features. It changes how ThunderWren is built so it follows Thunderbird for Android's own rules for new features, builds, and code, which is what a submission to the Thunderbird team needs.

Tested on paired phone and watch emulators in Android Studio. Not yet tried on a physical watch.

🚩 Feature flags

The phone-side parts are now behind Thunderbird feature flags, so they can be turned on step by step (Daily, then Beta, then Release) and turned off again without an app update.

  • wear_companion: sending your inbox to the watch and handling its requests. While it's off, the watch says to update Thunderbird on your phone.
  • wear_notification_quick_reply: replying to Thunderbird notifications on the watch without opening the phone. While it's off, Reply opens the compose screen on the phone, as before.

Both flags are on in debug builds and off elsewhere for now. In debug builds, you can switch them in Thunderbird's secret debug settings.

🏗️ Daily and Beta watch builds

The watch app now has the same builds as the phone app: debug, daily, beta, and release, with matching app IDs and signing. Each watch build connects to the matching phone build. You can only sign Daily and Beta builds if you have Thunderbird's signing keys, so use debug builds for local testing.

🧹 Code quality

  • The watch screens follow Thunderbird's MVI screen pattern: a contract with state, events, and effects, and a view model built on BaseViewModel.
  • Unread counts use proper plurals ("1 unread", "2 unread").
  • Watch replies log through Thunderbird's Logger, and never log message content.
  • The tests follow the repository's naming conventions.
  • RFC 0010 now has a rollout plan and a new open question about version codes for the phone and watch apps.
  • The README states which parts were written with AI.

🧪 Try it

  1. git fetch --tags && git checkout v0.1.0-beta4, or pull main.
  2. Run app-thunderwren on a Wear OS emulator (API 30+) and tap Try the demo. No phone needed.
  3. For real mail, also run app-thunderbird with the fullDebug variant on a paired phone emulator with Google Play. The flags are already on in this build.

The watch app reports version 0.1.0-beta4. Details are in the README and RFC 0010.


Built with AI assistance (Claude Code) and tested by the maintainer. AI-generated code is held to the same review standards as any other code, following AGENTS.md.

ThunderWren Wear OS Prototype v0.1.0-beta3

Choose a tag to compare

@JUhalt JUhalt released this 25 Sep 00:33

ThunderWren v0.1.0-beta3 🐦⚡

Triage and reply from your wrist. This beta adds replying, swipe actions, and a smarter Tile to the Wear OS companion for Thunderbird for Android.

Not yet tested on a real phone and watch. Everything below is covered by unit and UI tests and works in the demo mailbox. Try it in the Wear OS emulator with Try the demo; no phone needed.

✨ New on the watch

  • Reply from the watch: speak, type, or pick a ready-made reply, review it, and send. Thunderbird on the phone sends it from the right account, with your signature and quoting settings, and marks the message as answered. Encrypted messages are answered on the phone.
  • Swipe to archive or delete: swipe a message to the left. A full swipe archives it. Screen readers get the same actions.
  • Unread and Starred views of all inboxes, next to "All inboxes" and your accounts.
  • Mark all as read at the end of any mailbox, after a confirmation.
  • Account monograms show which account each message belongs to, as in Thunderbird.
  • Richer Tile: the unread count plus the newest unread messages. Tap one to open it.
  • Privacy: the Tile and complication follow Thunderbird's Lock Screen Notifications setting (senders and subjects, senders only, count only, or nothing).

📱 New on the phone (Thunderbird full flavor)

  • Publishes the new views, monograms, and privacy level to the watch, and handles replies and mark all as read.
  • Thunderbird's notifications on the watch now offer an inline Reply (voice, keyboard, or ready-made replies) that's sent without opening the phone.

🧪 Try it

  1. git fetch --tags && git checkout v0.1.0-beta3 (or pull main).
  2. Run app-thunderwren on a Wear OS emulator (API 30+) and tap Try the demo.
  3. For real mail, also run app-thunderbird (fullDebug) on a paired phone emulator with Google Play.

The watch app reports version 0.1.0-beta3. Details are in the README and RFC 0010.

ThunderWren Wear OS Prototype v0.1.0-beta2

Choose a tag to compare

@JUhalt JUhalt released this 21 Sep 00:50

ThunderWren v0.1.0-beta2 🐦⚡

Bug Fix & Visual Refresh Release for Wear OS 3+ Smartwatches

🛠️ Fixes & Visual Updates in Beta 2

  • Fixed Launch Crash: Resolved missing Koin DI FlagRegistryOverrideSerializer initialization.
  • Single Launcher Icon: Disabled merged phone activity filters to ensure only one launcher entry appears on watches.
  • White Logo Background: Set icon background to white (#FFFFFF) for vibrant contrast of the Thunderbird bird logo.
  • Full Standalone Support: Seamless fallback to sample inbox data when no local accounts exist.

ThunderWren Wear OS Prototype v0.1.0-beta1

Choose a tag to compare

@JUhalt JUhalt released this 20 Sep 23:58

ThunderWren v0.1.0-beta1 🐦⚡

Initial Beta Release of ThunderWren — Wear OS Companion & Standalone Email Client built on Thunderbird for Android.

ThunderWren brings privacy-focused, open-source email management to your smartwatch. Built directly within the Thunderbird for Android codebase, ThunderWren combines a wrist-first UI with Thunderbird's powerful email engine.


✨ What's Included in this Beta

⌚ Wrist-First Interface & Theme

  • Wear OS Material 3: Built using androidx.wear.compose.material3 for smartwatches running Wear OS 3+.
  • OLED Battery Savings: Deep true-black (#000000) background theme paired with official Thunderbird brand blues (#0A84FF / #72A3FF).
  • Round Screen Ergonomics: Curved list scaling (ScalingLazyColumn), rotary crown scroll support, and native swipe-to-back navigation (SwipeDismissableNavHost).

📬 Email Reading & Organization

  • Inbox & Reader: View email headers with unread status, timestamps, and full scrollable message reader.
  • Account Color Accents: Colored account indicator badges matching your accounts in Thunderbird.
  • Message Starring: Flag and view starred (⭐) emails.
  • Folder & Account Switcher: Quick drawer for switching between Unified Inbox, Sent, Drafts, Archive, and Accounts.
  • OpenPGP Detection: Automatic detection and status badge for OpenPGP encrypted emails (🔒).

🎤 Quick Communication & Smartwatch Surfaces

  • Voice Dictation Replies: Speech-to-text voice dictation (VoiceReplyContract) and quick emoji response chips ("👍 Yes", "👎 No", "😊 Thanks!").
  • Wear OS Tile: Quick unread email status tile (UnreadTileService) for watch home screen.
  • Watch Face Complication: Unread mail count badge (UnreadComplicationService) for watch faces.
  • Companion Data Sync: Play Services Wearable DataLayer sync listener (PhoneSyncListenerService).

🛠️ How to Try ThunderWren in Android Studio

  1. Clone or download this release.
  2. Open in Android Studio (2024.1+ recommended).
  3. Create or start a Wear OS Emulator (Wear OS 3+, Round display).
  4. Select the app-thunderwren run configuration and click Run ▶️ (Shift + F10).