Client Android tablette (Material 3) de la bibliotheque edda — frere moderne de muninn-eink.
Find a file
Bastien Quelen fabe81aa72
All checks were successful
build / build (push) Successful in 15m47s
feat(lecture): téléchargements visibles, sync rapportée, tome suivant (v0.23)
Trois moments de la boucle de lecture se passaient en silence, et ce silence
se lisait comme une panne.

Téléchargements — nouveau DownloadTracker (data/download) alimenté depuis
BookDownloader lui-même, donc TOUS les appelants remontent : la fiche livre,
la pile à lire qui se synchronise en arrière-plan (elle n'avait aucune UI), et
le nouveau téléchargement de fin de livre. Bandeau app-wide + pourcentage sur
la fiche. Le finish() est dans un finally : un téléchargement mort ne laisse
pas de ligne fantôme.

Synchronisation — ProgressSyncCoordinator.syncing existait déjà, avec le
commentaire « for screens that show a sync hint », et aucun écran ne le
consommait. Il est désormais affiché sous la barre de la bibliothèque, et un
nouveau flux rounds expose le résultat de chaque tour pour un résumé bref
(« 2 livres mis à jour ») ; un tour qui n'a rien changé ne dit rien.
LibraryViewModel.rebuild reconstruisait un état neuf, ce qui aurait effacé ces
champs à chaque repaint — passé en copy().

Tome suivant — NextInSeriesResolver cherche sur l'appareil d'abord (instantané
et hors ligne), sinon dans le catalogue via /opds/v2/series/<nom>. La
comparaison des noms de série replie accents, casse et ponctuation : kvasir
les normalise côté serveur, et une égalité stricte aurait arrêté les
propositions au milieu d'une série — l'échec le plus trompeur, puisqu'il
ressemble à une fin de série. Le prompt exige hasNavigated, donc rouvrir un
livre terminé le remarque « lu » sans ouvrir de boîte de dialogue. Accepter
redémarre le lecteur sur le nouveau fichier plutôt que d'échanger la
publication en place : navigateur, LocatorStore et push de progression sont
tous indexés sur le livre ouvert dans onCreate.

7 tests sur le résolveur (Robolectric) : tome sur l'appareil, trou dans la
série, orthographes divergentes (dont un cas qui ne doit PAS matcher), pas de
série, pas de position, fichier inconnu, entrée dont le fichier a disparu.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-13 21:39:13 +02:00
.forgejo/workflows ci: ne builder que sur tags v* (plus de build sur push main) 2026-06-30 21:38:58 +02:00
app feat(lecture): téléchargements visibles, sync rapportée, tome suivant (v0.23) 2026-08-13 21:39:13 +02:00
design-system Icône de lanceur Mimisbrunnr (identité design-handoff) 2026-07-03 20:55:43 +02:00
gradle Progression : synchro à l'ouverture, en tâche de fond, reflet immédiat 2026-08-04 22:28:17 +02:00
licenses huginn v0.1 — version tablette Android (Material 3) de l'app e-ink 2026-06-29 07:26:12 +02:00
.gitignore huginn v0.1 — version tablette Android (Material 3) de l'app e-ink 2026-06-29 07:26:12 +02:00
build.gradle.kts huginn v0.1 — version tablette Android (Material 3) de l'app e-ink 2026-06-29 07:26:12 +02:00
CLAUDE.md huginn v0.1 — version tablette Android (Material 3) de l'app e-ink 2026-06-29 07:26:12 +02:00
gradle.properties huginn v0.1 — version tablette Android (Material 3) de l'app e-ink 2026-06-29 07:26:12 +02:00
gradlew huginn v0.1 — version tablette Android (Material 3) de l'app e-ink 2026-06-29 07:26:12 +02:00
gradlew.bat huginn v0.1 — version tablette Android (Material 3) de l'app e-ink 2026-06-29 07:26:12 +02:00
README.md huginn v0.1 — version tablette Android (Material 3) de l'app e-ink 2026-06-29 07:26:12 +02:00
settings.gradle.kts huginn v0.1 — version tablette Android (Material 3) de l'app e-ink 2026-06-29 07:26:12 +02:00

huginn-tablet

Client Android tablette de la bibliothèque edda (OPDS 2.0). Frère moderne de l'app e-ink muninnHugin & Munin, les corbeaux d'Odin : mêmes fonctions, style Material 3 taillé pour une tablette récente (couleur dynamique, mode sombre, layouts adaptatifs).

Fonctions

  • Catalogue OPDS 2.0 : navigation, sections/carrousels, facettes, pagination.
  • Recherche plein texte.
  • Fiche détaillée (couverture + métadonnées, deux colonnes sur grand écran).
  • Téléchargement EPUB et bibliothèque locale (tri/filtre, progression).
  • Lecteur intégré (Readium) : pagination, sommaire, notes, typographie par livre.
  • Synchronisation cross-device : progression, notes, statut « lu », pile « à lire ».
  • Mises à jour in-app (APK depuis Forgejo).

Design

Material 3 « Expressive » : Material You (Android 12+) + palette indigo de repli, clair/sombre, Playfair Display pour les titres, formes arrondies, navigation adaptative (rail/bottom bar). Détails dans design-system/MASTER.md.

Build

./gradlew :app:assembleDebug -PappVersion=0.1
./gradlew :app:installDebug

minSdk 26 · compile/target 35 · Kotlin 2.1 · Compose BOM 2024.12 · Readium 3.1.1.