From 5df1c7e8e83ad63fc7a19261d25ebf96f9cf5569 Mon Sep 17 00:00:00 2001 From: r-zakarya <82443831+r-zakarya@users.noreply.github.com> Date: Sat, 22 Aug 2026 00:18:07 +0100 Subject: [PATCH] feat(android): say that work is happening, on every screen The home screen's buttons already dimmed during an operation, but from the list nothing moved: deleting or duplicating takes a second or two - the container's round trip - and the screen stayed identical, as if the tap had not registered. A veil with a turning arc now covers any screen, and it also prevents the second tap, which would not wait any better. Its safety net is the existing 25 s deadline: even if an operation never hands back, the veil lifts. The plan records where deleted entries actually are: every publish is a Gitea commit, so the snapshot from before the deletion is still in the repository's history, readable in its web interface and recoverable by import. Not a screen, but a real net - and one that catches what a trash would not: an unlucky edit, a bad import. --- android-client/PLAN.md | 8 ++++++++ android-client/web/app.html | 22 ++++++++++++++++++++++ mainApk.pas | 3 +++ 3 files changed, 33 insertions(+) diff --git a/android-client/PLAN.md b/android-client/PLAN.md index 60a8e84..c5e7047 100644 --- a/android-client/PLAN.md +++ b/android-client/PLAN.md @@ -785,6 +785,14 @@ téléphone qu'on voudra ensuite ouvrir sur le poste demandera un import. filet est la sauvegarde du poste.** Il n'y a rien à afficher comme corbeille ici : le téléphone n'en reçoit jamais le contenu. + **La corbeille, c'est l'historique du dépôt.** Chaque publication est un + commit Gitea — l'API des contenus en crée un à chaque écriture, avec le + message que le téléphone envoie (`entries deleted from phone`…). L'instantané + d'avant la suppression est donc toujours là, consultable dans l'interface web + du dépôt et récupérable par un import. Ce n'est pas un écran, mais c'est un + vrai filet — et il rattrape aussi ce qu'une corbeille ne rattraperait pas : + une modification malheureuse, un import raté. + L'action vit dans le **menu de l'entrée** (les trois points, en tête de détail), et non plus en bouton pleine largeur au bas de chaque écran : rouge et présent en permanence pour un geste qu'on fait trois fois par an. Deux diff --git a/android-client/web/app.html b/android-client/web/app.html index 1114c37..6c05686 100644 --- a/android-client/web/app.html +++ b/android-client/web/app.html @@ -283,6 +283,19 @@ pointer-events: none; } .toast.on { opacity: 1; } + /* DIRE QUE CA TRAVAILLE, sur n'importe quel ecran. Les boutons de l'accueil + palissaient deja pendant une operation, mais depuis la liste rien ne + bougeait : supprimer ou dupliquer prend une a deux secondes - le trajet du + conteneur - et l'ecran restait identique, comme si l'appui n'avait pas + pris. Le voile empeche aussi le second appui, qui n'attendrait pas mieux. */ + .busy { position: fixed; inset: 0; z-index: 90; display: none; + align-items: center; justify-content: center; + background: rgba(0, 0, 0, .38); } + body.busy .busy { display: flex; } + .busy > div { background: var(--bg-top); border-radius: var(--radius); + padding: 20px 26px; display: flex; align-items: center; + gap: 12px; font-size: 15px; } + .busy svg { width: 22px; height: 22px; animation: spin .9s linear infinite; }
@@ -431,6 +444,7 @@
+