mirror of
https://github.com/narrrl/proton-stream.git
synced 2026-11-03 16:41:26 +01:00
docs(android): stop describing Picture-in-Picture, and say what PLAN.md has not done
Picture-in-Picture was removed from the Android client, but B40 still read as a live fix, B42 stayed open on a `pending` PiP case that no longer exists, and two code comments still named it. PLAN.md marked every recommendation done; its status now lists the ones a source review found short.
This commit is contained in:
1 parent
7994097a25
commit
33da1563ee
4 files changed
+31
-11
No files matched your search
@@ -26,6 +26,23 @@ indicator while a crawl runs, but not the crawl's progress.
|
||||
Not yet verified on a device; the host gate (ktlint, unit and screenshot
|
||||
tests) passes, and Android lint runs in CI.
|
||||
|
||||
A source review on 2026-10-12 found these still short of the text below:
|
||||
|
||||
- **Title page.** The backdrop scrolls away with the back button instead of
|
||||
collapsing to a pinned bar, and the icon row has no mark-watched action.
|
||||
- **Episode rows** show the file size where runtime was asked for.
|
||||
- **Player episode list** is a bottom sheet in landscape too, not a side
|
||||
panel.
|
||||
- **Storage** has a usage bar for the streaming cache only; offline episodes
|
||||
have none.
|
||||
- **Metadata language** is still a free-text field.
|
||||
- **Touch targets.** The player's icons are 40 dp, under the 48 dp floor.
|
||||
- **Screenshots** do not cover the player, and only the library is taken at
|
||||
font scale 1.5.
|
||||
|
||||
Share rows now say how many files the last crawl found, when it ran and why it
|
||||
failed (section 2, Shares), as of the catalog's `share_crawls` table.
|
||||
|
||||
## 0. CI (done)
|
||||
|
||||
Every `Android` workflow run since August failed in `:app:buildRustHost`:
|
||||
|
||||
@@ -202,7 +202,7 @@ struct PlaybackState {
|
||||
/// and must not be attributed to the file being loaded.
|
||||
bool loading = false;
|
||||
/// The picture's display size, once mpv has decoded enough to know it.
|
||||
/// Zero until then, and the aspect Picture-in-Picture is given.
|
||||
/// Zero until then.
|
||||
double video_width = 0.0;
|
||||
double video_height = 0.0;
|
||||
/// Which loaded file this state describes. Bumped by every load, so a
|
||||
|
||||
@@ -245,7 +245,7 @@ class NativeMpvHost private constructor(private val nativeHandle: Long) : Libmpv
|
||||
*/
|
||||
fun beginTransition() { mutableAdvancing.value = true }
|
||||
|
||||
/** Names the open episode for the media session, its notification and PiP. */
|
||||
/** Names the open episode for the media session and its notification. */
|
||||
fun publish(playing: NowPlaying?) { mutableNowPlaying.value = playing }
|
||||
|
||||
fun setPaused(paused: Boolean) {
|
||||
|
||||
+12
-9
@@ -117,15 +117,13 @@ position advances, which can only happen if real decrypted bytes reached the
|
||||
decoder. One live run serves all five cases, because each re-crawl of a real
|
||||
share costs about six minutes and the crawl is not what any of them tests.
|
||||
|
||||
**Still open, and the reason this entry stays open.** `picture-in-picture` is
|
||||
`pending`. It is no longer blocked on the app —
|
||||
[B40](#b40--picture-in-picture-was-entered-but-never-adapted-to) landed, so
|
||||
there is correct behaviour to assert — but the live suite drives the engine and
|
||||
libmpv directly, and PiP is a property of the window, so the case needs an
|
||||
activity-level driver that does not exist yet. Every run still prints that the
|
||||
matrix is incomplete. `process-recreation` has been promoted off its `xfail`
|
||||
now that [B35](#b35--navigation-and-player-state-did-not-survive-process-recreation)
|
||||
has landed, and has not been re-run on hardware since.
|
||||
**Still open, and the reason this entry stays open.** The matrix has not been
|
||||
run on hardware since the 2026-10 redesign of every screen, and
|
||||
`process-recreation` has not been re-run since
|
||||
[B35](#b35--navigation-and-player-state-did-not-survive-process-recreation)
|
||||
landed. The `picture-in-picture` case that was `pending` below went with
|
||||
Picture-in-Picture itself, which was later removed (`docs/ANDROID.md`), so
|
||||
nothing is `pending` any more.
|
||||
|
||||
**Verified on hardware**, 2026-08-08, Pixel 6 (`arm64-v8a`, API 37) against the
|
||||
signed minified release APK:
|
||||
@@ -1289,6 +1287,11 @@ out rather than leaving them mid-timeout.
|
||||
suppressed. The `picture-in-picture` acceptance case is now implementable — it
|
||||
was `pending` precisely because the assertion would have had to assert this bug.
|
||||
|
||||
**Since removed.** Picture-in-Picture itself was taken out later: a PiP window
|
||||
that never sized its video right proved less use than background audio and the
|
||||
lock-screen transport (`docs/ANDROID.md`). This entry records a fix to code
|
||||
that no longer exists.
|
||||
|
||||
### B45 — the play/pause button did nothing, everywhere
|
||||
|
||||
**Symptom.** Once an episode was open, every transport that can pause it was
|
||||
|
||||
Reference in new issue
Block a user