fix(lecture): réserver sous les listes la hauteur qu'occupe vraiment le mini-lecteur - #30
Conversation
…le mini-lecteur La réserve était un nombre écrit en dur, 76 dp, pour une carte qui en occupe 82 aux réglages par défaut. Le bas de la dernière ligne disparaissait donc sous le mini-lecteur, de 6 dp — et de 27,5 dp pour qui double la taille des caractères, la carte passant alors à 103,5 dp. Les trois chiffres sont mesurés, pas estimés. La passation attribuait le défaut au paysage. Il n'en est rien : la carte fait la même hauteur dans les deux orientations, à toutes les densités, et le manque est le même partout. Ce qui le creuse, c'est la taille de police du système — un réglage d'accessibilité, donc exactement les utilisateurs qu'un texte tronqué gêne le plus. `MiniPlayerHost` mesure la carte et passe le résultat aux listes. Aucune constante ne pouvait être juste, puisque la hauteur dépend de réglages extérieurs à l'application ; une mesure suit aussi la moindre retouche du mini-lecteur, ce qu'un nombre rangé dans un autre fichier ne fait pas. Le `MiniPlayerSpaceEstimate` qui subsiste ne sert qu'à éviter un saut sur la première image, avant que la mesure n'arrive. L'extraction sort du même coup l'agencement de `MainActivity`, où il n'était atteignable par aucun test. Les trois tests comparent la réserve annoncée à la hauteur réellement occupée, dans le même environnement — ils ne fixent aucun nombre. Rétablir la constante de 76 dp les fait tomber tous les trois, et eux seuls sur 258.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
Limit details: You’ve used all 2 included reviews currently available. Your 89 included PR review attempts over the past 7 days set your current allowance at 2 reviews per hour. 📝 WalkthroughWalkthroughLe changement introduit ChangesHébergement du mini-lecteur
Estimated code review effort: 3 (Modéré) | ~20 minutes Merge Risk: ⚪ Minimal · up to The change dynamically reserves space for the mini-player so the final list item remains visible across font sizes and orientations; no actionable merge-blocking risk remains. Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Usage-based review receipt
Note This review was completed with usage-based billing: files reviewed beyond your plan's included limits are billed at $0.25/file. Track spend and usage in your billing settings. Comment |
Le défaut, mesuré
La réserve laissée sous les listes était une constante :
MiniPlayerSpace = 76.dp. La carte, elle, occupe :Mesuré, pas estimé — en composant le mini-lecteur sous Robolectric et en lisant sa taille.
La passation attribuait le défaut au paysage. C'est faux. La carte fait la même hauteur dans les deux orientations et à toutes les densités ; le manque est identique partout. Ce qui le creuse, c'est la taille de police du système — donc précisément les utilisateurs qu'un texte tronqué gêne le plus.
Le correctif
MiniPlayerHostmesure la carte et passe le résultat aux listes. Aucune constante ne pouvait être juste : la hauteur dépend de réglages extérieurs à l'application. Une mesure suit en outre la moindre retouche du mini-lecteur, ce qu'un nombre rangé dans un autre fichier ne fait pas.L'extraction sort du même coup l'agencement de
MainActivity, où il n'était atteignable par aucun test.MiniPlayerSpaceEstimatene sert plus qu'à éviter un saut sur la première image, avant que la mesure n'arrive.Validation
Les tests ne fixent aucun nombre. Ils comparent la réserve annoncée à la hauteur que la carte occupe vraiment, dans le même environnement — un nombre écrit en dur ne peut satisfaire les deux réglages de police à la fois.
Rétablir la constante de 76 dp fait tomber les trois, et eux seuls sur 258 :
Sur émulateur, polices ×2, liste défilée jusqu'au bout. Sans le correctif, la ligne « Wonderful Day / TWICE » est coupée en deux par la carte et sa pochette rognée ; avec, elle tient entièrement, dégagée. Même appareil, même liste, deux minutes d'intervalle.
Ce que ça ne fait pas
Le mini-lecteur reste une carte flottante : une liste en cours de défilement passe toujours derrière lui. C'est le comportement voulu, et seule la position de fin de liste était en cause.
Summary by CodeRabbit