diff --git a/mainApk.pas b/mainApk.pas index ee7a234..47d956f 100644 --- a/mainApk.pas +++ b/mainApk.pas @@ -2274,7 +2274,13 @@ begin // // Un appareil SANS cache n'est pas concerne : c'est le premier // telechargement, et il n'y a rien a ouvrir. - if HasVault and (not FVaultUnreadable) and (FVault.Count = 0) then + // + // "COFFRE OUVERT" SE LIT SUR FPlain, PAS SUR LE NOMBRE D'ENTREES. Un coffre + // vide en compte zero, exactement comme un coffre ferme : le garde restait + // donc vrai apres l'ouverture, rearmait la reprise, et l'on tournait en rond + // - le journal repetait "Vault opened from cache" et l'interface clignotait + // sans plus repondre. Le clair en main est le seul signal qui ne ment pas. + if HasVault and (not FVaultUnreadable) and (FPlain = '') then begin if VaultNeedsPin and (FPin = '') then begin @@ -2320,7 +2326,9 @@ begin // remplace etait bloque par la meme condition. Quand plus rien ne peut // authentifier, ce verrou ne protege personne - le contenu viendra du // serveur, et c'est le mot de passe de sync qui le garde. - if VaultNeedsAuth and (FVault.Count = 0) and BiometricAvailable then + // FPlain et non le nombre d'entrees : un coffre vide en compte zero comme un + // coffre ferme, et l'on redemanderait l'empreinte a un coffre deja ouvert. + if VaultNeedsAuth and (FPlain = '') and BiometricAvailable then begin Status('Authenticating...'); AuthenticateThen('Unlock the vault', @@ -2690,7 +2698,11 @@ end; procedure TForm8.OnIdleTimer(Sender: TObject); begin // Rien d'ouvert : rien a verrouiller. - if FVault.Count = 0 then + // + // SUR FPlain, PAS SUR LE NOMBRE D'ENTREES. Un coffre vide en compte zero, et + // le minuteur se coupait donc de lui-meme : le coffre restait ouvert + // indefiniment. Vide aujourd'hui ne veut pas dire vide dans dix minutes. + if FPlain = '' then begin FIdleTimer.Enabled := False; Exit;