Pulse 2.4.2
The wait until the next check, written on the line.
Updates in place from any 2.x and keeps your monitors.
What's new
The grey tail already showed how much of the wait was left, by its width. Now it says so
in words at the end of the line — 15m, 4m, now — driven by the same
value the tail's width comes from, so the number and the grey cannot disagree.
ProgressStyle carries no text: a segment takes a colour, a point takes a colour, and
that is the entire vocabulary. It does take an icon at each end, and an icon is a bitmap,
so the label is drawn into one.
Three things about that icon slot, found on a device
It centre-crops to a square. A bitmap sized to its own text gets trimmed from both
ends — 1h20m rendered as h20, now as how. The canvas is square now and the text
is fitted into it, so a short label renders larger than a long one.
It renders in full colour, not the alpha mask a status-bar icon gets. Established by
posting a bitmap of red/green/blue stripes into it and getting three stripes back.
Filled glyphs, not knocked-out ones. The first attempt punched the text out of a
pill, which put the card behind it — a colour the app neither chooses nor can measure —
on one side of the contrast ratio. It measured 2.5:1, below the floor for a graphic
and nowhere near the floor for text. It shipped, and was reported as unreadable, which it
was.
No container
Dropping the pill bought back its margin, so the glyphs draw larger — which is what
legibility actually turned on. With nothing between the text and the shade, the ink now
follows the system theme exactly as the line's colours do: dark slate on a light shade,
light grey on a dark one. Both checked at actual size in both themes, rather than at
zoom, which is how the unreadable version got through the first time.
Known limit
A colourised card is pinned to the app's near-black whatever the system theme is, so on
a light-themed phone whose card wins promotion the ink resolves the wrong way. The same
inversion already affects the segment colours. Fixing it means deciding colourisation
before the style is built rather than after — a larger change than this one.
Install
adb install -r Pulse-2.4.2-release.apk
Signed with my own key, so Play Protect will ask you to confirm. There is no Play
listing.
358 JVM tests and 173 on-device tests. One on-device test, theServiceNotificationBecomesThePage,
fails in a full-suite run and passes in isolation — a race on the shared notification id
between the urgent page and the strict notice. Confirmed pre-existing by running the same
suite against 2.4.1.