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.
|
// economiser un telechargement pour se retrouver sans donnees.
|
||||||
FETag: string;
|
FETag: string;
|
||||||
FBusy: Boolean;
|
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
|
// 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
|
// rafraichissement de fond silencieux : sans lui, chaque modification
|
||||||
// faite sur le poste ferait apparaitre une invite au lancement.
|
// faite sur le poste ferait apparaitre une invite au lancement.
|
||||||
@@ -613,10 +618,11 @@ begin
|
|||||||
FLayList.Visible := False;
|
FLayList.Visible := False;
|
||||||
FLayUnlock.Visible := True;
|
FLayUnlock.Visible := True;
|
||||||
|
|
||||||
// Le bouton d'ouverture n'a de sens que si un coffre local existe ; sinon
|
// Le bouton d'ouverture n'a de sens que si un coffre local existe ET qu'il
|
||||||
// seul le telechargement peut en produire un.
|
// s'est deja laisse ouvrir ; sinon seul le telechargement peut en produire
|
||||||
FBtnOpen.Visible := HasVault;
|
// un utilisable.
|
||||||
if HasVault then
|
FBtnOpen.Visible := HasVault and not FVaultUnreadable;
|
||||||
|
if HasVault and not FVaultUnreadable then
|
||||||
begin
|
begin
|
||||||
if VaultNeedsAuth then
|
if VaultNeedsAuth then
|
||||||
Status('Vault on this device - protected')
|
Status('Vault on this device - protected')
|
||||||
@@ -902,6 +908,7 @@ begin
|
|||||||
FVault.LoadFromJson(APlainJson);
|
FVault.LoadFromJson(APlainJson);
|
||||||
Log(' ' + FVault.LiveCount.ToString + ' entries, ' +
|
Log(' ' + FVault.LiveCount.ToString + ' entries, ' +
|
||||||
FVault.TrashCount.ToString + ' in trash');
|
FVault.TrashCount.ToString + ' in trash');
|
||||||
|
FVaultUnreadable := False;
|
||||||
RebuildIcons;
|
RebuildIcons;
|
||||||
PopulateFolders;
|
PopulateFolders;
|
||||||
Touch;
|
Touch;
|
||||||
@@ -975,6 +982,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
// ShowUnlock AVANT le message : il repositionne le statut selon ce que
|
// ShowUnlock AVANT le message : il repositionne le statut selon ce que
|
||||||
// l'appareil detient, et ecraserait donc l'explication.
|
// l'appareil detient, et ecraserait donc l'explication.
|
||||||
|
FVaultUnreadable := True;
|
||||||
ShowUnlock;
|
ShowUnlock;
|
||||||
Log('Local vault unreadable: ' + LastStoreError);
|
Log('Local vault unreadable: ' + LastStoreError);
|
||||||
Status('Local vault unreadable - see log');
|
Status('Local vault unreadable - see log');
|
||||||
@@ -1027,6 +1035,7 @@ begin
|
|||||||
// quelques centaines de kilo-octets, et un telechargement le
|
// quelques centaines de kilo-octets, et un telechargement le
|
||||||
// remplace de toute facon. Desormais RIEN ne detruit le cache :
|
// remplace de toute facon. Desormais RIEN ne detruit le cache :
|
||||||
// seule une ecriture reussie le remplace.
|
// seule une ecriture reussie le remplace.
|
||||||
|
FVaultUnreadable := True;
|
||||||
Log('No usable protection on this device - vault kept but unreadable');
|
Log('No usable protection on this device - vault kept but unreadable');
|
||||||
Log(' ' + LastBiometricError);
|
Log(' ' + LastBiometricError);
|
||||||
ShowUnlock;
|
ShowUnlock;
|
||||||
|
|||||||
Reference in New Issue
Block a user