A copy into a picked folder says where it went, and Show takes you there
The last acceptance criterion M16 had left open. After Copy to..., the snackbar reads 'Copied to AADst' with a Show button; after a move to a picked folder it keeps the undoable message instead, because the sources are gone and Show would lead nowhere. Two things needed care rather than a string. The action button was hard-wired to undo() - the label was a parameter beside it, which let the two disagree - so UiMessage now carries a MessageAction, and the label follows from it: Undo for an undo, Show for a jump. And a message cannot name a folder from the path alone: a volume root has no name of its own, and internal storage's is 0. The message carries the picked PickerFolder, and the screen resolves its label the way breadcrumbs do - so copying into the root reads 'Copied to Internal storage', which is the case a plain path.name would have got wrong. Four tests: the message names the destination and offers Show; Show opens it; a paste into the folder on screen still names nothing and offers nothing (its destination is the screen); a move to a picked folder offers Undo. All four driven through the view model, and both snackbar variants checked on the phone, including the volume-root one. detekt's SpreadOperator baseline entries moved with the expression, so the message building is now a small helper with a deliberate suppression and a reason, and the baseline was regenerated: three obsolete entries removed, none added.
This commit is contained in:
@@ -298,6 +298,10 @@ Driven on the phone through the real UI (`adb` taps on `uiautomator` dumps), wit
|
||||
- **Move** into a picked folder: the same walk into `AAMv`. `AASrc` ended up empty, `AAMv` held the
|
||||
file, the snackbar said *Moved 1 item*, the listing said *This folder is empty*, and the selection bar
|
||||
was gone.
|
||||
- **The message and its Show button.** After a copy into `AADst` the snackbar read *Copied to AADst* with
|
||||
**Show**, and tapping Show opened `AADst` with the copied file in it. Repeated into a volume root — the
|
||||
case where the path has no name of its own — it read *Copied to Internal storage*, which is the label
|
||||
rule doing its job rather than `0` leaking into a sentence.
|
||||
- **The trail and the volume row.** Both first read the platform's own name for internal storage —
|
||||
`0 / AADst` and a row labelled `0` — which is correct as a path and useless as a label. Fixed by
|
||||
giving the picker the same label rule as the roots screen; the second pass reads *Internal storage /
|
||||
|
||||
Reference in New Issue
Block a user