Skip to content

Séances et repas : recherche, rappel, import Health Connect, restauration - #24

Merged
Kaz229 merged 5 commits into
mainfrom
seances-et-restauration
Nov 2, 2026
Merged

Kaz229 merged 5 commits into
mainfrom
seances-et-restauration

Conversation

@Kaz229

@Kaz229 Kaz229 commented Nov 2, 2026 •

Copy link
Copy Markdown
Owner

Cinq changements, un commit chacun.

1. Recherche d'aliment par son nom

Retrouver un aliment supposait de rescanner son code-barres ou de tout ressaisir, même pour quelque chose mangé l'avant-veille.

« sky » retrouve le skyr enregistré il y a deux jours, qui se réinscrit en un tap, au repas choisi et à la date du jour. Viennent ensuite les produits déjà scannés, puis ceux d'Open Food Facts.

  • L'historique passe devant : on remange surtout les mêmes choses, et il répond sans réseau
  • D'un même aliment, seule la dernière version est proposée — celle dont les quantités sont à jour
  • La frappe est laissée finir avant d'interroger le réseau, sinon chaque lettre partirait en requête

La recherche par nom passe par search.openfoodfacts.org : l'ancienne (/cgi/search.pl) est régulièrement hors service — vérifié, elle répond « Page temporarily unavailable ». La nouvelle rend directement les valeurs nutritionnelles.

Vérifié sur appareil contre l'API réelle : Trouvés : [Compote — Skyr, Skyr naturel, Skyr Moka].

2. Onglet Repas juste après l'Accueil

Le journal se remplit plusieurs fois par jour, les séances une fois : Accueil · Repas · Séances · Exercices.

3. Rappel d'une séance laissée ouverte

Une séance oubliée fausse tout : sa durée sert à estimer les calories, et elle traîne marquée « en cours ». Au bout de 10 minutes sans nouvelle série, l'app demande si tu es toujours là.

  • Chaque série repousse le rappel au lieu d'en empiler un second
  • Annulé dès que la séance est terminée ou supprimée
  • Le worker revérifie l'état avant de notifier : la séance a pu être close entre-temps
  • L'autorisation est demandée au démarrage d'une séance, moment où elle prend son sens

Vérifié sur appareil : la notification s'affiche avec son titre et sa durée.

4. Séances venues d'une autre application

Une séance faite dans Lyfta ou sur une montre n'apparaissait pas, alors que Health Connect la porte déjà.

  • Celles que FitTrack a écrites sont écartées : les réimporter créerait un doublon à chaque passage
  • L'identifiant Health Connect est conservé, avec un index unique (migration 2 → 3)
  • Nouvelles permissions : READ_EXERCISE, READ_ACTIVE_CALORIES_BURNED

Réserve : les calories viennent de la formule MET sur la durée annoncée, l'application d'origine ne les exposant pas toujours.

5. Restauration depuis Kazis

La sauvegarde n'était qu'une copie : rien ne la réinjectait dans une app réinstallée. Le bouton « Restaurer depuis Kazis » récupère séances, séries et journal, identifiants d'origine compris — sans quoi les séries ne retrouveraient pas leur séance.

Refusée si l'application contient déjà des données : les identifiants restaurés écraseraient ce qui a été créé depuis.

Nécessite Kazis v0.37.0.

Tests

20 tests unitaires sur la nutrition et la recherche, 10 sur l'échange Kazis ; 10 tests instrumentés (rappel, recherche, sauvegarde).

🤖 Generated with Claude Code

Le journal alimentaire se remplit plusieurs fois par jour, les séances une
fois. L'ordre des onglets suit maintenant la fréquence d'usage : Accueil,
Repas, Séances, Exercices.
La sauvegarde n'était qu'une copie : rien ne la réinjectait dans une app
réinstallée. Le bouton « Restaurer depuis Kazis » récupère séances, séries
et journal, identifiants d'origine compris — sans quoi les séries ne
retrouveraient pas leur séance.

La restauration est refusée si l'application contient déjà des données :
les identifiants restaurés écraseraient ce qui a été créé depuis. C'est le
cas d'un téléphone neuf, le seul où elle a un sens.

Une ligne illisible est ignorée plutôt que d'abandonner toute la
restauration.
Une séance faite dans Lyfta ou sur une montre n'apparaissait pas dans
FitTrack, alors que Health Connect la porte déjà.

L'app lit maintenant les séances écrites par d'autres applications et les
ajoute à l'historique, dans la foulée de la synchronisation. Celles que
FitTrack a elle-même écrites sont écartées : les réimporter créerait un
doublon à chaque passage.

L'identifiant Health Connect est conservé sur la séance, avec un index
unique (migration 2 → 3) : c'est ce qui garantit qu'une séance déjà reprise
ne revient pas.

Les calories viennent de la formule MET sur la durée annoncée, faute de
mieux : l'application d'origine ne les expose pas toujours.
Une séance oubliée fausse tout : sa durée sert à estimer les calories, et
elle traîne dans la liste marquée « en cours ». Au bout de dix minutes sans
nouvelle série, l'app demande si on est toujours là.

Chaque série repousse le rappel plutôt que d'en empiler un second : seul le
silence le déclenche. Il est annulé dès que la séance est terminée ou
supprimée, et le worker revérifie l'état avant de notifier — la séance a pu
être close entre-temps.

L'autorisation de notifier est demandée au démarrage d'une séance, moment
où elle prend son sens. Sans elle, l'app n'insiste pas.

Vérifié sur appareil : la notification s'affiche bien, avec son titre et sa
durée.
Retrouver un aliment supposait de rescanner son code-barres ou de tout
ressaisir, même pour quelque chose mangé l'avant-veille.

L'écran de recherche propose d'abord l'historique : « sky » retrouve le
skyr enregistré il y a deux jours, qui se réinscrit en un tap, au repas
choisi et à la date du jour. D'un même aliment, seule la dernière version
est proposée : c'est celle dont les quantités sont à jour.

Viennent ensuite les produits déjà scannés, puis ceux d'Open Food Facts.
L'historique passe devant parce qu'on remange surtout les mêmes choses et
qu'il répond sans réseau.

La recherche par nom passe par search.openfoodfacts.org : l'ancienne
(/cgi/search.pl) est régulièrement hors service, et celle-ci rend
directement les valeurs nutritionnelles. Un produit sans calories ou sans
nom est écarté, il n'apporterait rien au journal.

La frappe est laissée finir avant d'interroger le réseau, sinon chaque
lettre partirait en requête.
@Kaz229 Kaz229 changed the title Séances : rappel, import Health Connect, restauration, ordre des onglets Séances et repas : recherche, rappel, import Health Connect, restauration Nov 2, 2026
@Kaz229
Kaz229 merged commit f40ea6d into main Nov 2, 2026
1 check passed
@Kaz229
Kaz229 deleted the seances-et-restauration branch November 2, 2026 14:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant