Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
6.3 KiB
Orbit TV 0.99.16: automatic English subtitles (Stage D2)
Paul approved building this on 4 November 2026 at 15:28. Installing it needs its own approval. The change is to playback's subtitle choice only. Scheduling, plans, cursors, pools and presentation are unchanged.
What's in it
subtitleChoice(WatchingControls.kt) decides the subtitle track each programme opens with:- A choice the viewer made in this visit wins: a language, or Off.
- Otherwise the subtitles setting applies, as before: English where there's some, when the setting is on.
- Otherwise, the new rule: a programme whose sound is all tagged as other languages opens with English subtitles, if it has an English track. Japanese-only anime such as Beerus is the case in point.
- Untagged or "und" sound gets the benefit of the doubt and stays as before.
- A programme with no English track gets no subtitles, so no foreign track appears unasked.
- Off by hand is now different from never chosen. Choosing Off in the subtitles and audio panel saves
SUBTITLES_OFFfor the visit, not "nothing". It keeps subtitles off, including on Beerus. The untouched default, with the setting off, is still "nothing", so the automatic rule can apply. - Nothing is saved by the automatic choice.
- It picks a track for that programme only. The next programme, after a changeover or a channel change, decides afresh.
- The global subtitles setting is never changed.
- A visit (watching full screen) starts from the setting, as before. Leaving full screen and coming back starts again from the setting, so a manual choice lasts for the visit, as it does today.
- Both paths use the rule: a programme opened directly, and one handed over from the picture on the main screen.
- The 0.99.15 playback test now starts from the subtitles setting, as a channel does, so it tests what a viewer would actually get.
- Version: 0.99.16 (versionCode 146).
Checks before install
- 449 unit tests pass (2 skipped: hand-run replays that need input files). Lint has no errors.
- Five new tests in AutoSubtitlesTest:
- Beerus (Japanese sound; English, Portuguese, Spanish and an external English track, as the box read them) opens with English with the setting off, whatever the track order.
- English programmes are unchanged: no subtitles with the setting off, English with it on. Beerus also gets English with it on.
- Untagged or "und" sound, a mix including an untagged track, and Japanese with no English track all stay without subtitles.
- Manual choices win: Off keeps Beerus without subtitles, and a chosen language is kept.
- Programme change, channel change and restart:
- Beerus gets English.
- The next English programme gets none, because nothing carried over and nothing was saved.
- A change to another Japanese-only channel gets English again.
- Manual Off stays off for the rest of the visit.
- A restart is a new visit, and Beerus gets English again.
- With the setting on, everything is as before.
- Booking fingerprints: the four-week replay of all 30 channels on 0.99.16 is identical to 0.99.15 on every channel (docs/replays/replay-fingerprints-0.99.16.txt).
On the box after install (proposed)
Run with the TV idle and Paul watching. Paul's subtitles setting is off.
- Beerus: the playback test on episode 1 (8016755) should show English selected and subtitle lines produced.
- An English-language episode: the playback test on one should show none selected.
- Ordinary viewing: a channel change and a programme changeover with no subtitle surprises.
These need Paul's eyes as well as the log.
Rollback
Install 0.99.15. A manual Off saved during a visit lives only in memory, so nothing persists.
Installation record (4 November 2026, 15:37 GMT)
Approved by Paul at 15:35 ("yes install", replying to the D2 release). Another app on the box, Silo, was playing in front, so Orbit wasn't being watched. Installing Orbit doesn't touch other apps, and Silo stayed in front throughout.
- Snapshot and rollback:
- All 191 schedule-folder files and the settings file were copied off the box, to install-0.99.16-20261104-154546.
- A rollback copy is on the box in
no_backup/schedule-rollback-0.99.15. - The 0.99.15 APK is in outputs/revision-0.99.15.
- Install: the APK's SHA-256 was checked before install. The box reports versionCode 146, 0.99.16-auto-subtitles.
- After install: all 191 files and the settings file are byte-identical. Orbit hasn't been opened since.
- Still to do, when the TV is free:
- open Orbit and check the top-up passes;
- run the playback test on Beerus, where English should be selected with the setting off;
- run it on an English episode, where none should be selected;
- check ordinary channel changes.
On-box check (4 November 2026, 15:52 to 16:06 GMT)
Paul said the TV was idle at 15:50. Paul's subtitles setting is off. These were run with 0.99.16's playback test, which starts from the setting as a channel does.
| Beerus episode 1 (Emby 8016755) | Friends episode 1 (Emby 6947925): the English regression | |
|---|---|---|
| Picture | video/avc 1920×1080 | video/dolby-vision 3840×2160 |
| Sound | AAC, Japanese ("ja"), 2 channels | E-AC3, English, 6 channels |
| Subtitle tracks | 4 (English, Portuguese, Spanish, external English) | 10 (English ×2, Danish, Finnish, Norwegian, Swedish) |
| Selected | English, automatically | none, as before |
| Subtitle updates | 34 (first at 15.1 s) | 0 |
| Errors | 0 | 0 |
- Friends launch: the first attempt didn't start, because the box's home screen came to the front as the old Orbit process was force-stopped. Orbit was stopped and opened again, and the second attempt ran.
- Orbit afterwards: it resumed normally. All 30 channels topped up twice with `added=0` and `clashes=0`, with no player, decoder or crash errors.
- Files:
- The settings file is byte-identical.
- Every plan entry, presentation key and plan cursor is unchanged. The plans only dropped programmes that ended more than 24 hours ago.
- 33 aired places moved, each to the latest programme of its show already started.
- Paul's view on the TV: "beerus played for 3 mins english subs played no issues" (15:55). Friends played with "zero issues" (16:05).