diff --git a/mainApk.pas b/mainApk.pas index 539a82c..df68014 100644 --- a/mainApk.pas +++ b/mainApk.pas @@ -87,6 +87,11 @@ type // economiser un telechargement pour se retrouver sans donnees. FETag: string; FBusy: Boolean; + /// Le cache local a refuse de s'ouvrir pendant cette session. Il existe + /// toujours - on ne detruit rien - mais l'interface cesse de proposer une + /// ouverture qui ne peut pas aboutir, et nomme le telechargement pour ce + /// qu'il est : un remplacement. + FVaultUnreadable: Boolean; // Mot de passe de sync tel qu'il a ete range avec le coffre. Il rend le // rafraichissement de fond silencieux : sans lui, chaque modification // faite sur le poste ferait apparaitre une invite au lancement. @@ -613,10 +618,11 @@ begin FLayList.Visible := False; FLayUnlock.Visible := True; - // Le bouton d'ouverture n'a de sens que si un coffre local existe ; sinon - // seul le telechargement peut en produire un. - FBtnOpen.Visible := HasVault; - if HasVault then + // Le bouton d'ouverture n'a de sens que si un coffre local existe ET qu'il + // s'est deja laisse ouvrir ; sinon seul le telechargement peut en produire + // un utilisable. + FBtnOpen.Visible := HasVault and not FVaultUnreadable; + if HasVault and not FVaultUnreadable then begin if VaultNeedsAuth then Status('Vault on this device - protected') @@ -902,6 +908,7 @@ begin FVault.LoadFromJson(APlainJson); Log(' ' + FVault.LiveCount.ToString + ' entries, ' + FVault.TrashCount.ToString + ' in trash'); + FVaultUnreadable := False; RebuildIcons; PopulateFolders; Touch; @@ -975,6 +982,7 @@ begin begin // ShowUnlock AVANT le message : il repositionne le statut selon ce que // l'appareil detient, et ecraserait donc l'explication. + FVaultUnreadable := True; ShowUnlock; Log('Local vault unreadable: ' + LastStoreError); Status('Local vault unreadable - see log'); @@ -1027,6 +1035,7 @@ begin // quelques centaines de kilo-octets, et un telechargement le // remplace de toute facon. Desormais RIEN ne detruit le cache : // seule une ecriture reussie le remplace. + FVaultUnreadable := True; Log('No usable protection on this device - vault kept but unreadable'); Log(' ' + LastBiometricError); ShowUnlock;