M7: on-device validation - fix usage-screen latency and first-run copy
This commit is contained in:
@@ -10,8 +10,32 @@ upload needs a **higher `versionCode`** than every previous upload.
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Fixed
|
||||
|
||||
- **The storage-usage screen stayed blank for ~45–60 s** on a real 55 GB volume, which
|
||||
reads as a hang even though the work was off the main thread. `UsageAnalysis` now passes
|
||||
the `FileEntry` down the recursion instead of re-`stat`ing every node — the parent's
|
||||
listing already says whether each child is a folder — so the walk costs one listing per
|
||||
directory. It also reports each child through an `onProgress` callback, and the ViewModel
|
||||
appends and re-sorts as they arrive, so the largest folders appear while the rest of the
|
||||
tree is still being measured. Found by running the app on a real phone.
|
||||
|
||||
- **Misleading first-run copy.** The permission prompt said "Full access was declined" on a
|
||||
device where the user had never declined anything. Reworded so it is true whether access
|
||||
was declined or simply never granted.
|
||||
|
||||
### Added
|
||||
|
||||
- **M7 — on-device validation.** The app was run on a real Xiaomi M2101K7AG (Android 12,
|
||||
MIUI V140) rather than only emulator images. Verified on hardware: the first-run
|
||||
permission prompt, "All files access" granted while the app is alive (picked up on
|
||||
resume), browsing real storage, the text editor's read *and* write path (the write
|
||||
checked independently with `adb shell cat`), the storage-usage screen, landscape layout,
|
||||
and **graceful degradation when access is revoked mid-use**. The findings live in
|
||||
[docs/EDGE_CASE_TESTING.md](docs/EDGE_CASE_TESTING.md), including what could *not* be
|
||||
driven from the host — long-press multi-select is delivered as a plain tap by this MIUI
|
||||
build, so the compress/extract buttons still want a manual pass.
|
||||
|
||||
- **M6 — release config and Play readiness.** An upload keystore (4096-bit RSA,
|
||||
`CN=Hadrian Burkhardt, L=Potsdam, C=DE`) is generated and wired through the git-ignored
|
||||
`keystore.properties`, so `bundleRelease` produces a signed, R8-minified, resource-shrunk
|
||||
|
||||
Reference in New Issue
Block a user