110 Commits

Author SHA1 Message Date
Thomas Fransolet
6709726208 Splash, loader et mode hors ligne : ce qui etait invisible le reste
Le fil rouge de ces corrections : des replis silencieux. Une exception
rattrapee, une image absente, un fichier local jamais rattache — rien ne
plantait, mais rien ne marchait non plus, et aucun message ne le disait.

Splash et loader
- assets/splash et assets/loader ne contenaient que des PNG 1x1
  transparents. errorBuilder ne se declenche pas : le fichier est valide,
  juste vide. Logo et loader etaient donc invisibles PARTOUT, splash comme
  ecrans de chargement. assets/loader est supprime, kLoaderAsset avec.
- Le splash natif etait blanc (launch_background en @android:color/white,
  theme Light) puis l'app basculait en sombre. Fond unifie sur #111111,
  cote natif comme Dart, avec values-v31 : Android 12+ ignore
  windowBackground et repart sur le theme sans ces attributs.
- Le loader et l'image principale viennent maintenant du manager
  (Applications -> Mobile). InstanceImages les garde sur le device : le
  splash s'affiche avant tout appel API, il ne peut lire qu'un cache.
  Alimente au boot depuis instanceGetDetail, qui porte deja les
  ApplicationInstances — aucun appel supplementaire.
- Ouvrir une section montrait une page blanche avec un loader au milieu.
  SlideFromRightRoute devient non opaque et SectionPage garde un fond
  transparent tant que la section n'est pas prete : le visiteur garde sous
  les yeux l'ecran d'ou il vient.

Hors ligne
- L'audio d'un article ne repartait jamais du MP3 local : audioFile
  n'etait jamais renseigne, le lecteur retombait toujours sur l'URL.
- L'image de titre d'un article passait par NetworkImage, donc une croix
  rouge des que le reseau manque, alors que le fichier est sur le device.
- L'accueil ne gardait en base que order/gridSpan : une visite jamais
  telechargee disparaissait de la grille hors ligne. La visite entiere est
  desormais mise en cache, et une visite injoignable reste affichee,
  ternie et non ouvrable, plutot qu'absente.
- L'etat reseau datait du premier chargement et n'etait jamais remesure.
  WidgetsBindingObserver etait declare mais jamais enregistre : aucun
  rappel n'arrivait. L'accueil se recharge au retour dans l'app et
  remesure avant de refuser l'ouverture d'une visite.

Divers
- Le futur de getSectionDetail etait construit dans future:, donc relance
  a chaque rebuild — chaque rotation d'ecran refaisait l'appel reseau.
- ImageCustomProvider listait le repertoire d'une visite non telechargee :
  exception a chaque construction de chaque image, pour finir de toute
  facon sur le reseau.
- Scanner un QR d'une autre visite empilait les ConfigurationPage.
  pushAndRemoveUntil : une visite est une destination de premier niveau.
- Le scanner arrive sur l'accueil, en pastille de verre comme les autres
  actions de cet ecran. ScannerBouton prend size et transparent, et garde
  son apparence d'origine ailleurs.
- Le titre d'un article n'etait pas centre : customStylesBuilder ne
  s'applique qu'aux elements, et un titre sans balise n'en a aucun.
- Le lecteur audio replie ne lancait pas la lecture au premier appui, il
  ouvrait le panneau. Il lit, puis ouvre. En lecture auto il reste replie.
- Le dialogue de telechargement faisait la hauteur de l'ecran : un Center
  prend toute la hauteur maximale que lui donne un AlertDialog.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-09 16:47:27 +02:00
Thomas Fransolet
d39949a6bd Lunettes Meta, lecteur audio en onglet, et badge de version dans les Parametres
Ce commit boucle le travail en cours sur la branche (assistant lunettes Meta,
passage du lecteur audio flottant a un onglet, ajustements scanner / liste de
configurations / telechargement) et y ajoute le badge de version.

Le badge, en bas de la feuille Parametres, affiche « flavor . version . commit ».
Un APK pose sur une tablette du terrain n'etait rattachable a aucun commit
precis : la version du pubspec ne bougeait pas d'un build a l'autre et rien
n'indiquait le flavor reellement installe. kGitSha suit le meme schema que
kApiBaseUrl, injecte par --dart-define, et kFlavor expose le flavor deja calcule.

package_info_plus etait deja une dependance transitive ; il devient direct,
puisqu'il est desormais importe.

/!\ Un --dart-define modifie n'est PAS pris en compte sans `flutter clean` sur
ce projet : verifie a la sentinelle, le SHA restait absent de libapp.so tant que
le cache Dart n'etait pas vide. Un build de release destine au terrain doit donc
toujours passer par un clean, sinon le badge affiche le SHA du build precedent.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 22:43:53 +02:00
Thomas Fransolet
84ccaffcb5 Misc translate html + use mapbox default (offline mode) + fix offline mode + small fix home 3 layout 2026-09-04 16:51:21 +02:00
Thomas Fransolet
d237987889 Lot E : rendu PDF des médias d'étape, et QuestionType nommé
Le cas PDF n'était traité nulle part : un PDF tombait dans le `default` et
affichait "Not supported type".

⚠️ Le correctif ne va pas dans showElementForResource comme l'annonçait le
plan : cette fonction fait un `return CachedCustomResource(...)` avant son
switch, donc tout son switch est du code mort. Le vrai dispatcher est
CachedCustomResource, et il en a deux — ressource distante et fichier local
déjà téléchargé pour l'offline. Les deux sont traités. Le cas distant doit
télécharger avant d'afficher, PDFView n'acceptant qu'un chemin de fichier.

QuestionType : _kindOf comparait des entiers bruts, remplacé par les alias
nommés du client.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 15:31:07 +02:00
Thomas Fransolet
af44927d4a Assistant IA aligné sur le web + parcours guidés + centrage de carte
Assistant
  AssistantChatSheet.dart (+252), Helpers/assistantSuggestions.dart,
  Services/assistantService.dart — même comportement et mêmes suggestions que
  visitapp-web, dérivées du contenu réel.

Parcours guidés
  guided_path_content_progression_page (+72), guided_path_map_progression_page (+39),
  parcours_page : alignés sur les 3 questions de progression qui remplacent les
  9 booléens côté manager-app.

Carte
  Helpers/mapCenter.dart + les trois vues (flutter_map, google_map, map_box) et
  marker_view : centrage et icônes honorés.

Fix du build
  guided_step_challenge.dart:83 — typage explicite. Avec le // @dart=2.18 de
  manager_api_new côté manager-app, c'est ce qui débloque flutter build apk.

flutter build apk .
Reste ouvert : M3 — meterZoneGPS toujours ignoré, une constante en dur à 100 m
remplace le rayon configuré par section.
2026-08-09 22:15:26 +02:00
Thomas Fransolet
0f2b4ed6bd multi wakeword + misc 2026-07-17 15:23:12 +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
bdabfad92e added launch screen + update in ai chat + notifs (to be tested) + EventAgenda layout (to be tested) + home 3.0 update (event) + event mode layout (to be tested) + guided Path layout (to be tested) + map parcours (to be tested) + update readme 2026-03-25 17:47:10 +01:00
Thomas Fransolet
e8ef78d0e2 Update fix after service generation + need test geoloc ! + need test for connexion with apikey also ! + check where http needed.. need to pass by service generation 2026-03-13 17:43:17 +01:00
Thomas Fransolet
538e677993 Update gradle, remove bluetooth beacon (gralde update etc..) + ai assistant (wip) + stats + layout update + clean repo (remove old release) + link to unique backend generation managerapp (TO BE TESTED) 2026-03-13 15:15:18 +01:00
Thomas Fransolet
c6599e13c9 Updates visit name to configuration + scan + misc 2025-07-09 17:45:27 +02:00
Thomas Fransolet
303e50a255 Menu done + article refonte wip 2025-07-04 17:21:17 +02:00
Thomas Fransolet
c50083b19f Agenda + misc for sub menu (pdf, agenda) 2025-07-03 17:37:24 +02:00
Thomas Fransolet
f07570d8ee Weather done 2025-07-02 17:11:02 +02:00
Thomas Fransolet
5e5d92a510 misc 2025-07-02 13:11:16 +02:00
Thomas Fransolet
b20a112eb2 Map working - (only google, mapContext issue on selected point) 2025-06-19 16:50:28 +02:00
Thomas Fransolet
4e9dc59df9 Slider ok, map wip + update gradle etc + qr scanner to mobile scanner 2025-06-18 18:00:29 +02:00
Thomas Fransolet
7aca0638ce Puzzle working + slider wip + misc 2025-06-12 17:27:53 +02:00
Thomas Fransolet
bddde86974 Working Web, Pdf and Video type + misc and clean code 2025-06-11 17:26:36 +02:00
Thomas Fransolet
4946247812 Misc + clean code logic future for configurations and sections 2025-06-11 12:04:01 +02:00
Thomas Fransolet
9c5ae56549 misc + wip load section (not working) 2025-06-10 16:51:48 +02:00
Thomas Fransolet
b7ca69162c Misc, update layout, nice main page + hero to configuration detail 2025-06-05 18:20:48 +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
42d3e257b2 Reintegrate carousel slider (fix rename 5.0) 2025-02-26 13:56:27 +01:00
Thomas Fransolet
ffbeccec5d Fix overlay qr code + plugin apply update + fix audio future issue on dispose 2025-02-25 17:24:19 +01: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
91d83806a1 Remove request background for google play 2024-08-01 09:56:46 +02:00
Thomas Fransolet
f67cbcc269 update bluetooth description usage ios 2024-07-09 12:16:17 +02:00
Thomas Fransolet
d6279fa2e8 clean code 2024-07-07 20:43: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
Thomas Fransolet
e4cb6ee574 upgrade dependencies + Text to HtmlWidget + language svg to png 2023-11-02 17:51:30 +01:00
Thomas Fransolet
b6a463eebb Add reset articleRead + fix qrcode offline 2023-05-02 15:26:48 +02:00
c02b4b8a1e Clean beacon test 2023-04-21 16:37:50 +02:00
Thomas Fransolet
af954f8a6c Merge branch 'version-1.0.6' of https://bitbucket.org/FransoletThomas/mymuseum-visitapp into version-1.0.6 2023-04-20 15:53:15 +02:00
Thomas Fransolet
c4b5939f4b Beacon - test with only identifier 2023-04-20 15:52:37 +02:00
b30eb60b1b Add articleRead for online + fix beacon article found bug 2023-04-17 22:36:18 +02:00
d38cdffe5a Download all languages if admin + show it in admin pop up + add isAllLanguages 2023-04-06 21:56:06 +02:00
59a16cde74 Filter languages in download popup + allow all languages if IsAdmin 2023-04-02 18:57:06 +02:00
0322716c60 clean code + AdminPopup + add audiosNotWorking in context 2023-03-30 18:54:02 +02:00
ca7157af62 Show duration left in icon (floating audio player) 2023-03-30 17:16:03 +02:00
Thomas Fransolet
ee8342350e Show image on beacon found (online) 2023-03-24 08:24:00 +01:00
796cd72ef6 Add floating audio + update code version + to 1.0.6 2023-03-22 15:44:22 +01:00
e60a03475a Handle error if audio too big 2023-03-10 20:16:20 +01:00
d0ab801a94 forgot file 2023-03-10 19:28:13 +01:00
cb80c35856 Add update size text for article 2023-03-09 16:41:33 +01:00
d2e76a37fd Display message on language not supported (online) 2023-03-09 16:14:33 +01:00
3da28fba67 Update warning size box 2023-03-03 17:50:32 +01:00