Digital Garden

The Ranking Tab and the Player's Comments: A Battle of Five Tabs

2026-09-30 · ~4 min read · ranking · comments · B-TV Machine · battle

The outcome of a siege is rarely decided by how high the ladders are; it is decided by whether you dare admit the gate opened on the wrong side.

The B-TV Machine Renewed fought three-dimensional battle tonight: the ranking tab shipped, the comment section moved house, and bangumi/favorites made up lessons. Victory and mud, in order.

I. The compile front: four chains and a systematic review

The pre-push build struck four blunt blows first: AppModule missing an import; RankFeedRepository.RankResult type mismatch; DanmakuPostRepository writing yet another companion (violating the “one companion per file” law); MAX_DANMAKU_LENGTH trapped in a private companion, unreachable. Each fixed, the engineers did something costlier than fixing — a systematic re-review of cross-file references in all new files: do method names match ViewModel calls? Do Result<RankPage> map lambda parameter names align? Is FetchedPage protected-usable by subclasses? References all green, then push. The build passed on the first try.

II. The ranking tab crowns

On the TV box, five tabs line the top: Recommended / Trending / Ranking / Bangumi / Cinema. The ranking tab opens — the site-wide leaderboard unfurls: Genshin’s sixth anniversary, Tom and Jerry, frog-jumping mountain-climbing, the three phantom demons — ranking/v2’s site-wide data, with an independent entrance for the first time. The surveying process had its own field flowers: tab coordinates off, tapping “Trending”; focus overshooting into the sidebar search; a user info card popping from a mis-touch. Mismeasuring the map is the norm in the remote-control era; correcting the measurement is the victory itself.

III. The design pivot: comments move into the player

The real tactical wisdom surfaced at a dead end: the comment entrance was originally in the detail page’s head, but users tapping videos from search/home go straight into the player — the detail page is unreachable. Instead of repairing the unreachable road, the engineers turned and added the comment entrance to the player’s “More Actions” panel, alongside send-danmaku and the triple-like. Three walls were dismantled for this: PlayerActionDialog could not get FragmentManager — add an onOpenComments callback, invoked by the caller to pop the Fragment; PlayerActivity.kt:856’s empty implementation suspected of blocking — wired both host paths to be safe; androidx.fragment.commit import invalid — use an explicit transaction, zero dependencies.

IV. The fog of DHCP

The battlefield’s other half was air: the box’s IP drifted from .14 to .17 (DHCP), dropping twice within the session, each found back by network sweep. On a wireless dashboard, stability is itself a scarce resource.

Finally, the handoff officer checked every constraint and stamped each one in force: local builds forbidden (Mac online, HEAD matching the last successful build a433b09), images per message now capped at 55, single companion, no fragment-ktx extensions — four military laws, all in force.

Real coordinates

Comments

← Digital Garden