# Changelog Toutes les évolutions notables de Cachette sont documentées ici. Le format suit [Keep a Changelog](https://keepachangelog.com/fr/1.1.0/) et le versionnage [SemVer](https://semver.org/lang/fr/). ## [1.3.0] — 2026-09-13 ### Ajouté - **Radio.** Les stations les plus écoutées via l'annuaire communautaire Radio Browser, avec filtres par genre et recherche par nom. Chaque station s'écoute en direct, ou s'enregistre : un service de premier plan copie le flux dans un fichier jusqu'à l'arrêt demandé, et le verse dans la bibliothèque — déjà hors connexion, sans rien à télécharger ensuite. - Relance automatique des téléchargements en échec, après une pause croissante de 5, 15 puis 45 secondes. Une relance manuelle repart d'un compteur neuf. ### Notes - Les flux HLS sont écartés de la liste des stations : ils se lisent, mais ne s'enregistrent pas par copie d'octets, et un bouton qui échouerait vaudrait moins que pas de bouton. - La relance et la reprise sur coupure réseau sont deux mécanismes distincts, et c'est voulu : sans réseau, Media3 met le téléchargement en attente et le reprend de lui-même ; la relance, elle, ne traite que les vrais échecs serveur. - Le repli automatique vers une autre source n'a pas été retenu : rien ne garantit qu'un même titre trouvé sur deux catalogues soit le même enregistrement, et l'application téléchargerait silencieusement autre chose que ce qui a été choisi. ## [1.2.0] — 2026-09-13 ### Ajouté - Écran de choix des pistes. Un album ou un livre n'est plus une boîte noire : ses pistes sont listées avec leur durée et leur taille, le total est annoncé, et le bouton dit exactement ce qu'on s'apprête à télécharger (« Garder 4,2 Mo »). Les variantes d'un même morceau sont regroupées — autant de lignes que d'œuvres, pas que de formats. - Écoute en ligne avant téléchargement : un appui sur une piste la joue en streaming sans rien mettre en cache. - Playlists : listes nommées, ajout par appui long sur un média ou depuis l'écran de lecture, lecture enchaînée, suppression piste par piste. - Contrôles de lecture complétés : arrêt, saut de 15 secondes en avant et en arrière. - Filtrage par langue des catalogues (français, anglais, allemand, espagnol, italien, néerlandais). - Nouvelle source libre : **Wikimedia Commons**, pour les enregistrements classiques et les archives sonores du domaine public. ### Corrigé - Le filtre de langue de LibriVox ne pouvait pas fonctionner côté serveur : l'API accepte le paramètre `language` puis l'ignore (`language=French` seul renvoie des livres anglais). Le tri se fait désormais sur le champ `language` de chaque livre. - Délais réseau ajustés d'après la latence mesurée des services : LibriVox répond en 14 à 16 secondes quelle que soit la taille demandée, ce qui faisait expirer les requêtes parallèles. ### Notes - Deux catalogues ont été évalués puis écartés sur mesure plutôt que sur principe : **Openverse** refuse désormais l'accès anonyme (401 sur huit requêtes sur huit) et **ccMixter** exige un en-tête `Referer` que Media3 ne permet pas de poser par téléchargement. ## [1.1.0] — 2026-09-11 ### Ajouté - Mise à jour intégrée : Cachette surveille les releases du dépôt, télécharge l'APK en Wi-Fi et propose l'installation. Vérification quotidienne en tâche de fond, et à la demande depuis l'écran Sources, qui affiche aussi la version installée. - La taille approximative de chaque résultat Internet Archive est affichée avant sélection : un élément de 500 Mo ne se laisse plus confondre avec une chanson. ### Corrigé - Recherche LibriVox qui ne renvoyait rien. L'API cherche les titres en correspondance exacte sauf si la requête est préfixée par `^`, et les auteurs sur le seul nom de famille : « Jules Verne » n'atteignait donc ni l'un ni l'autre. Les trois critères sont désormais interrogés en parallèle et dédoublonnés, et un « aucun résultat » (HTTP 404) n'est plus traité comme une panne. - Téléchargements Internet Archive qui échouaient ou n'aboutissaient pas. Trois causes distinctes : les éléments en accès restreint répondaient 401 et sont maintenant écartés dès la recherche ; seuls les fichiers `.mp3` et `.mp4` étaient acceptés, ce qui excluait des éléments ne proposant que du `.m4a` ou de l'`.ogg` ; et le fichier retenu était le premier trouvé, souvent l'original non compressé — c'est désormais le plus petit dérivé, soit 9 Mo au lieu de 30 sur un cas mesuré. ## [1.0.0] — 2026-09-11 ### Ajouté - Lecture audio et vidéo en arrière-plan (Media3 `MediaSessionService`), avec notification système, commandes casque et écran verrouillé. - Mise en cache hors connexion explicite : téléchargement à la demande, reprise automatique après coupure réseau ou redémarrage via WorkManager. - Bibliothèque unifiée mêlant le contenu de l'appareil (MediaStore) et les médias importés. - Sources : appareil, lien direct `http(s)`, flux RSS de podcast. - Catalogues libres de droits intégrés : Internet Archive et LibriVox, sans compte ni clé d'API. - Parcours d'une source avec sélection multiple et téléchargement en lot. - Écran « Hors ligne » : taille du cache, progression, libération élément par élément ou en bloc. - Interface Jetpack Compose Material 3, thème clair et sombre, palette de marque.