fix(android): un coffre vide n'est pas un coffre ferme
"Coffre ouvert" se lisait sur le nombre d'entrees. Or un coffre vide en compte zero, exactement comme un coffre ferme - et le coffre d'essai l'est. Le garde de DoSync restait donc vrai apres l'ouverture, rearmait la reprise, et l'on tournait en rond : le journal repetait "Vault opened from cache", l'interface clignotait et ne repondait plus. Le meme idiome se trouvait a deux autres endroits. Le second compte : OnIdleTimer se coupait de lui-meme sur un coffre vide, qui restait donc ouvert indefiniment - et vide aujourd'hui ne veut pas dire vide dans dix minutes. FPlain, le clair en main, est le seul signal qui ne mente pas. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+15
-3
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user