Skip to content

Drive: Aufträge im Ladekreis wie Uploads, Ende sicher erkannt, Pfad springt in den Ordner - #148

Merged
CallMeTechie merged 2 commits into
mainfrom
fix/drive-ops-progress
Oct 29, 2026
Merged

CallMeTechie merged 2 commits into
mainfrom
fix/drive-ops-progress

Conversation

@CallMeTechie

Copy link
Copy Markdown
Owner

Drive: Aufträge wie Uploads im Ladekreis, Ende sicher erkannt, Pfad springt in den Ordner

Braucht für die Dateien je Auftrag Drive 1.12.1 (CallMeTechie/gatecontrol-plugins#115); mit 1.12.0 ein Balken je Auftrag.

1. Karte „Verschiebe 5 Elemente nach FEC · 5 von 5 Dateien“ blieb stehen

Ursache (Server, Drive 1.12.0): server/ops.js work() prüfte zuerst die Zeit und dann, ob noch etwas offen ist. Lief die Zeit (5 s) während des letzten Elements ab, blieb der Auftrag running mit done == total – ohne finish, ohne letztes Ereignis op; drain() holt nur Aufträge mit offenen Zeilen. Die Elemente waren verschoben. Behoben in #115.

App: Sie wartete korrekt auf das Ende – das nie kam; die Ordnerliste wird erst am Ende neu geladen, darum standen die 5 Elemente noch in „Meine Dateien“. Jetzt zusätzlich:

  • DriveOps: ein Auftrag, der alle Dateien erledigt hat und sich 10 s nicht mehr ändert (DriveBulk.stalledDone), wird auf dem Server abgebrochen (was fertig ist bleibt, Rückgängig geht) und als fertig gezeigt → Snackbar mit „Rückgängig“, „neu hier“, Liste neu geladen. Hilft bei Servern mit 1.12.0, bis 1.12.1 eingespielt ist (1.12.1 beendet solche Aufträge im Hintergrundlauf selbst).
  • Ein beendeter Auftrag wird nie wieder „running“ (spätes Ereignis / Antwort von POST ops nach dem Ende-Ereignis).

2. Pfad (Breadcrumbs) lädt nur neu

Ursache: AppNavigation.kt öffnete Ordner mit launchSingleTop = true. Liegt schon eine Ordnerseite oben, ist das dieselbe Destination – Navigation 2.10 gibt nur dem obersten Eintrag die neue id, das ViewModel (DriveFolderViewModel.folderId) bleibt beim alten Ordner, die Seite lädt nur neu. Betraf den Pfad („Meine Dateien“) und Unterordner auf einer Ordnerseite.
Jetzt: Ordner ohne singleTop (keine Doppelseite für denselben Ordner); der Pfad springt zurück zur Seite, die den Ordner schon zeigt, bzw. zum Drive-Tab, wenn dessen Dateien-Seite ihn zeigt, sonst eine neue Seite (DriveLogic.crumbStep). Der Pfad im Vollbild-Dialog „Ziel wählen“ war in Ordnung (TargetPath → browse(id)).

3. Fortschritt wie beim Upload

  • Die Auftragskarte oben entfällt (Ordner, Drive-Tab, Tresor, Fotos, Suche). Der Ladekreis ersetzt den Plus-Knopf; laufen Uploads und Aufträge, zeigt er den Gesamtfortschritt (DriveBulk.ring, nach Bytes). Ein Tipp öffnet das Uploads-Sheet, jetzt mit den Aufträgen: Titel, Zähler, „Abbrechen“, darunter jede Datei mit Balken (wartet / läuft – ohne Byte-Fortschritt unbestimmt / fertig / übersprungen / fehlgeschlagen mit Grund), höchstens 100 um die laufende, „und N weitere“.
  • Ohne files (Drive 1.12.0, Aufträge der App ohne Drive 1.12): eine Zeile je Auftrag mit Gesamtbalken.
  • Nach dem Ende wie bisher Snackbar mit „Rückgängig“ und „neu hier“; der Kreis wird wieder zum Plus.
  • GET ops/<id>?files=1, GET ops?state=running&files=1; Dateien aus Live-Ereignis und Abfrage werden nach seq zusammengeführt.
  • Die Karte für „Senden“/ZIP (läuft in der App) bleibt.

Tests

DriveOpsTest (Ende per Ereignis, per Abfrage, 1.12.0-Hänger 5/5 → fertig mit Rückgängig, Ende vor der Antwort, Dateien zusammenführen), DriveBulkTest (Balken, Zusammenführen, Fenster, Stillstand, Ring), DriveJsonBulkTest (files), DriveLogicTest (Pfad). Lokal: Drive-Tests und lintRelease grün. Version nicht angehoben.


Generated by Claude Code

Claude added 2 commits October 29, 2026 11:02
…pringt in den Ordner

- Fortschritt von Verschieben, Kopieren, Löschen und Wiederherstellen
  wie beim Upload: die Karte oben entfällt, der Ladekreis ersetzt den
  Plus-Knopf (Gesamtfortschritt mit Uploads), ein Tipp öffnet das
  Uploads-Sheet mit den Aufträgen, ihren Dateien mit Balken und
  Abbrechen (Drive 1.12.1 op.files; ältere Server: ein Balken je Auftrag)
- DriveOps: ein beendeter Auftrag läuft nie wieder (spätes Ereignis oder
  Antwort), Dateien aus Ereignis und Abfrage zusammengeführt; ein von
  Drive 1.12.0 mit 5 von 5 Dateien hängengelassener Auftrag wird nach
  10 s Stillstand beendet (Abbrechen auf dem Server, Rückgängig bleibt)
  und als fertig gezeigt
- Pfad über einem Ordner: launchSingleTop ließ eine Ordnerseite über
  einer Ordnerseite dieselbe bleiben (nur neu geladen); jetzt zurück zur
  Seite mit dem Ordner (auch der Drive-Tab) oder eine neue Seite
- Tests: DriveOpsTest, Hilfen in DriveBulk, JSON, Pfad

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016xX1efcZF1f6G9rhmaJNLD
currentBackStack ist RestrictedApi (Lint): die Seite mit dem Ordner
wird über getBackStackEntry(Route) gesucht und mit popBackStack(Route)
angesprungen; die Entscheidung in DriveLogic.crumbStep (mit Test).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016xX1efcZF1f6G9rhmaJNLD
@CallMeTechie
CallMeTechie merged commit 7527783 into main Oct 29, 2026
9 checks passed
CallMeTechie pushed a commit that referenced this pull request Oct 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants