chore(android): drop the keyboard diagnostic, and the field only jumps if it must

The trace has served: it named the cause where two rounds of reasoning had
missed it. Out with it, and out with the viewport measurement it proved
worthless here - a value that is always zero reads as a mechanism, and the
next person would trust it.

adjustResize goes too. Measured to do nothing: Android ignores the mode for a
fullscreen window, which FMX's is. Leaving it in the manifest would suggest it
carries something.

A field already near the top of the panel - the settings ones - stays where it
is. It was visible as it was, and lifting it only moved under the eye what was
already fine.

The plan keeps what the measurement cost: on this screen, instrument first.
This commit is contained in:
r-zakarya
2026-08-21 15:46:06 +01:00
parent ad8a037e29
commit 131bf44b36
3 changed files with 54 additions and 64 deletions
+31
View File
@@ -729,6 +729,37 @@ désormais, qui garantit qu'un enregistrement n'écrase pas un autre appareil,
et il n'a toujours jamais tourné. Le provoquer : synchroniser depuis le poste,
puis enregistrer depuis le téléphone sans synchroniser d'abord.
### Le clavier : personne ne dit ce qu'il recouvre — 2026-08-21
Le bas du formulaire restait sous le clavier, sans moyen d'y accéder. **Trois
sources ont été interrogées sur ce qu'il recouvre, les trois répondent comme
s'il n'existait pas** :
- `visualViewport.height` — identique à `innerHeight`, clavier levé ;
- `innerHeight` — inchangé, la fenêtre reste en plein écran ;
- `android:windowSoftInputMode="adjustResize"` — sans effet : Android l'ignore
pour une fenêtre plein écran, ce qu'est celle de FMX. Retiré, pour ne pas
laisser croire qu'il porte quelque chose.
La mesure qui a tranché, clavier levé :
```
focus: inner 719 visual 719 | box client 659 scroll 659 | body=on-detail
```
`client` = ce que la boîte montre, `scroll` = ce qu'elle contient. Égaux :
aucun débordement, donc rien à faire défiler. Le clavier recouvrait le bas
d'une page qui se croyait en pleine hauteur.
**On a donc cessé de demander.** Le temps de la saisie, le panneau réserve 60 %
de hauteur sous son contenu — c'est du débordement, donc ça défile — et le champ
focalisé remonte en haut, mais **seulement s'il est dans le bas du panneau** :
un champ déjà visible ne doit pas sauter sous l'œil pour rien.
Deux corrections antérieures, posées par raisonnement sans instrument,
reposaient toutes deux sur une mesure qui vaut zéro ici. La leçon vaut d'être
écrite : sur cet écran, **instrumenter d'abord**.
### Ce qui devient facultatif
Sans dépôt configuré, *Sync* n'a rien à faire : les réglages du serveur