feat(android): un bouton pour jeter le coffre local, en debogage seulement

Il vit en bas des reglages, apres tout le reste, et demande deux appuis :
un effacement sans retour ne se declenche pas sur un doigt qui glisse.

Absent en release, et pas seulement cache : la commande du pont n'est pas
compilee et Delphi ne devoile la section que dans une version de
debogage. Le bouton ne peut donc pas reapparaitre par accident. Verifie -
Release compte 8060 lignes contre 8072 en debug, soit exactement ce bloc.

DropLocalVault efface le cache, le conteneur local et le drapeau
d'attente, chacun sous son propre try : un fichier absent ou verrouille
ne doit pas empecher les deux autres de partir. Les reglages du depot
restent - c'est le coffre qu'on jette, pas la facon d'aller le rechercher.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
r-zakarya
2026-08-28 21:47:53 +01:00
parent d43176576f
commit 85691bb2f1
3 changed files with 75 additions and 2 deletions
+18
View File
@@ -157,6 +157,14 @@ procedure ClearVault;
function HasLocalContainer: Boolean;
function LoadLocalContainer: string;
procedure SaveLocalContainer(const AContainer: string);
/// Efface TOUT ce que l'appareil detient du coffre : le cache, le conteneur
/// local et le drapeau d'attente. Ne touche pas aux reglages du depot - c'est
/// le coffre qu'on jette, pas la facon d'aller le rechercher.
///
/// SANS RETOUR, et sans garde ici : l'appelant est le seul a savoir si
/// quelqu'un l'a demande. Reserve au debogage.
procedure DropLocalVault;
/// Efface le conteneur local. A n'appeler QU'APRES avoir publie son contenu :
/// c'est le geste qui fait passer l'autorite au depot, et il est sans retour.
procedure DropLocalContainer;
@@ -290,6 +298,16 @@ begin
TFile.Delete(LocalContainerPath);
end;
procedure DropLocalVault;
begin
// Chacun sous son propre try : un fichier absent ou verrouille ne doit pas
// empecher les deux autres de partir - un effacement a moitie fait laisse
// l'appareil dans un etat que personne n'a voulu.
try if TFile.Exists(VaultPath) then TFile.Delete(VaultPath); except end;
try DropLocalContainer; except end;
try SetPendingFlag(False); except end;
end;
function PendingPath: string;
begin
Result := TPath.Combine(TPath.GetHomePath, PENDING_FILE);