Skip to content

Releases: fenleon/audiobooks

Audiobooks 0.7.1 — platform relay: wheel/camera/haptics from LightOS, volume stays in-app

Choose a tag to compare

@fenleon fenleon released this 20 Aug 22:07

Platform relay inside the tool

Audiobooks now relays the hardware keys it doesn't consume to LightOS (the platform SDK server), so the platform's own handlers work inside the tool:

  • Scroll wheel → brightness (rotary 317/318 → LightOS)
  • Camera button → camera/flashlight
  • Taps vibrate per the real haptics setting (haptics read from LightOS via GetUserPreferences)

Volume rocker stays in-app

The volume rocker still controls the media stream with the in-app volume panel replica. LightOS's native volume panel is ringer-only for third-party tools, so relaying volume keys would leave playback volume uncontrollable (LP3-verified 2026-08-20). Design doc: PLATFORM-RELAY.md.

  • R8 release APK ≈ 8.8 MB
  • Version 0.7.1 (versionCode 22) — installs over 0.7.0 (same signature)

sha256: 0e2c26b1f58ed71d0db6f586a08353727943328c70946a31f08fcd960be8bdff

Audiobooks 0.7.0 — single-module build

Choose a tag to compare

@fenleon fenleon released this 19 Aug 08:15

Single-module build

The companion is merged into the tool APK. One APK to install — it hosts its own Light SDK server (library scan, progress/settings stores, media file provider, volume & Bluetooth methods) and binds to itself; no com.lightphone.audiobooks.server companion needed, and nothing depends on Light shipping the media methods in com.lightos.

  • :server is now an Android library inside the tool APK (manifest components, ServerBootstrapProvider wiring, MediaPermissionActivity)
  • First launch asks for the audio permission, then scans the library automatically
  • Old two-APK installs do not upgrade — uninstall com.lightphone.audiobooks.server first
  • R8 release APK ≈ 8.8 MB (was 2 × 56–77 MB debug; the debug build is still large)

sha256: 34a6b51edf6e670b28caa467ee57379a81887506c8480f582b32ba36087836c5

Audiobooks 0.6.1

Choose a tag to compare

@fenleon fenleon released this 17 Aug 16:40

More formats, rewind-on-resume, Bluetooth polish, and a library/settings layout round.

Changes

  • Formats: .m4a/.aac/.ogg/.oga/.opus/.flac/.wav (platform codecs), per-format mime mapping for the media scanner, M4A reuses the MP4 chapter parser. Verified: AAC/OPUS/M4A/WAV play; mixed-format folder books flow across parts.
  • Rewind-on-resume baked in: a resume after a >5-min pause jumps back 15 s (Settings toggle removed on LP3 feedback).
  • Bluetooth: connected underline icon in the Library bar (BLUETOOTH_CONNECT), instant in-app volume panel for BT-device volume buttons (volume-change long-poll).
  • Library: top spacer (side-gutter size) so the first row does not hug the status bar.
  • Settings: Auto-Play toggle aligned with its label line instead of centered between label and caption.

Builds

  • R8-shrunk release APKs (dev-signed): app 8.3 MB, server 6.1 MB.

Checksums (sha256)

  • app-release.apk: f9cc9801cf56738ebc8ede7b5b7816c1ad5aa5475031ad98ae69a412b9b80e66
  • server-release.apk: 36fecef9999c2bcf060b82867f4cb6764e3a7102360d768c4ee89f4a2036d939

Audiobooks 0.6.0

Choose a tag to compare

@fenleon fenleon released this 17 Aug 12:09

Playback moved into the tool via the SDK's detached-audio model (newPlayer(playback = Detached), light-sdk #148): the tool owns the player (queue, seek, boundary pauses, progress reporting); the companion is scan + store + file server. Background listening, the media notification, and the system media surfaces (volume rocker, now-playing) key on the tool.

Changes

  • Detached-audio refactor: playback runs tool-side; companion is scan + store + file server.
  • In-app volume panel (native LightOS replica) on the volume rocker.
  • Reopening the tool while a book plays lands back on the Player (exactly one Player on the stack).
  • Folder-book ordering: disc/track tags used only when uniformly present, else natural filename order (Librivox partial-tag sets were split).
  • "Chapter N of M" label opens the chapters picker.
  • Restored the Library Bluetooth link (system Bluetooth settings).

Builds

  • R8-shrunk release APKs (dev-signed): app 8.6 MB, server 6.4 MB (debug ~60 MB each).

Checksums (sha256)

  • app-release.apk: 52e83c6b1ca9f7bc0106c349a2c4427f711abcf83026c67aae04968d60dfeb53
  • server-release.apk: 6f99c7adeb6b9574cb0b04c5312a9e3db356fbb13c4701595bf0e9b417a3ca59

Audiobooks 0.5.7

Choose a tag to compare

@fenleon fenleon released this 14 Aug 21:24

Chapters and speed are now always available, even before a book has been played, and playback speed is a single global setting that persists across books.

Changes

  • Player bottom bar always shows the current speed and the chapters button — a freshly opened (never-played) book no longer hides them.
  • Setting speed never needs the book loaded: speed is global, applied to every book, and survives across books and sessions (0.5x–2x).
  • Chapter jumps from a preview load that book paused at the chosen chapter — they never seek or interrupt whatever else is playing.
  • Chapters list highlights the book's own saved position when it isn't the one playing.

Verification

  • R8-shrunk release builds: app 6.4 MB, server 7.7 MB (debug ~55 MB each).
  • Round-trip tested on the LightOS emulator with the release pair: library scan, never-played book shows speed + chapters, preview chapter jump loads paused, global speed verified across two books, background playback + media session + notification survive the tool closing, zero FATALs.

Checksums (sha256)

  • app-release.apk: 39e159bf42a7fd604d0d0ffa24b9dc89c9a910d68f369b74d85abe62df1b0147
  • server-release.apk: adcf8087deb628647fe949934220f0258920548f5b8c0f8ae21af563d490ce1e

Audiobooks 0.5.6 (beta) — no-interruption

Choose a tag to compare

@fenleon fenleon released this 14 Aug 15:01

Audiobooks 0.5.6 — the no-interruption release. Beta: suitable for daily use; features and behavior may still evolve before a stable release.

What's new since v0.5.5

  • Opening a book no longer stops what you're listening to. The companion keeps playing the current book until you explicitly press play on another one. Opening a book's screen is now a preview — title, author, saved position, and duration are shown while the audio you were listening to continues. (Once a book is actually playing, speed and chapters appear as before.)
  • The play/pause icon no longer flickers during skips. A ±15 s skip on a real-size file re-buffers briefly, which used to flip the icon to "paused" for a second while audio kept playing. Playback state now reports intent, so the icon stays put through re-buffers and only changes on a real pause or the book ending.
  • Faster position restore on load (1 s polling while the player screen is open; hidden screen still polls nothing).

(v0.5.5's slim build — R8-minified, ~6-7 MB per APK, ML Kit QR scanner excluded — and v0.5.0's scan cache + battery rework are unchanged.)

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 dev signing key is for development only — not a production identity (anyone with the repo can sign builds with it; a real public release should use a private per-app keystore).

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    f543ce3e900856a2a364d668d6b16003dd510eec9ef7cc3cfa93da94f8ba87a2
server-release.apk bd465991fb7a9bf64d8f2e126f98935ad8237f1c2d7e4b5fbc873b974d65ace6

Audiobooks 0.5.5 (beta) — slim build

Pre-release

Choose a tag to compare

@fenleon fenleon released this 14 Aug 08:48

Audiobooks 0.5.5 — the slim build. Beta: suitable for daily use; features and behavior may still evolve before a stable release.

What's new

  • APK size: ~67 MB → ~6 MB per app (both app-release.apk and server-release.apk). Release builds are now R8-minified (dead-code elimination + resource shrinking) and exclude the SDK UI module's unused ML Kit QR scanner, which alone was ~19.5 MB of native libraries. The SDK's generated entry-point registry is covered by its own consumer rules, so the tool↔companion surface survives shrinking — verified end-to-end on the emulator (launch, library scan, playback, part crossing, seek, restart).
  • 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.

(0.5.0's scan cache and battery rework are unchanged — see the v0.5.0 notes.)

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 dev signing key is for development only — not a production identity.

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    df301d63d34cf4ef4c6190d5c780d30348b5ea22904ba2b343db5fd5f498610c
server-release.apk 00073e3ce753ecbc0c77b07db7d5e2958c18527904baf423773b6d533587436a

Audiobooks 0.5.0 (beta) — speed & simplicity

Choose a tag to compare

@fenleon fenleon released this 14 Aug 08:25

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

Audiobooks 0.4.0 (beta)

Pre-release

Choose a tag to compare

@fenleon fenleon released this 14 Aug 05:57

Audiobooks 0.4.0 — the first tagged release of the Audiobooks LightOS tool. Beta: suitable for daily use; features and behavior may still evolve before a stable release.

What's new

  • Real LightOS tool + companion architecture — a thin tool UI built on the Light SDK design system, with a companion app hosting the on-device library, scanning, and playback, so background listening survives the tool closing (the same model Light's own music/podcast tools use).
  • Local-only player — scans the shared Audiobooks folder: single .mp3/.m4b files are standalone books; every folder is one book whose files play continuously. No accounts, no cloud.
  • Embedded chapters — MP3 CHAP frames and M4B bookmarks give single-file books chapter navigation, "Chapter N of M", and chapter-scoped time.
  • Track ordering — multi-part books play in embedded track order (disc/track tags, fallback: natural filename order).
  • Foreground playback — a playback notification, lockscreen/system media controls, and media-key support keep playback alive in the background.
  • Settings — Auto-Play ("next chapter") toggle, "Scan Library Now", and speed control (0.5x–2x).
  • Progress restored — listening position and speed are remembered per book; reopening restores the last book without autoplay.

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    7311eb8ddcf432a12f629d085d96d6b832ad3ccbf27f73545d0fe5925f43dad7
server-release.apk 592a9d74ca15720afe5244e2780a2c42f9976780f65ee860360ef3b3117d1d75

Known limitations

  • No cover art, ebook reading, or cloud sync — books must be on the device in /sdcard/Audiobooks/.
  • 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.