24 Commits

Author SHA1 Message Date
Thomas Fransolet
55869e025c D2 : borner la reprise des .unknown à un seul essai
Complète d5f3686, qui rendait la reprise illimitée : un type MIME réellement
absent de la table se serait re-téléchargé à chaque visite pour se réécrire en
.unknown, en boucle, sur le réseau mobile du visiteur.

La date nulle sert de borne — elle ne vaut que pour les fichiers écrits avant
D2, donc la reprise ne joue qu'une fois. Déduire l'extension de l'URL en repli
n'est pas possible : une URL Firebase n'en porte pas.

flutter analyze : aucune erreur sur le fichier.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-12 17:50:40 +02:00
Thomas Fransolet
d5f36865b6 D2 : re-télécharger une ressource périmée, base locale v3 vers v4
Le filtre incrémental testait la présence du fichier, jamais sa version.

La prémisse d'origine était fausse, et ça change ce que le correctif répare :
« une image remplacée dans le CMS ne remonte jamais » n'existe pas, parce que
Upload appelle GenerateHexId() à chaque téléversement — remplacer une image
produit un nouvel id, donc une nouvelle URL, que l'ancien filtre téléchargeait
déjà.

Le vrai cas de péremption vient d'être créé par D3 : les MP3 déjà présents sur
les devices y sont en <id>.unknown, et « le fichier est présent » les déclarait
à jour. Sans D2, D3 ne réparait que les installations neuves. isResourceOutdated
traite donc .unknown comme absent.

Deux pièges tranchés en écrivant. La montée v4 laisse les dates existantes à
NULL et les considère à jour : backfiller à zéro aurait fait re-télécharger
l'intégralité des visites de tous les visiteurs sur leur réseau mobile, au
premier lancement. Et la boucle en masse héritée de D1 écrasait la date que la
boucle de téléchargement venait d'écrire, DatabaseHelper.insert faisant un
UPDATE de la ligne entière quand l'id existe ; pour un téléchargement échoué,
c'est l'ancienne date locale qui est conservée, jamais celle du serveur.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-12 17:47:16 +02:00
Thomas Fransolet
dccf211e6f D1 : enregistrer les ressources de la charge au lieu de les redécouvrir
Le bloc commenté parsait section.data type par type pour retrouver les
ressources à télécharger. Il n'y a plus rien à redécouvrir : le serveur
collecte désormais via GetReferencedResourceIds() et met toutes les
ressources référencées dans la charge d'export.

Répare aussi la purge des fichiers obsolètes : elle est pilotée par
usedImageOrAudioIds, qui ne contenait jusqu'ici que les images de sections —
tout le reste était donc considéré comme inutilisé.

Un nouveau type de section est couvert sans toucher à ce fichier.

flutter analyze sans erreur. ⚠️ Non vérifiable par un build : l'APK ne compile
pas (Gradle/NDK). À confirmer sur device au §21 du plan de test.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 16:57:22 +02:00
Thomas Fransolet
c6526046c8 Working flow also in background ! With custom wakeword working (hey visit and hey viva). flow llm working + take photo (not stored for now) + scan qr code working (need to be tested but the issue was llm config in backend) 2026-06-04 17:00:43 +02:00
Thomas Fransolet
878a2e4cf0 Wip version 3.0.0 2025-05-28 17:16:18 +02:00
Thomas Fransolet
53dff98388 WIP version 3.0.0 2025-05-28 14:08:32 +02:00
Thomas Fransolet
8b88b50c1f Update download popup 2024-10-17 14:03:55 +02:00
Thomas Fransolet
19b715192a misc update 2024-10-16 16:22:11 +02:00
Thomas Fransolet
96c1694fe2 download in percentage 2024-07-07 21:23:24 +02:00
Thomas Fransolet
fb8b564456 update logic from resource in DB to resources in file + others 2024-07-07 20:32:34 +02:00
Thomas Fransolet
14ba287872 Branding MDLF + wip test 2024-07-04 21:04:24 +02:00
d38cdffe5a Download all languages if admin + show it in admin pop up + add isAllLanguages 2023-04-06 21:56:06 +02:00
0322716c60 clean code + AdminPopup + add audiosNotWorking in context 2023-03-30 18:54:02 +02:00
d78873c9d4 Clean code + wip handle quizz section type 2023-02-23 18:07:08 +01:00
6d6871e440 Update translations + add language selection on download + beacon update 2023-02-15 16:41:17 +01:00
8e60f08fbf Solve config image issue + wip beacon popup 2023-02-14 18:00:47 +01:00
91f43afa97 Add language param in export (audio) 2023-02-10 17:41:18 +01:00
9d817932fb Update download configuration (via export and not thousand request on first use) + fix alreadyDownloaded 2023-02-10 17:29:49 +01:00
09ae80266b Handle audio new format in mobile app 2023-01-12 17:47:13 +01:00
471785ccab Add online handle + fix small bugs 2022-12-07 20:59:37 +01:00
2a013e9496 Fix bugs .. + support audio + add message when no internet 2022-10-27 22:26:21 +02:00
a1836ca76f Add loader charge images + fix logic + update title when langue changed 2022-10-20 18:44:00 +02:00
98b1328448 Ajout instance + clean widgets - WIP 2022-10-19 17:54:15 +02:00
65e501f852 update service generation 2022-10-19 17:53:27 +02:00