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.
This commit is contained in:
1 parent
992fe88cc4
commit
c1912c2056
17 files changed
+587
-36
No files matched your search
@@ -6,7 +6,7 @@
|
||||
[](https://kotlinlang.org)
|
||||
[](https://developer.android.com/jetpack/compose)
|
||||
[](https://developer.android.com/media/media3)
|
||||
[](VERSION)
|
||||
[](VERSION)
|
||||
[](#-comment-ça-marche)
|
||||
|
||||
Cachette est un lecteur audio et vidéo pensé pour les trajets, les tunnels, les avions et les
|
||||
@@ -37,6 +37,7 @@ sans la moindre connexion.
|
||||
| 🎛️ **Lecture en arrière-plan** | Notification système, casque, Bluetooth, écran verrouillé |
|
||||
| 🌙 **Thème clair et sombre** | Material 3, palette de marque, contraste garanti |
|
||||
| 🔁 **Reprise automatique** | Un téléchargement coupé repart tout seul via WorkManager |
|
||||
| 🆕 **Mise à jour intégrée** | Surveille les releases du dépôt, télécharge l'APK en Wi-Fi et propose l'installation |
|
||||
|
||||
---
|
||||
|
||||
@@ -162,6 +163,7 @@ Gradle, le tag git et les notes de release suivront seuls.
|
||||
| `INTERNET` | Télécharger ce que vous avez choisi de garder |
|
||||
| `POST_NOTIFICATIONS` | Commandes de lecture et progression des téléchargements |
|
||||
| `FOREGROUND_SERVICE_*` | Continuer la lecture et les téléchargements écran éteint |
|
||||
| `REQUEST_INSTALL_PACKAGES` | Proposer l'installation d'une mise à jour téléchargée |
|
||||
|
||||
Aucune donnée ne quitte l'appareil : pas de compte, pas de télémétrie, pas de sauvegarde cloud
|
||||
(`dataExtractionRules` exclut explicitement le contenu mis en cache). Les seules connexions
|
||||
@@ -172,6 +174,37 @@ sortantes sont celles des URL que vous ajoutez et des catalogues que vous interr
|
||||
|
||||
---
|
||||
|
||||
## 🆕 Mises à jour
|
||||
|
||||
Cachette étant distribuée hors magasin, elle surveille elle-même les releases du dépôt.
|
||||
|
||||
```
|
||||
Release publiée ──► vérification quotidienne (WorkManager, Wi-Fi)
|
||||
│
|
||||
├─ version plus récente ? ──► téléchargement de l'APK
|
||||
│ │
|
||||
└─ sinon : rien ▼
|
||||
notification « prête à installer »
|
||||
│
|
||||
installation = geste utilisateur
|
||||
```
|
||||
|
||||
L'installation reste un geste explicite : Android l'impose à toute application hors magasin.
|
||||
L'écran **Sources** porte la même vérification à la demande, et affiche la version installée.
|
||||
|
||||
Le dépôt étant privé, la lecture des releases demande un jeton. Il est lu depuis
|
||||
`update-token.properties` (ignoré par git) et injecté dans `BuildConfig` à la compilation :
|
||||
|
||||
```properties
|
||||
giteaUpdateToken=…
|
||||
```
|
||||
|
||||
> ⚠️ Un jeton embarqué dans un APK est extractible. Celui-ci est volontairement limité à la portée
|
||||
> `read:repository` et révocable depuis Gitea. Il donne un accès en lecture aux dépôts du compte —
|
||||
> ne pas lui accorder davantage.
|
||||
|
||||
---
|
||||
|
||||
## 🗂️ Structure
|
||||
|
||||
```
|
||||
@@ -183,6 +216,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
|
||||
├── update/ Vérification des releases, téléchargement, notification
|
||||
└── ui/ Compose — thème, bibliothèque, hors ligne, sources, parcours, lecteur
|
||||
```
|
||||
|
||||
|
||||
Reference in new issue
Block a user