Copy to… and Move to… chose a destination instead of making you go there
The selection bar's overflow offers both verbs. Confirming opens a folder picker - the volumes first, then folders one level at a time, with the trail above and Up beside it - and starts the copy or the move into the picked folder without leaving the one you are in. The files stay selected after a copy, so sending the same set to a second destination is two taps; a move clears them because the rows are gone. Underneath it is the paste path with an explicit target: planTransfer and transfer were always target-agnostic, so the new code is the picker and the rules around it. A conflict asks exactly what a paste asks and the prompt carries the picked folder. One thing needed care: the reload that follows every operation clears the selection, and it finishes after the operation returns because it is a coroutine of its own. The restore therefore happens at the end of that reload, through a field the transfer sets - otherwise the last writer wins and a copy silently loses the selection it promised to keep, which is exactly what the first version did until the test caught it. Seven view-model tests (copy, move, folders-only listing, the walk up and down, the conflict target, cancellation, the selection rule) and one Compose test for the overflow menu. CHANGELOG and ROADMAP record it, the roadmap naming what is deliberately not done: the copied-to-X message with a jump to the destination.
This commit is contained in:
@@ -12,6 +12,15 @@ upload needs a **higher `versionCode`** than every previous upload.
|
||||
|
||||
### Added
|
||||
|
||||
- **Copy to… and Move to… chose a destination instead of making you go there.** The selection bar's
|
||||
overflow now offers both verbs: a folder picker opens — the volumes first, then folders one level at a
|
||||
time, with the trail above and Up beside it — and confirming starts the copy (or the move) into that
|
||||
folder **without leaving the one you are in**. The files stay selected afterwards, so sending the same
|
||||
set to a second destination is two taps. A name that already exists there asks exactly what Paste asks,
|
||||
naming that folder; progress belongs to the same operation notification, and a move clears the selection
|
||||
because those rows are gone. Underneath it is the paste path with an explicit target: the engine was
|
||||
always target-agnostic, so the new part is the picker and the rules around it.
|
||||
|
||||
- **Several files can be renamed at once, numbered in a series that carries on.** Selecting more
|
||||
than one file now offers Rename in the action bar, which opens a **pattern** dialog instead of the
|
||||
single-file one: a name for the batch, the number to start at, and a live preview of the names it
|
||||
|
||||
Reference in New Issue
Block a user