Write the release notes, the permission answers, and the video
Play asks three separate things before a file manager may keep All files access: the What's new copy, a justification for why SAF and MediaStore cannot carry it, and a short video of the permission in use. Writing them exposed two stale claims and one privacy problem, so those are fixed here rather than repeated. - docs/RELEASE_NOTES.md holds the Console field at 450/500 characters, measured, and the longer announcement. The first release's copy leads with the claim no competitor makes (no ads, no INTERNET permission) and then proves the app is still a file manager. - docs/PLAY_RELEASE_CHECKLIST.md section 5 holds the declaration answer at 490/500 characters. It argues from what the Storage Access Framework and MediaStore cannot do - one picked tree, no volume enumeration or whole-device hierarchy, no arbitrary non-media files - and never from performance, which Google's wording rejects. Both APIs are named as already used where they can be, so the argument is not that they are useless. - docs/PERMISSION_VIDEO.md and store-assets/video hold a 19.7 s captioned video recorded on the release build. The home-screen segment is cut because its library counts are the owner's real totals; the published copy resumes on the internal-storage listing. Also recorded: the emulator captures one frame in three seconds, and only appops set --uid ... deny brings the prompt back after Settings has granted the app-op. - README and ROADMAP caught up with the build: the status stopped at M15, and the trash limitation still said there was no Empty trash and that expiry waited for the next delete, both changed in M19. Verified: ./tools/verify.sh green, the code map current, the Play field measured at 450 characters and the form answer at 490, and the video decoded as H.264 1080x2400, 19.666 s, no audio, with frames checked at the cut and the end state.
This commit is contained in:
@@ -152,6 +152,28 @@ This is the step that can block a file manager, and the one to get right.
|
||||
- [ ] Keep the permission set honest: declaring a permission the app does not use is itself
|
||||
a policy violation.
|
||||
|
||||
**The declaration answer (490 / 500 characters, measured):**
|
||||
|
||||
```
|
||||
Plain Files' core purpose is browsing and managing every file and folder on internal storage, SD cards and USB drives: documents, archives, APKs, hidden files and folders created by other apps. The Storage Access Framework grants one user-picked tree at a time and cannot enumerate volumes or present a whole-device hierarchy. MediaStore exposes indexed media collections, not arbitrary files or folder trees. SAF remains a fallback for a chosen folder, but cannot deliver the core purpose.
|
||||
```
|
||||
|
||||
This is a **functional** argument, which is the only kind the form accepts — Google's own wording
|
||||
says improving performance is not an acceptable reason, so speed is not mentioned. Each claim is true
|
||||
of this build: `data/SafSource` already provides the folder-tree fallback, and the app's only
|
||||
`MediaStore` use is the best-effort delete request (section 5's permission audit), so neither API is
|
||||
being dismissed as unnecessary. What they cannot do is *enumerate every volume*, *present one
|
||||
hierarchy spanning internal storage and removable media*, or *manage arbitrary non-media files and
|
||||
folders* — which is what "file manager" means, and why the listing copy leads with it.
|
||||
|
||||
If a future form allows fewer characters, cut the last sentence first: the fallback is a point of
|
||||
honesty, not the justification.
|
||||
|
||||
- [ ] Upload `store-assets/video/permission-use.mp4` (**19.7 s**, captions burned in) to YouTube
|
||||
**Unlisted** or Drive shared with anyone who has the link, then paste that URL into the form's
|
||||
video field. The repository file is not a link, and a private video cannot be reviewed. What it
|
||||
shows, why the system UI is German, and how to re-shoot it: [PERMISSION_VIDEO](PERMISSION_VIDEO.md).
|
||||
|
||||
**Verify the shipped permission set** after every release build:
|
||||
|
||||
```bash
|
||||
@@ -197,6 +219,10 @@ Full copy and the generated graphics land in **M10** (`docs/STORE_LISTING.md`).
|
||||
fields needed: app name, short description, full description, app icon 512×512, feature
|
||||
graphic 1024×500, and the screenshots.
|
||||
|
||||
The per-release **What's new** field is separate from the listing and is capped at **500 characters**:
|
||||
its copy, measured, is in [RELEASE_NOTES](RELEASE_NOTES.md), together with the longer announcement
|
||||
for a website or GitHub release.
|
||||
|
||||
- [ ] Upload the screenshots from `store-assets/screenshots/`: **phone** 1080×2160 (8),
|
||||
**7-inch tablet** 1200×1920 (4), **10-inch tablet** 2560×1600 (4). Play wants 4+ per
|
||||
large-screen form factor. All three sets clear its rules — 24-bit PNG with no alpha,
|
||||
|
||||
Reference in New Issue
Block a user