# 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.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.