Cachette devient Noxely, et gagne une page À propos (1.6.0)
Le nom change, et pas seulement à l'écran : identifiant d'application, paquet Kotlin, dépôt et dossier d'enregistrements suivent, pour qu'il ne subsiste pas deux noms selon l'endroit où l'on regarde. Android traite le nouvel identifiant comme une application distincte : une installation en 1.5.0 ne se mettra pas à jour seule et devra être remplacée. C'est le prix d'un renommage complet, assumé plutôt que contourné. Les enregistrements déjà faits ne sont pas perdus, étant dans le stockage partagé, et le scan continue d'écarter l'ancien dossier pour ne pas les compter deux fois. L'icône fournie est détournée de son fond blanc avant d'être déclinée : posée telle quelle, le masque du système aurait redécoupé un badge qui l'est déjà et laissé du blanc sur les bords. La couleur de fond est échantillonnée dans l'image, non choisie au jugé. La page À propos dit enfin ce que l'application fait, ce qu'elle garantit, avec quoi elle est construite et qui en répond. Sa version vient du manifeste et son journal du CHANGELOG du dépôt : ni l'un ni l'autre ne peut dériver. La licence n'étant pas déclarée, la pastille le signale en rouge au lieu d'en inventer une.
This commit is contained in:
1 parent
b9da43366b
commit
6f5adc687e
76 files changed
+809
-264
No files matched your search
@@ -1,4 +1,4 @@
|
||||
# 🎧 Cachette
|
||||
# 🎧 Noxely
|
||||
|
||||
> Mettez la musique et les vidéos **de côté** pendant que vous avez du réseau. Écoutez-les quand vous n'en avez plus.
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
[](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
|
||||
Noxely est un lecteur audio et vidéo pensé pour les trajets, les tunnels, les avions et les
|
||||
forfaits épuisés. On choisit ce qu'on emporte, l'application le télécharge, et tout reste lisible
|
||||
sans la moindre connexion.
|
||||
|
||||
@@ -44,6 +44,7 @@ sans la moindre connexion.
|
||||
| 🔁 **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 |
|
||||
| 🏷️ **Titrage automatique** | L'enregistrement prend le nom du morceau annoncé par la station |
|
||||
| ℹ️ **Page « À propos »** | Fonctions, garanties, pile technique, journal et auteur |
|
||||
| 👀 **Titre en cours** | Ce que diffuse chaque station, lu dans son flux |
|
||||
| ⏰ **Guet d'un titre** | L'enregistrement se déclenche quand le morceau voulu passe, et s'arrête à sa fin |
|
||||
| 🆕 **Mise à jour intégrée** | Surveille les releases du dépôt, télécharge l'APK en Wi-Fi et propose l'installation |
|
||||
@@ -71,7 +72,7 @@ sans la moindre connexion.
|
||||
| **ccMixter** | La recherche fonctionne, mais les fichiers ne sont servis qu'avec un en-tête `Referer` — que Media3 ne permet pas de poser par téléchargement. |
|
||||
| **Radio Browser** | Flux radio continus : rien à mettre en cache. |
|
||||
|
||||
### ⚖️ Ce que Cachette ne fait pas — et pourquoi
|
||||
### ⚖️ Ce que Noxely ne fait pas — et pourquoi
|
||||
|
||||
| Service | Pourquoi |
|
||||
|---|---|
|
||||
@@ -194,16 +195,24 @@ sortantes sont celles des URL que vous ajoutez et des catalogues que vous interr
|
||||
|
||||
---
|
||||
|
||||
> ⚠️ **Changement de nom en 1.6.0.** L'application s'appelait Cachette et son identifiant était
|
||||
> `fr.tuxgyver.cachette`. Android traite le nouvel identifiant `fr.tuxgyver.noxely` comme une
|
||||
> application distincte : une installation en 1.5.0 ne se met pas à jour toute seule, il faut la
|
||||
> désinstaller puis installer Noxely. Les enregistrements déjà rangés dans `Music/Cachette`
|
||||
> survivent — ils sont dans le stockage partagé — et restent lisibles par tout lecteur.
|
||||
|
||||
---
|
||||
|
||||
## 📼 Où vont les enregistrements
|
||||
|
||||
À partir d'Android 10, dans `Music/Cachette/`, déclarés dans MediaStore : ils sont donc visibles
|
||||
À partir d'Android 10, dans `Music/Noxely/`, déclarés dans MediaStore : ils sont donc visibles
|
||||
de tous les lecteurs de l'appareil et survivent à la désinstallation. En deçà, ils restent dans le
|
||||
dossier privé de l'application, MediaStore y réclamant une permission de stockage dont Cachette n'a
|
||||
dossier privé de l'application, MediaStore y réclamant une permission de stockage dont Noxely n'a
|
||||
pas besoin par ailleurs.
|
||||
|
||||
Le nom du fichier porte le titre du morceau — et pas seulement la colonne `TITLE` : en publiant le
|
||||
fichier, MediaStore le relit et réécrit ce champ à partir du nom. Le scan local, lui, ignore
|
||||
`Music/Cachette` pour ne pas afficher deux fois ce que la bibliothèque connaît déjà.
|
||||
`Music/Noxely` pour ne pas afficher deux fois ce que la bibliothèque connaît déjà.
|
||||
|
||||
Chaque enregistrement se supprime individuellement depuis l'écran **Hors ligne** : fichier, entrée
|
||||
MediaStore et référence en bibliothèque partent ensemble. « Tout libérer » ne les touche pas.
|
||||
@@ -212,7 +221,7 @@ MediaStore et référence en bibliothèque partent ensemble. « Tout libérer »
|
||||
|
||||
## 🆕 Mises à jour
|
||||
|
||||
Cachette étant distribuée hors magasin, elle surveille elle-même les releases du dépôt.
|
||||
Noxely é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)
|
||||
@@ -245,7 +254,7 @@ giteaUpdateToken=…
|
||||
|
||||
```
|
||||
app/src/main/java/fr/tuxgyver/cachette/
|
||||
├── CachetteApp.kt Application + conteneur de dépendances (assemblé à la main)
|
||||
├── NoxelyApp.kt Application + conteneur de dépendances (assemblé à la main)
|
||||
├── MainActivity.kt
|
||||
├── model/ MediaEntry, MediaKind, SourceKind
|
||||
├── library/ MediaStore, persistance des imports, bibliothèque unifiée
|
||||
|
||||
Reference in new issue
Block a user