release v2026.05.11.2: signing key + library infinite scroll #40

Merged
bvandeusen merged 262 commits from dev into main 2026-05-11 15:51:43 -04:00
bvandeusen commented 2026-05-11 15:51:34 -04:00 (Migrated from git.fabledsword.com)

Two changes since v2026.05.11.1.

Persistent release signing key. Earlier releases were silently falling back to the per-machine debug keystore, so each CI run signed with a different key and Android refused in-app upgrades at the scanner step. build.gradle.kts now reads ANDROID_KEYSTORE_PATH (decoded from a base64 CI secret) and signs with the operator's persistent keystore; falls back to debug for local builds. CI hard-errors on a tagged build if the secret is missing. Operator action: existing installs need a one-time uninstall before this APK can install.

Library tabs: infinite scroll. _libraryArtistsProvider and _libraryAlbumsProvider were single-page FutureProviders so once the user scrolled past 50 items the list ended. Replaced with AsyncNotifier + loadMore() that appends the next page using items.length as offset. NotificationListener fires loadMore at maxScrollExtent - 800px so the next page lands before the user reaches the visible bottom.

Two changes since v2026.05.11.1. Persistent release signing key. Earlier releases were silently falling back to the per-machine debug keystore, so each CI run signed with a different key and Android refused in-app upgrades at the scanner step. build.gradle.kts now reads ANDROID_KEYSTORE_PATH (decoded from a base64 CI secret) and signs with the operator's persistent keystore; falls back to debug for local builds. CI hard-errors on a tagged build if the secret is missing. Operator action: existing installs need a one-time uninstall before this APK can install. Library tabs: infinite scroll. _libraryArtistsProvider and _libraryAlbumsProvider were single-page FutureProviders so once the user scrolled past 50 items the list ended. Replaced with AsyncNotifier + loadMore() that appends the next page using items.length as offset. NotificationListener fires loadMore at maxScrollExtent - 800px so the next page lands before the user reaches the visible bottom.
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/minstrel#40