Methods

(static) SetUpOptions() → {void}

Returns:
Type: 
void

(static) configureBackdrop() → {void}

Returns:
Type: 
void

(static) configureGrid() → {void}

Returns:
Type: 
void

(static) deliverFilters(filters, errorMsg) → {void}

Hand the filter result back to the presenter, which owns m.apiFilters + the toast. This is needed because Roku promise callbacks run at component scope, not on the presenter class instance.

Parameters:
NameTypeDescription
filtersobject
errorMsgstring
Returns:
Type: 
void

(static) getCollectionType() → {string}

Returns:
Type: 
string

(static) getDefaultView() → {string}

Returns:
Type: 
string

(static) getItemFlatIndex(itemId) → {integer}

Returns the flat index of an item within the grid's content root. Called by GridItem via callFunc for O(1) index lookup (avoids O(N) child scan).

Parameters:
NameTypeDescription
itemIdstring

the Jellyfin item ID to look up

Returns:

flat index, or -1 if not found

Type: 
integer

(static) getItemFocused() → {dynamic}

Returns:
Type: 
dynamic

(static) hideTVGuide() → {void}

Hide TV Guide and return to grid

Returns:
Type: 
void

(static) init() → {void}

Returns:
Type: 
void

(static) loadFilters(params) → {void}

Render-thread filter load, collapsed from GetFiltersTask (Phase-4 pure-fetch Task collapse; see docs/dev/promises.md). Invoked by the presenter via callFunc so the body runs in component-m context, where fetchAsync + auto-abandon work — the presenter is a class, and the auto-abandon plugin only injects into components with onDestroy (which BaseGridView has). The presenter still owns m.apiFilters + the toast; this just fetches and hands the result back via deliverFilters().

Parameters:
NameTypeDescription
paramsobject
Returns:
Type: 
void

(static) loadInitialItems() → {void}

Returns:
Type: 
void

(static) loadLibraryFromRoute(route) → {void}

Configure the library view from its route. Both in-app navigation and a deep link / cast supply the rich library node as route.context.item (the resolver passes the node it already validated), so there is no fetch here. A missing context node is therefore an unexpected route shape, not a deferred feature — warn rather than silently render nothing.

Parameters:
NameTypeDescription
routeobject
Returns:
Type: 
void

(static) loadMoreData() → {void}

Returns:
Type: 
void

(static) onAlphaActiveChanged() → {void}

Returns:
Type: 
void

(static) onAlphaSelectedChanged() → {void}

Returns:
Type: 
void

(static) onDestroy() → {void}

onDestroy: Full teardown releasing all resources before component removal Called automatically via JRScreen.beforeViewClose when sgRouter permanently closes this view.

Returns:
Type: 
void

(static) onGenreItemFocused() → {void}

Returns:
Type: 
void

(static) onGenreItemSelected() → {void}

Returns:
Type: 
void

(static) onItemDataLoaded(msg) → {void}

Parameters:
NameTypeDescription
msgdynamic
Returns:
Type: 
void

(static) onItemFocused() → {void}

Returns:
Type: 
void

(static) onItemSelected() → {void}

Returns:
Type: 
void

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

Parameters:
NameTypeDescription
keystring
pressboolean
Returns:
Type: 
boolean

(static) onLibrarySelection(msg) → {void}

A grid / genre / channel item was selected — navigate to its route (rich node as context). Non-navigable selections fall through to playback.

Parameters:
NameTypeDescription
msgdynamic
Returns:
Type: 
void

(static) onPresenterLogoLoaded(event) → {void}

Bridge callback for presenter logo loading - forwards to presenter.onLogoLoaded() This is needed because Roku observers look for functions at component scope, not on class instances. Presenters should observe with "onPresenterLogoLoaded".

Parameters:
NameTypeDescription
eventobject
Returns:
Type: 
void

(static) onPresenterTypeChanged() → {void}

Called when presenterType field changes - creates the appropriate presenter

Returns:
Type: 
void

(static) onQuickPlayLaunch(msg) → {void}

Forward a non-navigable selection to the playback launcher.

Parameters:
NameTypeDescription
msgdynamic
Returns:
Type: 
void

(static) onScreenHidden() → {void}

Returns:
Type: 
void

(static) onScreenShown() → {void}

Returns:
Type: 
void

(static) onTVGuideFocusedChannel() → {void}

Handle channel focus from TV Guide

Returns:
Type: 
void

(static) onTVGuideWatchChannel() → {void}

Handle channel selection from TV Guide

Returns:
Type: 
void

(static) onVoiceFilter() → {void}

Returns:
Type: 
void

(static) optionsClosed() → {void}

Returns:
Type: 
void

(static) prepareDataLoad(disableRemoteopt) → {void}

Prepare for data loading by stopping any active task, showing spinner, and hiding empty text

Parameters:
NameTypeAttributesDefaultDescription
disableRemoteboolean<optional>
false

Whether to disable remote input during loading

Returns:
Type: 
void

(static) reloadGridItems() → {void}

Full reset + reload of the grid. Used by optionsClosed (sort/filter/view change) and by the resume-time content-freshness check in onScreenShown (a delete elsewhere invalidated our cached content).

Returns:
Type: 
void

(static) setupNodes() → {void}

Returns:
Type: 
void

(static) showTVGuide() → {void}

Show TV Guide (EPG) for LiveTV

Returns:
Type: 
void

(static) updateBackdropForFocusedItem() → {void}

Returns:
Type: 
void

(static) updateTitle() → {void}

Returns:
Type: 
void