The picker names a volume the way the browser does
Two fixes from driving Copy to… and Move to… on the phone. The dialog was nested inside the conflict-prompt block, so it could only appear when a conflict was already on screen - which is never. Nothing in the unit tests could see that: they test the view model, and the view model was right. And the picker named internal storage by the platform's own name for it, 0: as the volume row, and in the trail above it (0 / AADst). The roots screen has always shown Internal storage there; the picker now follows the same rule, through a label resource on PickerFolder rather than a second copy of the string logic. A test pins the label on both the row and the crumb. On the device: copy leaves the source and the selection in place, move empties the source, clears the selection and says Moved 1 item. Recorded in EDGE_CASE_TESTING.md.
This commit is contained in:
@@ -287,6 +287,22 @@ What the pass did change, before it was run:
|
||||
cache — a disk cache would hold a second copy of pictures that are already on the device, and survive
|
||||
the file changing.
|
||||
|
||||
## The copy-to session (M16)
|
||||
|
||||
Driven on the phone through the real UI (`adb` taps on `uiautomator` dumps), with `/sdcard/AASrc`,
|
||||
`/sdcard/AADst` and `/sdcard/AAMv` standing in for two user folders.
|
||||
|
||||
- **Copy** into a picked folder: one file selected in `AASrc`, overflow → *Copy to…*, *Internal
|
||||
storage* → `AADst` → *Copy here*. The file appeared in `AADst`, **stayed** in `AASrc`, the browser
|
||||
came back to `AASrc`, and the bar still read *1 item* — the selection really does survive a copy.
|
||||
- **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 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 /
|
||||
AADst*. This is the kind of thing only a device shows: the JVM tests use paths, not labels.
|
||||
|
||||
## Not verified, and why
|
||||
|
||||
- **Long-press multi-select via adb: it works, but not every time.** `input swipe x y x y 900`
|
||||
|
||||
Reference in New Issue
Block a user