jellyfin / jellyfin-roku

The Official Roku Client for Jellyfin
https://jellyfin.org
GNU General Public License v2.0
419 stars 128 forks source link

Options don't work for Movie/TV/Collection libraries #147

Closed cewert closed 2 years ago

cewert commented 4 years ago

Describe the bug Hitting the options button, while viewing a list of TV Shows, causes the options panel to open but nothing is shows up on the options panel or is select-able.

To Reproduce

  1. Select a TV Show library
  2. Hit the Options button on your remote(*)
  3. Observe

Expected behavior Sort Field and Sort Order like with movies

cewert commented 4 years ago

Sort options show up on Movie libraries but they also don't work.

Alcatraz077 commented 4 years ago

Yeah, I can confirm this as well. The error that's produced is:

Warning occurred while setting a field of an RoSGNode -- Tried to set nonexistent field "optionselected" of a "OptionsData" node at line 36 of file pkg:/components/options/panel.brs

Which line 36 (data.optionSelected = true) is part of this function under panel.brs.

function onKeyEvent(key as string, press as boolean) as boolean
    if not press then return false

    if key = "options" or key = "back"
        m.top.visible = false
        m.top.closeSidePanel = true
        return true
    else if key = "OK"
        list = m.top.findNode("panelList")
        data = list.content.getChild(list.itemFocused)
        data.optionSelected = true
        return true
    end if

    return false
end function

The BrightScript debugger returns this:

Current Function:
030:    m.scene.observeField("backPressed", m.port)
031:    m.scene.observeField("optionsPressed", m.port)
032:
033:    ' This is the core logic loop. Mostly for transitioning between scenes
034:    ' This now only references m. fields so could be placed anywhere, in theory
035:    ' "group" is always "whats on the screen"
036:    ' m.scene's children is the "previous view" stack
037:    while(true)
038:*     msg = wait(0, m.port)
039:      if type(msg) = "roSGScreenEvent" and msg.isScreenClosed() then
040:        print "CLOSING SCREEN"
041:        return
042:      else if isNodeEvent(msg, "backPressed")
Break in 38
038:     msg = wait(0, m.port)
Backtrace:
#0  Function main() As Void
   file/line: pkg:/source/Main.brs(38)
Local Variables:
global           Interface:ifGlobal
m                roAssociativeArray refcnt=2 count:6
group            roSGNode:Movies refcnt=1
msg              roSGNodeEvent refcnt=1
n                Integer val:2 (&h2)
panel            roSGNode:OptionsSlider refcnt=1
node             roSGNode:LibraryData refcnt=1
ptr              <uninitialized>
series           <uninitialized>
video_id         <uninitialized>
query            <uninitialized>
options          <uninitialized>
results          <uninitialized>
btn              <uninitialized>
movie            <uninitialized>
button           <uninitialized>
video            <uninitialized>
rooibos__init    <uninitialized>
Threads:
ID    Location                                Source Code
 0*   pkg:/source/Main.brs(38)                msg = wait(0, m.port)
 1    pkg:/components/TrackerTask.xml(1733)   msg = wait(0, inputPort)
  *selected

Apologies for not being able to submit a possible solution, I'm currently attempting to teach myself BrightScript in between work and other priorities, but I figured some debugging info might be useful.

caj411 commented 4 years ago

I have the same issue with the Home screen on the Roku Beta app.
No titles display under library unless I use type Movie when creating the library. It states 'This CollectionFolder contains no items'. I've tried creating libraries using TV shows, Mixed content, and neither will display in the Roku app. They work fine in the browser, but the only way I have been able to get it to display the titles in the Roku app is if I use the 'Movie' category.

edit: When I re-created the libraries, I turned off the Movie metadata downloaders as they suck at best. I don't know if that has any impact on the issue.

I noticed that my titles that are missing still appeared in the 'latest' catagory, and would play fine if selected there.

jimdogx commented 2 years ago

I believe this should have been closed when #265 was merged. In either case, Options => Sorting now works.