Repository navigation
Séances et repas : recherche, rappel, import Health Connect, restauration - #24
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.
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à.
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à.
READ_EXERCISE,READ_ACTIVE_CALORIES_BURNEDRé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