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.
This commit is contained in:
tuxgyver committed 2026-09-13 12:00:46 +02:00
1 parent 2dabfdbc84
commit 4017c71ca7
14 files changed
+854 -10

No files matched your search

+5 -2
View File
@@ -6,7 +6,7 @@
[![Kotlin](https://img.shields.io/badge/Kotlin-2.1.0-7F52FF?logo=kotlin&logoColor=white)](https://kotlinlang.org)
[![Compose](https://img.shields.io/badge/Jetpack%20Compose-Material%203-4285F4?logo=jetpackcompose&logoColor=white)](https://developer.android.com/jetpack/compose)
[![Media3](https://img.shields.io/badge/Media3-1.11.1-FF6F00?logo=googleplay&logoColor=white)](https://developer.android.com/media/media3)
[![Version](https://img.shields.io/badge/Version-1.2.0-6B4EFF)](VERSION)
[![Version](https://img.shields.io/badge/Version-1.3.0-6B4EFF)](VERSION)
[![Hors ligne](https://img.shields.io/badge/Hors%20ligne-100%25-3FD8C0)](#-comment-ça-marche)
Cachette est un lecteur audio et vidéo pensé pour les trajets, les tunnels, les avions et les
@@ -41,7 +41,8 @@ sans la moindre connexion.
| 🎛️ **Lecture en arrière-plan** | Notification système, casque, Bluetooth, écran verrouillé |
| ⏯️ **Contrôles complets** | Lecture, pause, arrêt, piste précédente et suivante, ±15 s |
| 🌙 **Thème clair et sombre** | Material 3, palette de marque, contraste garanti |
| 🔁 **Reprise automatique** | Un téléchargement coupé repart tout seul via WorkManager |
| 🔁 **Reprise automatique** | Réseau coupé : mise en attente et reprise. Échec serveur : relance seule après 5 s, 15 s, 45 s |
| 📻 **Radio** | Les stations les plus écoutées, en direct — et enregistrables d'un appui |
| 🆕 **Mise à jour intégrée** | Surveille les releases du dépôt, télécharge l'APK en Wi-Fi et propose l'installation |
---
@@ -56,6 +57,7 @@ sans la moindre connexion.
| 🏛️ Internet Archive | ✅ | Domaine public / Creative Commons |
| 📚 LibriVox | ✅ | Livres audio du domaine public, filtrables par langue |
| 🎼 Wikimedia Commons | ✅ | Enregistrements classiques et archives sonores libres |
| 📻 Radio | ✅ | Annuaire Radio Browser, direct et enregistrement (flux HLS exclus) |
### 🔎 Catalogues évalués puis écartés
@@ -230,6 +232,7 @@ app/src/main/java/fr/tuxgyver/cachette/
├── sources/ Import URL et RSS, catalogues Internet Archive et LibriVox
├── offline/ Cache Media3, gestionnaire et service de téléchargement
├── playback/ MediaSessionService, ExoPlayer, contrôleur d'interface
├── radio/ Annuaire des stations, service d'enregistrement du direct
├── update/ Vérification des releases, téléchargement, notification
└── ui/ Compose — thème, bibliothèque, hors ligne, playlists, sources,
parcours des catalogues, choix des pistes, lecteur