diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-10-10 15:11:52 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-10-10 15:11:52 +0200 |
| commit | 1fd7bbcd038cddf40540bae7083b9adf4c728912 (patch) | |
| tree | 00574a2ce5c3f592c71d5a339dde9fb263636eeb /docs/MESHBAY_DESIGN.md | |
| parent | 3bad2b50187f55463588a2d4e74fa9df4beb35b8 (diff) | |
| download | meshbay-1fd7bbcd038cddf40540bae7083b9adf4c728912.tar.gz | |
feat(android): back the videos of the chosen albums up beside the photos
A 'Videos too' option, off by default, sends them into the same YYYY/YYYY-MM
folders. Files are read from the phone a ranged chunk at a time, so a large
video is never whole in the page.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'docs/MESHBAY_DESIGN.md')
| -rw-r--r-- | docs/MESHBAY_DESIGN.md | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/docs/MESHBAY_DESIGN.md b/docs/MESHBAY_DESIGN.md index a30215d..5ba1980 100644 --- a/docs/MESHBAY_DESIGN.md +++ b/docs/MESHBAY_DESIGN.md @@ -3414,10 +3414,23 @@ the edit is sent **beside the original**, as `<stem>-edited-<YYYYMMDD-HHMMSS>.<e from the edit's date. A touch that left the bytes alone sends nothing. "Save as copy" makes a new photo and needs no rule. +**Videos.** Off by default, ticked in the same section: the videos of the +chosen albums (a MediaStore bucket holds both, under one id) go beside the +photos, in the same `YYYY/YYYY-MM` folders, under the same ledger, rules and +unmetered network. `READ_MEDIA_VIDEO` is asked for when they are ticked in. +The confirmation states the videos' count and size apart, because they are +most of it. A file is never whole in the page: the upload reads it a chunk at +a time and each chunk is a ranged request to the phone (`Range: bytes=a-b`, +answered 206 by `ByteRange.kt`), so a video of gigabytes costs the WebView one +chunk of memory; the SHA-256 the ledger keeps is then read from the phone once +the node has the file. The Photos tab does not show videos yet; Files does. + **Location.** The manifest does not ask for `ACCESS_MEDIA_LOCATION`, so a -photo read through MediaStore has its EXIF location **redacted by the -platform**: a camera roll going to a group does not say where its owner lives, -and nobody had to do anything for it. +photo or video read through MediaStore has its location **redacted by the +platform** (Android 10+): a photo's EXIF, and in an MP4 or MOV the location +boxes MediaProvider finds (`IsoInterface`). A camera roll going to a group +does not say where its owner lives, and nobody had to do anything for it. On +Android 8 and 9 nothing redacts it. **Refusals.** A refusal that will hold tomorrow โ `disk_full` (ยง6.4), a folder no longer writable, gone or on a drive that is not plugged, the member removed |