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
+35
View File
@@ -605,6 +605,19 @@
atteignable depuis l'accueil comme depuis le coffre. -->
<pre id="log" hidden></pre>
<div class="note" id="sVersion"></div>
<!-- DEBOGAGE SEULEMENT. Delphi ne devoile cette section que dans une
version de debogage, et la commande qui l'accompagne n'est meme pas
compilee en release : le bouton ne peut donc pas reapparaitre par
accident dans une version publiee. En bas de l'ecran, apres tout le
reste, parce qu'on ne tombe pas dessus par megarde. -->
<div id="secDebug" hidden>
<h2>Debug</h2>
<button class="btn wide danger" id="sWipe">Delete the local vault</button>
<div class="note">Removes the cached vault and any vault created here,
along with anything not yet published. The repository is untouched -
Download vault brings it back.</div>
</div>
</div>
</div>
@@ -1606,6 +1619,24 @@ document.getElementById('sPinSet').addEventListener('click', function () {
send('pinset?c=' + encodeURIComponent(v));
document.getElementById('sPinNew').value = '';
});
document.getElementById('sWipe').addEventListener('click', function (ev) {
// DEUX APPUIS, comme pour retirer le code : un effacement sans retour ne se
// declenche pas sur un doigt qui glisse.
var b = ev.currentTarget;
if (b.getAttribute('data-armed') === null) {
b.setAttribute('data-armed', '1');
b.textContent = 'Really delete - tap again';
setTimeout(function () {
b.removeAttribute('data-armed');
b.textContent = 'Delete the local vault';
}, 4000);
return;
}
b.removeAttribute('data-armed');
b.textContent = 'Delete the local vault';
send('wipelocal');
closeSettings();
});
document.getElementById('sPinClear').addEventListener('click', function (ev) {
var b = ev.currentTarget;
if (b.getAttribute('data-armed') === null) {
@@ -1828,6 +1859,10 @@ var PM = {
document.body.classList.add('on-history');
send('state?view=history');
},
/// Version de debogage : Delphi le dit, la page l'affiche. Jamais l'inverse.
showDebug: function () {
document.getElementById('secDebug').hidden = false;
},
setVersion: function (v) {
document.getElementById('sVersion').textContent = v;
},