Renames the app (label, texts, Audiobookshelf client name, User-Agent, APK). The package name,
preferences and signing key stay, so it installs over MiniABS and keeps its settings.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
All requests (API, covers, downloads, the streaming proxy) go through Minamp's own
HTTP/TLS client (Bouncy Castle TLS 1.2, Mozilla roots, keep-alive, session
resumption) via NetConnection, a drop-in HttpURLConnection, as the iPod version does
with BearSSL. The phone reaches the normal https:// address directly; nothing changes
on the server.
- Trust: Mozilla roots + the user's pinned CAs/certificates feed the new verifier; the
trust prompt, renew-safe CA pinning and forged-chain protection behave as before
- PATCH is a normal request now (no raw-socket path)
- Job, covers, player, downloads and proxy threads get big stacks for the handshake
- embedded Roots.java and gen_roots.py replaced by assets/roots
- tests: desktop shims read assets; all 104 checks pass (HTTP and HTTPS)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- An episode only counts as played when playback reaches the last minute.
Saved files that "complete" early (cut-short download, SD card problems) were
marked as played on the server, as were streams ending 30-60 s early; now a
stream is retried and a file is reported.
- "Playing" but the position not moving for 12 s: say so.
- Menu -> "Pechar MiniABS" (Latest/Shows/Saved and the player): save the
position, stop playback and close the app.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Launcher icon from the Audiobookshelf icon pack (art/icon_master_512.png),
including an xhdpi size
- Notification icon cut out of the same artwork; player icons redrawn in the
icon's lilac (tools/make_icons.py)
- Purple colour scheme taken from the icon: gradient accent buttons, lilac
text accents (accent_light), purple-tinted backgrounds
- README: where the icon and colours come from
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Play/pause becomes a rounded rectangle (58x46dp) instead of a 78dp circle,
with 32dp icons and wider spacing (play_w/play_h/play_gap in dimens.xml)
- Skip buttons shrink from 82x56dp to 62x42dp, with 16sp text
- Version 1.4 (versionCode 5); there was no public 1.3
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Translate the interface to Galician (tools/translate_gl.py), including
Galician month abbreviations for dates, which Android 2.3 lacks
- Resize for the Galaxy Mini's 240x320 screen: larger text, rows, tabs and
buttons; all sizes now live in res/values/dimens.xml
- Redraw play/pause/refresh icons for every density; slightly brighter
secondary text colours
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Bundle current root certificates (Let's Encrypt, GTS, Sectigo, DigiCert G2,
Amazon, ...) missing from Android 2.x's store (Roots.java, tools/gen_roots.py)
- Ask once for unknown certificates, showing the SHA-256 fingerprint, and
remember the answer; replaces "accept any certificate" (Trust*, Settings)
- Local streaming proxy so Android 2.x's MediaPlayer can play https:// servers,
with seeking and a fresh token per request (StreamProxy.java)
- Tests over real TLS with good, expired, wrong-host, forged and self-signed
certificates (test/make_pki.sh, TrustTest.java)
- README: server setup for a legacy TLS 1.0 port
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>