fix(android): stop offering an open that cannot succeed
With the screen lock gone the cache stays sealed under a key the device can no longer use - correct, and final. But the app kept showing Open vault, which can only fail, and called the other button Sync when what is needed is a full replacement. A session flag remembers that the cache refused to open. The file is still not touched; only the offer changes - Open vault disappears, the remaining button reads Download vault, and the status says why. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+13
-4
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user