Methods

(static) applyFallbackFontScale() → {void}

Returns:
Type: 
void

(static) init() → {void}

Returns:
Type: 
void

(static) onKeyEvent(key, press) → {boolean}

Parameters:
NameTypeDescription
keystring
pressboolean
Returns:
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.

Returns:
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.

Returns:
Type: 
void

(static) onProgramProgressVisibilityChanged(msg) → {void}

Parameters:
NameTypeDescription
msgobject
Returns:
Type: 
void

(static) startProgramProgressTicking() → {void}

Returns:
Type: 
void

(static) stopProgramProgressTicking(releaseTimeropt) → {void}

Parameters:
NameTypeAttributesDefaultDescription
releaseTimerboolean<optional>
false
Returns:
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.

Parameters:
NameTypeDescription
statedynamic
Returns:
Type: 
void