diff --git a/android-client/PLAN.md b/android-client/PLAN.md index a79488b..ec72380 100644 --- a/android-client/PLAN.md +++ b/android-client/PLAN.md @@ -416,6 +416,40 @@ valait les mêmes 4,5 secondes que la première. champ, donc l'identifiant ou le site coûteraient une ligne ; créer ou supprimer une entrée, en revanche, exige uuid et tombstones. +### L'interface, remise d'aplomb — 2026-08-21 + +Quatre défauts trouvés en s'en servant, tous nés du même endroit : le rail +pose les vues au repos hors du cadre, à `translateX(100%)`. + +- **Le panneau glissait de côté.** `overflow:hidden` n'interdit que le geste ; + le moteur garde le droit de déplacer une boîte pour amener à l'écran le champ + qui vient de prendre le focus, et les vues hors cadre lui en laissent la + place. Toute boîte qui glisse revient maintenant à zéro, attrapée en phase de + capture — sauf la bande de dossiers, seule à défiler latéralement de plein + droit. Premier essai raté : j'avais clampé les panneaux défilants, la CSS + était bien dans la bibliothèque livrée et le comportement n'avait pas bougé. +- **Le clavier changeait de forme et ne se refermait plus.** La touche `→|` + demande « champ suivant », et le suivant dans le document est sur une vue au + repos. Aucun champ d'une vue au repos ne garde le focus désormais, et la + validation replie le clavier au lieu de sauter ; dans l'éditeur, elle + enregistre. +- **Le bouton « replier le clavier » ne faisait rien**, et c'était chez nous : + la vue web n'étant pas un champ que le système connaît, il n'intercepte pas + la touche retour pour nous, et `OnHardwareBack` la consommait toujours — le + coffre se verrouillait pendant que le clavier restait déplié. + `hideSoftInputFromWindow` dit s'il y avait quelque chose à replier : c'est le + signal synchrone qui permet de ne consommer que dans ce cas. +- **La rangée d'édition dépassait le cadre** : le champ gardait `width:100%` et + trois boutons s'ajoutaient à côté. + +Mesuré sur l'appareil par `dumpsys input_method` avant et après, pas déduit : +`mInputShown` restait à `true`, il passe à `false` et l'application reste au +premier plan. + +**L'essai du chemin d'écriture est retiré** — bouton, procédure, branche du +pont et le crochet de débogage qui le révélait. Il prouvait ce chemin avant le +premier vrai PUT ; ce chemin porte le coffre maintenant. + ### Ce qu'on peut s'épargner La création et la suppression d'entrées peuvent attendre : modifier un mot de