feat(android): an entry can be deleted from the phone
Both, or nothing: the row leaves the snapshot AND a tombstone takes its place. Removing the row alone does not delete - the desktop still holds its own copy, and the next pull would bring it back as an entry we never had. The time matters too: the desktop's arbitration keeps an entry edited AFTER the deletion rather than killing it a second time. No trash on the phone, deliberately. The desktop's is a `deleted` flag that does not travel in sync, so a deletion stopping there would propagate nowhere. Hence a button at the very bottom, in two taps, that disarms itself after four seconds - a button left armed gets touched by accident much later, and this is the one action with no way back. The confirmation is in the page because the engine cannot offer one: a JavaScript prompt needs a WebChromeClient FMX does not provide. Not exercised on the device: it would have destroyed a real entry.
This commit is contained in:
+13
-1
@@ -670,7 +670,19 @@ téléphone qu'on voudra ensuite ouvrir sur le poste demandera un import.
|
||||
Une ligne vide s'affiche désormais **si elle est éditable** : un identifiant
|
||||
absent qu'on ne pourrait pas ajouter serait une impasse. Vider est permis,
|
||||
sauf sur un mot de passe où ce serait presque toujours une fausse manoeuvre.
|
||||
**Reste : supprimer**, qui exige les tombstones.
|
||||
**Supprimer** — fait le 2026-08-21. `DeleteEntry` retire la ligne **et** pose
|
||||
la pierre tombale `{uuid, deleted_at}` : les deux, sinon rien. Retirer la
|
||||
ligne seule ne supprime pas — le poste tient toujours la sienne, et le
|
||||
prochain tirage la ramènerait comme une entrée qu'on n'a jamais eue. Et
|
||||
l'heure compte : l'arbitrage du poste garde une entrée modifiée *après* la
|
||||
suppression plutôt que de la tuer une seconde fois.
|
||||
|
||||
**Sans retour depuis le téléphone**, et c'est délibéré : la corbeille du
|
||||
poste est un drapeau `deleted` qui ne voyage pas dans la synchronisation, donc
|
||||
une suppression qui s'y arrêterait ne se propagerait nulle part. D'où le
|
||||
bouton en bas d'écran, en deux temps, qui se désarme seul au bout de quatre
|
||||
secondes — un bouton armé indéfiniment se fait toucher par mégarde bien plus
|
||||
tard.
|
||||
4. **Réconcilier avec la synchronisation** : un coffre né seul auquel on
|
||||
ajoute un dépôt. C'est là que la fusion revient, et elle a été évitée
|
||||
jusqu'ici pour de bonnes raisons.
|
||||
|
||||
Reference in New Issue
Block a user