diff --git a/android-client/web/app.html b/android-client/web/app.html
index 3f551a6..f34bd41 100644
--- a/android-client/web/app.html
+++ b/android-client/web/app.html
@@ -340,6 +340,12 @@
letter-spacing: .06em; }
.sheet .note { color: var(--muted); font-size: 13px; margin: 6px 4px 0;
line-height: 1.45; }
+ /* LES BOUTONS DES REGLAGES RESPIRENT. Ils suivent un champ, qui porte son
+ margin-top, mais eux n'en avaient aucun : le champ du code et ses deux
+ boutons se touchaient, et se lisaient comme un seul bloc. Les piles de
+ l'accueil ont leur gap ; ici les elements se suivent en flux normal, donc
+ c'est au bouton de reserver sa place. */
+ .sheet .btn.wide { margin-top: 8px; }
[hidden] { display: none !important; }
diff --git a/mainApk.pas b/mainApk.pas
index 30f13d0..32c547b 100644
--- a/mainApk.pas
+++ b/mainApk.pas
@@ -89,7 +89,7 @@ const
// donc quarante battements font dix minutes. Assez rare pour ne rien peser
// sur une liaison mobile, assez frequent pour qu'on l'apprenne avant d'avoir
// modifie la meme entree des deux cotes.
- PROBE_EVERY_TICKS = 40;
+ PROBE_EVERY_TICKS = 8; // TEMPORAIRE - essai de la serie E, remettre 40
// FIRSTRUN_TOKEN et TEST_PWD viennent d'un fichier LOCAL, hors depot : le
// jeton authentifie l'appareil, le mot de passe ouvre le coffre entier. Ni
@@ -2501,6 +2501,18 @@ begin
// Un code a zero n'est pas un statut : c'est qu'aucune reponse HTTP
// n'est arrivee. Ecrit tel quel, il se lisait comme un vrai code rendu
// par le serveur, ce qui envoie chercher la cause du mauvais cote.
+ // LE SERVEUR A REPONDU : LE CHIEN DE GARDE N'A PLUS LIEU D'ETRE.
+ //
+ // Il mesurait la duree TOTALE, alors que son message dit "no reply from
+ // the server". Sur un coffre devenu gros, la reponse arrivait en une
+ // seconde et les vingt suivantes partaient dans la derivation de la cle
+ // puis l'affichage - il criait donc a l'absence de reponse alors que
+ // tout avait reussi, cache ecrit compris. Un faux echec est pire qu'un
+ // vrai : il apprend a se mefier de ce que l'application raconte.
+ //
+ // Desarme des que le statut est connu, quel qu'il soit : ce qui suit ne
+ // depend plus du reseau, et le voile sera leve par le finally.
+ TThread.Queue(nil, procedure begin FDeadline.Enabled := False; end);
if LRes.HttpCode > 0 then
Log(' HTTP ' + LRes.HttpCode.ToString + ' in ' +
LSw.ElapsedMilliseconds.ToString + ' ms')