Methods
(static) applyFallbackFontScale() → {void}
- Type:
- void
(static) init() → {void}
- Type:
- void
(static) onKeyEvent(key, press) → {boolean}
| Name | Type | Description |
|---|---|---|
key | string | |
press | boolean |
- Type:
- boolean
(static) onProgramProgressContentChanged() → {void}
Fires when m.top.content is assigned or reassigned by a subclass. Rebinds the textureManagerState observer to the new content root so the tick timer tracks visibility transitions for the current data set.
- Type:
- void
(static) onProgramProgressTick() → {void}
Walks the texture manager's loaded row range and rewrites playedPercentage on every Program child to its current broadcast-elapsed percentage. JRRowItem's bridge observer forwards these writes to any currently-mounted poster cells, refreshing visible bars without triggering a cell re-render. Non-Program items are skipped.
Iteration is scoped to loadedRowRange [bufferStart..bufferEnd] — the vertical range maintained by textureManager.bs — so large datasets (SearchRow, FavoritesRows) don't pay the cost of walking hundreds of offscreen items every minute on the render thread. Offscreen rows whose percentage goes stale during scroll-away will update at the next tick after re-entering the buffer range (up to ~60s stale window, accepted trade-off).
Also detects expired broadcasts (now >= PlayStart + PlayDuration) within the same buffer range and raises the programsExpired field. Subclasses that can refetch (HomeRows, ExtrasRowList) observe that field and trigger a fresh load. Expiry detection is scoped to the buffer range rather than the full content tree because Live TV rows in HomeRows/ExtrasRowList are always in the vertical buffer in practice — full-scan expiry on every tick would be unnecessary work for zero real-world benefit.
Hard-guards rather than full-scan fallback when loadedRowRange is missing or invalid: the tick only runs while textureManagerState = "active", which the state machine guarantees implies loadedRowRange is populated. A missing field surfaces an ordering regression loudly rather than masking it.
- Type:
- void
(static) onProgramProgressVisibilityChanged(msg) → {void}
| Name | Type | Description |
|---|---|---|
msg | object |
- Type:
- void
(static) startProgramProgressTicking() → {void}
- Type:
- void
(static) stopProgramProgressTicking(releaseTimeropt) → {void}
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
releaseTimer | boolean | <optional> | false |
- Type:
- void
(static) syncProgramProgressTicking(state) → {void}
Starts or stops the 60s Program progress tick based on the visibility state broadcast by the texture manager. Idempotent; safe on every state change. State arrives as dynamic because textureManagerState is unset (invalid) on freshly-created content roots — setupTextureManager only assigns "init" after the subclass first populates the content tree.
| Name | Type | Description |
|---|---|---|
state | dynamic |
- Type:
- void