5 Commits
Author SHA1 Message Date
tuxgyver b96354c40f Les enregistrements radio portent le nom du morceau capté (1.4.0)
Un enregistrement s'appelait « Station — date », ce qui oblige à rouvrir le
fichier pour savoir ce qu'il contient. Le flux ICY annonce le morceau diffusé :
le service le demande, le premier titre capté nomme l'enregistrement, la station
devient le sous-titre, et le morceau en cours s'affiche pendant la capture.

Ces octets de métadonnées ne sont pas de l'audio et sont retirés avant écriture ;
laissés dans le fichier, ils le rendraient illisible. La valeur du champ se lit
jusqu'à sa fin, et non jusqu'à la première apostrophe, sans quoi « Ain't That a
Kick in the Head » se réduirait à « Ain ».

L'onglet Hors ligne ignorait par ailleurs les enregistrements : n'ayant aucun
état de téléchargement, ils échappaient à son filtre alors qu'ils sont, par
nature, ce qu'il y a de plus disponible sans réseau. Ils y figurent désormais,
la taille annoncée les additionne au cache, et « Tout libérer » dit clairement
qu'il les épargne.
2026-09-13 12:15:46 +02:00
tuxgyver 4017c71ca7 Radio en direct et à l'enregistrement, téléchargements qui se relancent seuls (1.3.0)
Un téléchargement qui échoue restait échoué, attendant un geste. Il repart
maintenant de lui-même après cinq, quinze puis quarante-cinq secondes.
Vérifié contre un serveur qui refuse deux fois avant d'accepter : trois
requêtes, et le fichier arrive sans intervention.

Cela ne recouvre pas la coupure réseau, et c'est voulu : sans réseau, Media3
met déjà le téléchargement en attente et le reprend au retour. Les deux
mécanismes se complètent au lieu de se concurrencer.

La radio manquait. L'annuaire Radio Browser fournit les stations les plus
écoutées, par genre ou par nom ; chacune s'écoute en direct ou s'enregistre.
Un direct n'ayant pas de fin, DownloadManager ne pouvait pas s'en charger :
un service de premier plan copie le flux jusqu'à l'arrêt demandé, puis verse
le fichier dans la bibliothèque, déjà hors connexion. Les flux HLS sont
écartés de la liste, ne se laissant pas enregistrer par copie d'octets.

Le repli vers une autre source en cas d'échec n'a pas été retenu : rien ne
garantit qu'un même titre trouvé sur deux catalogues soit le même
enregistrement.
2026-09-13 12:00:46 +02:00
tuxgyver 2dabfdbc84 Choix des pistes, écoute en ligne, playlists et source Wikimedia (1.2.0)
Un album ou un livre se téléchargeait en aveugle : l'application retenait une
piste arbitraire sans jamais dire laquelle ni ce qu'elle pesait. La fiche d'un
résultat liste désormais toutes ses pistes avec durée et taille, le total est
annoncé, et le bouton chiffre ce qu'on s'apprête à emporter. Chaque piste
s'essaie d'abord en streaming, sans rien mettre en cache.

Les playlists manquaient pour organiser ce qu'on garde : listes nommées,
ajout par appui long, lecture enchaînée. Les contrôles se complètent d'un
arrêt et de sauts de quinze secondes.

Le filtre de langue de LibriVox ne pouvait pas marcher côté serveur : l'API
accepte le paramètre puis l'ignore, « language=French » seul renvoyant des
livres anglais. Le tri se fait sur le champ de chaque livre. Les délais réseau
suivent la latence réellement mesurée des services, LibriVox répondant en
quatorze à seize secondes quelle que soit la taille demandée.

Wikimedia Commons rejoint les catalogues libres. Openverse et ccMixter ont été
essayés puis écartés : le premier refuse l'accès anonyme, le second exige un
en-tête Referer que Media3 ne sait pas poser par téléchargement.
2026-09-13 09:44:56 +02:00
tuxgyver c1912c2056 Recherche LibriVox réparée, téléchargements Archive fiabilisés, mises à jour intégrées (1.1.0)
Deux bugs signalés à l'usage, et la distribution hors magasin qui manquait.

LibriVox ne renvoyait jamais rien : l'API cherche les titres en correspondance
exacte sauf préfixe « ^ », et les auteurs sur le seul nom de famille. Les trois
critères sont interrogés en parallèle et dédoublonnés, et un 404 « aucun
résultat » n'est plus confondu avec une panne.

Les téléchargements Internet Archive échouaient pour trois raisons distinctes :
éléments en accès restreint répondant 401, filtre limité aux seuls .mp3/.mp4, et
choix du premier fichier plutôt que du plus petit dérivé. La taille de chaque
résultat est désormais affichée avant sélection, ce qui distingue une chanson
d'une émission de 500 Mo.

L'application étant distribuée hors magasin, elle surveille elle-même les
releases du dépôt, télécharge l'APK en Wi-Fi et propose l'installation, qui
reste un geste de l'utilisateur comme Android l'impose.
2026-09-11 20:57:58 +02:00
tuxgyver 992fe88cc4 Première version : lecteur audio et vidéo hors connexion (1.0.0)
Cachette met des médias de côté pendant qu'il y a du réseau, pour les lire
quand il n'y en a plus.

- Lecture audio et vidéo en arrière-plan (Media3 MediaSessionService)
- Mise en cache explicite, reprise automatique après coupure (WorkManager)
- Sources : appareil (MediaStore), lien direct, flux RSS de podcast
- Catalogues libres de droits : Internet Archive et LibriVox
- Parcours d'une source avec sélection multiple et téléchargement en lot
- Interface Jetpack Compose Material 3, thèmes clair et sombre
- Makefile catégorisé, publication Gitea déléguée à BorisSkill

Le fichier VERSION est la source unique de la version : versionCode en est
déduit et la publication s'y réfère.
2026-09-11 19:55:08 +02:00