M4: browser UI (navigation, sort, selection, dialogs, permission prompts, platform delete)

This commit is contained in:
2026-10-14 16:07:08 +02:00
parent 993cac6e5b
commit 2c86f3dc67
28 changed files with 2564 additions and 52 deletions
+11
View File
@@ -12,6 +12,17 @@ upload needs a **higher `versionCode`** than every previous upload.
### Added
- **M4 — the browser UI.** The app is now usable end to end. `StorageLocation` (with a
real `StorageProvider` and a fake for tests) decides which backend is in effect;
`BrowserViewModel` owns navigation, sorting, hidden files, list/grid, search, selection
and the clipboard, and turns an `ASK` conflict into a prompt rather than a guess. The
screen offers roots and folder lists with breadcrumbs, a details sheet, new-folder /
rename / delete / conflict dialogs, and the "All files access" and SAF-folder prompts —
including an upgrade banner so declining full access never blocks browsing. Deletes go
through the platform's own confirmation when `MediaStore` can build one and fall back to
a direct delete otherwise; a `FileProvider` lets other apps open and receive files
without a `file://` URI ever leaving the process. 16 new JVM tests (115 total).
- **M3 — operations engine and foreground service.** `domain/FileOperations` turns the
backend primitives into copy, move, delete and rename: it walks folders, counts the
work up front so the progress bar has an honest denominator, checks for cancellation