Skip to content

Releases: fabiodalez-dev/Pinakes-Android

Pinakes Android v1.3.1 (debug)

Pre-release

Choose a tag to compare

@fabiodalez-dev fabiodalez-dev released this 09 Jul 08:03
cfdbf4f

Debug build 1.3.1 (versionCode 7).

Fix

  • TLS: connect to instances with an incomplete certificate chain. Self-hosted servers behind a QNAP/Synology reverse proxy often serve a TLS chain that is missing an intermediate CA. Browsers fetch the missing piece automatically (via the certificate's AIA URL); the app previously did not, and failed onboarding at Discover library with "Couldn't reach that address" / "Trust anchor for certification path not found" even for a valid Let's Encrypt certificate. The app now completes the chain the same way a browser does. Validation is not weakened — the system trust store still makes the final decision.

Verified against a real QNAP-hosted instance: discovery and login now succeed.

Install

Uninstall any previous version first if you hit a signature mismatch, then install the attached pinakes-v1.3.1-debug.apk.

Pinakes Android v1.3.0 (debug)

Pre-release

Choose a tag to compare

@fabiodalez-dev fabiodalez-dev released this 07 Jul 05:46

Debug build off main — the latest app with the Book Club integration and the insecure-HTTP onboarding option.

What's new since 1.2.1

  • Book Club — the plugin now surfaces in the app (server-driven, feature-flagged): home cards, club detail, polls, RSVP, reading progress, with graceful degradation when the plugin is turned off server-side.
  • "Allow insecure HTTP" onboarding opt-in (issue #16) — connect to a self-hosted instance served over plain HTTP (no TLS). Off by default; the app stays HTTPS-only unless you enable it on the "Connect your library" screen. The cleartext gate covers the API, book covers (Coil) and the in-app PDF reader, so plain HTTP is only ever used for an instance you explicitly accepted.
  • Review/UX fixes: 401 → re-login handling, poll-deadline timezone correctness, empty-state refresh, snackbar de-dup, safer envelope parsing, slug URL-encoding, and more.

Verified

build-and-test green on CI; smoke-tested on an android-35 emulator (boot, authenticated catalog + Book Club load, onboarding toggle, HTTP loopback discovery 200, opt-in gate on/off).

Debug-signed APK — for testing/self-hosting, not a Play Store build.

Pinakes Android 1.2.1 (test build)

Pre-release

Choose a tag to compare

@fabiodalez-dev fabiodalez-dev released this 30 Jun 17:32

Test build of the Pinakes Android app (v1.2.1, versionCode 5).

What's in this build

  • Complete Hilt dependency-injection migration (ServiceLocator removed; all 12 ViewModels @Inject-constructed).
  • Cleanup: removed the dead bookId parameter from BookDetailScreen (the ViewModel reads it from SavedStateHandle).

Artifact

  • pinakes-1.2.1-release-debugsigned.apk — R8 minified + resource shrinking (~9.4 MB).
  • Debug-signed (CN=Android Debug): installable for testing only, NOT for the Play Store. A release keystore is needed for store distribution.

Verified

  • assembleRelease builds cleanly (R8).
  • On-device smoke test of the minified build: launch, onboarding, login, home shelf, catalog, and book detail all work — no R8 / serialization / Hilt runtime breakage.

Pre-release: test artifact from the feat/hilt-di branch, not yet merged to main.

Pinakes Android v1.1.1 (debug)

Choose a tag to compare

@fabiodalez-dev fabiodalez-dev released this 25 Jun 18:55
e68fac3

Pinakes Android 1.1.1 — companion app for the Pinakes ILS.

New in 1.1.1

  • App icon is now the Pinakes palm (pink palm on white), replacing the generic book glyph. Proper adaptive icon (with a themed/monochrome variant for Android 13+) plus square + round legacy icons for older Android.

Everything from 1.1.0 (in-app registration, password recovery, feature-flag gating, security hardening) is included.

Install

Debug-signed APK for direct sideloading (not a Play Store build). Download pinakes-android-v1.1.1-debug.apk, enable "install from unknown sources", and open it. versionCode 3 installs over the previous build in place.

Point it at your library: enable the bundled Mobile API plugin on the server (Mobile API → Settings → enable app access), then enter your instance URL in the app.

Pinakes Android v1.1.0 (debug)

Choose a tag to compare

@fabiodalez-dev fabiodalez-dev released this 25 Jun 07:03

Pinakes Android 1.1.0 — companion app for the Pinakes ILS.

Point it at your library's instance URL (enable the bundled Mobile API plugin on the server, then Mobile API → Settings → enable app access) and your members can browse the catalog, check real availability, borrow & reserve, read ebooks / listen to audiobooks, and manage their loans.

New in 1.1.0

  • In-app registration — create an account directly from the app, with client-side validation and the same privacy-acceptance requirement as the website.
  • Password recovery — request a reset link from the login screen.
  • Feature-flag gating — the UI follows each instance's settings (e.g. catalogue-only mode hides loan/reserve actions) and refreshes them on launch/login.
  • Security hardening — duplicate-submit guard on registration, no account enumeration on password recovery, and the password confirmation is carried end to end.

Built against the realigned Mobile API contract shipped in Pinakes 0.7.23 (reachable plugin settings, loan-vs-reservation parity, normalised availability calendar).

Install

This is a debug-signed APK for direct sideloading (not a Play Store build). Download pinakes-android-v1.1.0-debug.apk, enable "install from unknown sources", and open it. versionCode 2 installs over the previous 1.0.0 build in place.

Debug builds permit cleartext HTTP only for loopback / the emulator; real instances must be served over HTTPS. The bearer token is stored in EncryptedSharedPreferences.

Pinakes Android v1.0.0 (debug)

Choose a tag to compare

@fabiodalez-dev fabiodalez-dev released this 19 Jun 12:10

Debug build of the Pinakes Android client. Install with adb install -r pinakes-debug.apk (or open on your phone), then point it at your Pinakes instance URL on first launch. Requires the instance to have the Mobile API + app access enabled.