Skip to content

android-v0.10.1

Pre-release
Pre-release

Choose a tag to compare

@gillesgoetsch gillesgoetsch released this 21 Aug 11:25

The Android app now wakes for new mail — through a push distributor you choose,
with no Google or Apple push service anywhere in the path.

This supersedes the android-v0.1.0-beta.* builds. The version number is now
shared with the desktop line (0.10.x): it says which product line this build
belongs to, not that the app is finished. It is still a pre-release.

New-mail wake

Your server sends a fifteen-byte signal — no subject, no sender, no count —
encrypted to this specific device and signed with your server's own key. The app
receives it and fetches your mail over its own connection, exactly as it does
when you open it.

The signal travels through a UnifiedPush distributor:
a separate app you install and choose yourself. Settings lists the distributors
found on your phone and lets you pick one, or says so plainly when there are
none. The app ships no Firebase or APNs client at all, and the release build is
checked for that — the workflow inspects the compiled APK, not just the build
configuration.

It works while ohmail is running, open or in the background. If you swipe the
app away, mail arrives the next time you open it. Foreground sync and
pull-to-refresh remain the floor underneath all of it. Waking a closed app needs
work that is not done yet, and this build does not pretend otherwise.

Your server needs a signing key for a wake to be renderable. The hosted service
has one. A self-hosted install generates its own with
node scripts/vapid-keygen.mjs — never copy another install's, since whoever
holds a private key can send wakes that install's phones will accept. Without a
key, Settings says so instead of showing a control that cannot work.

Also in this build

The first-run and connection fixes from the 0.1.0 beta line ride along.

Installing

Download ohmail-android.apk and install it. Android will warn about installing
outside the Play Store; that is expected for a sideloaded build. This APK is
signed with the project's release key and built by this repository's own Actions
from the tagged tree.