Skip to content

Audiobooks 0.5.0 (beta) — speed & simplicity

Pre-release
Pre-release

Choose a tag to compare

@fenleon fenleon released this 14 Aug 08:25
· 16 commits to main since this release

Audiobooks 0.5.0 — the speed & simplicity release. Beta: suitable for daily use; features and behavior may still evolve before a stable release.

What's new since v0.4.0

  • Incremental library scan (the Bard fix). The library used to re-read every file on every scan — a full tree walk, a MediaStore re-index of every file, and a fresh metadata read per file, repeated on every cold start. Now a persistent metadata cache (keyed by file size + mtime) means unchanged books are never re-read — only new/changed files are scanned and indexed. Measured: a 97-file library dropped from ~8–9 s per scan to ~2 s cached, with zero metadata re-reads (and a cold scan is faster too, since files already known to MediaStore are no longer re-indexed).
  • Event-driven playback (less battery). The server's 500 ms poll loop (which ran even while paused, pushing media-session updates 2×/s) is gone; playback state is driven by the player's own events with a 1 s ticker only while playing. The tool polls the binder at 1 s while playing and 5 s while paused. Measured paused CPU with the player open: ~19 ms/s → ~0.7 ms/s (~27× less).
  • Fix: frozen player screen after skip. Skipping ±15 s while playing could leave the screen showing paused with a frozen timeline (audio kept playing) until you left and re-entered the player. The tool now keeps a slow 5 s poll while paused, so a seek re-buffer can't freeze it; the foreground notification is also debounced so a brief re-buffer no longer tears it down.
  • Cleanup. Dead Bard-era code and fields removed, async preference writes, faster seek targeting.

Known limitations

  • Volume buttons are not wired to playback volume yet — on the roadmap. (The media session is registered and audio plays on the media stream; the rocker does not adjust it today.)
  • Embedded chapters inside a folder book's individual files are not merged; folder books stay file-per-chapter.
  • The APK is large (media3 + SDK transitive deps); a minified release build would shrink it.
  • The dev signing key is for development only — not a production identity.

(No cover art, ebook reading, or cloud sync is by design — Audiobooks is deliberately local-only.)

Install

Both APKs are required (the tool and its companion):

  • app-release.apk — the Audiobooks tool (com.lightphone.audiobooks)
  • server-release.apk — the companion (com.lightphone.audiobooks.server)

Dev-signed with the Light SDK development key. On a real Light Phone 3 (via the community ADB route): install both, then set Developer options → External tools → All tools to see Audiobooks in the toolbox. The companion also appears as a toolbox entry on the real device — the row is a no-op to tap (it has no UI).

Checksums (SHA-256):

app-release.apk    715cdb7614b00c22ea411990a038fbb834ff17636484f48e603f9399c472f5fc
server-release.apk 8c5ca24e1876ae34a22c839a35969d9a30a2791b88e7bdd701fe4805a71902d2