Help with Poster Grid does not show all the information I am using this
GetEpisodes.brs
sub init()
m.top.functionName = "go"
end sub
sub go()
content = createObject("roSGNode", "ContentNode")
episode = jsonCapitulos(m.top.season)
if episode <> invalid then
for each item in episode
seasons = content.createChild("ContentNode")
seasons.id = item.id.toStr()
seasons.ContentType = "4"
seasons.title = item.title
seasons.EpisodeNumber = item.episode_num.toStr()
seasons.url = m.global.serverURL + m.global.play + item.id.toStr()+"."+item.container_extension
seasons.shortdescriptionline1 = "S" + item.season.toStr() + "E" + item.episode_num.toStr()
if item.info <> invalid and item.info.count() <> 0
seasons.description = item.info.plot.toStr()
seasons.releaseDate = item.info.releasedate
seasons.hdgridposterurl = item.info.movie_image
seasons.HDBackgroundImageUrl = item.info.movie_image
seasons.shortdescriptionline2 = item.info.plot.toStr()
end if
end for
end if
m.top.content = content
End sub
sub jsonCapitulos(season As String) As Object
url = m.global.serverURL + m.global.episode + m.top.cve
data = requestData(url)
json = ParseJSON(data)
if json <> invalid and json.episodes <> invalid then
return json.episodes[season]
else
return {}
end if
End sub
Seasons.brs
sub Init()
'print "[Seasons.brs] - init"
m.top.observeField("visible", "onVisibleChange")
m.loading = m.top.findNode("LoadingIndicator")
m.buttons = m.top.findNode("Buttons")
m.playbuttons = m.top.findNode("PlayButtons")
m.videoPlayer = m.top.findNode("VideoPlayer")
m.poster = m.top.findNode("Cover")
m.description = m.top.findNode("lblDescription")
m.background = m.top.findNode("Background")
m.fadeIn = m.top.findNode("fadeinAnimation")
m.fadeOut = m.top.findNode("fadeoutAnimation")
m.tilte = m.top.findNode("lblTitle")
m.date = m.top.findNode("lblDate")
m.rating = m.top.findNode("lblRating")
m.episodesgrid = m.top.findNode("EpisodesGrid")
m.savePositionToReg = createObject("roSGNode", "WriteVideoPosition")
m.savePositionToReg.section = "SerieResume"
m.seasons = createObject("roSGNode", "GetSeasons")
m.seasons.observeField("content", "createSeasons")
m.episodes = createObject("roSGNode", "GetEpisodes")
m.episodes.observeField("content", "setEpisodes")
m.videoPlayer.observeField("state", "OnVideoPlayerStateChange")
m.videoPlayer.observeField("position", "savePosition")
m.episodesgrid.observeField("itemSelected", "onEpisodeSelected")
End sub
sub createSeasons()
'print "[Seasons.brs] - createseasons"
m.buttons.content = m.seasons.content
m.buttons.visible = true
m.loading.control = "stop"
end sub
sub setEpisodes()
'print "[Seasons.brs] - setepisodes";
if m.episodes.content.getChild(0) = invalid then
m.buttons.visible = true
m.buttons.setFocus(true)
m.loading.control = "stop"
else
print "SetEpisodes in grid";
m.episodesgrid.content = m.episodes.content
m.episodesgrid.visible = true
m.episodesgrid.setFocus(true)
m.loading.control = "stop"
end if
end sub
' set proper focus to buttons if Details opened and stops Video if Details closed
Sub onVisibleChange()
'print "Seasons.brs - [onVisibleChange]"
if m.top.visible
m.fadeIn.control="start"
m.buttons.jumpToItem = 0
m.buttons.visible = true
m.buttons.setFocus(true)
checkFavorite()
else
m.fadeOut.control="start"
m.buttons.visible = false
m.poster.uri=""
m.background.uri=""
end if
End Sub
' set proper focus on buttons and stops video if return from Playback to details
Sub onVideoVisibleChange()
'print "Seasons.brs - [onVideoVisibleChange]"
if m.videoPlayer.visible = false and m.top.visible = true
m.episodesgrid.setFocus(true)
m.episodesgrid.observeField("itemSelected", "onEpisodeSelected")
m.videoPlayer.control = "stop"
else
m.episodesgrid.unobserveField("itemSelected")
end if
End Sub
' event handler of Video player msg
Sub OnVideoPlayerStateChange()
if m.videoPlayer.state = "error"
m.videoPlayer.visible = false
else if m.videoPlayer.state = "playing"
' playback handling
else if m.videoPlayer.state = "finished"
m.videoPlayer.visible = false
end if
End Sub
Sub onEpisodeFocused()
'print "Seasons.brs - [onEpisodeFocused]"
m.videoPlayer.content = m.episodesgrid.content.getChild(m.top.episodeFocused)
m.videoPlayer.content.HttpHeaders = m.headers
m.videoPlayer.control = "prebuffer"
End Sub
' on Button press handler
Sub onItemSelected()
'print "Seasons.brs - [onItemSelected] "
m.loading.control = "start"
m.episodes.cve = m.top.content.id
m.episodes.season = m.buttons.content.getChild(m.buttons.itemSelected).id
m.episodes.control = "RUN"
m.buttons.visible = false
End Sub
sub onEpisodeSelected()
'print "Seasons.brs - [onEpisodeSelected]"
m.resume = createObject("roSGNode", "ResumeVideo")
m.resume.section = "SerieResume"
m.resume.cve = m.videoPlayer.content.episodeNumber
m.resume.control = "RUN"
m.resume.observeField("state","resume")
end sub
sub resume()
'print "Seasons.brs - [Resume] Seconds in reg: " ; m.resume.pos
if m.resume.state = "stop"
if m.resume.pos >= 60 then
m.dialog = createObject("roSGNode", "Dialog")
m.dialog.title = "Resume"
m.dialog.optionsDialog = true
minutes = int(m.resume.pos/60)
seconds = int(m.resume.pos MOD 60)
secondsStr = seconds.toStr()
if seconds < 10 then secondsStr = "0" + seconds.toStr()
resumePos = "Resume from " + minutes.tostr() + ":" + secondsStr
m.dialog.buttons = [resumePos,"Start from beginning"]
m.top.getScene().dialog = m.dialog
m.dialog.observeField("buttonSelected","resumeSelected")
else
playEpisode()
end if
end if
'm.resume.unobserveField("pos")
end sub
sub resumeSelected()
'print "Seasons.brs - [ResumeSelected]"
if m.dialog.buttonSelected = 0 then
m.videoPlayer.seek = m.resume.pos
playEpisode()
else
playEpisode()
end if
m.dialog.close = true
end sub
sub playEpisode()
'print "[Seasons.brs] - playEpisode"
'print "Play episode: "; m.videoPlayer.content
m.videoPlayer.visible = true
m.videoPlayer.setFocus(true)
m.videoPlayer.control = "play"
end sub
sub savePosition()
if int(m.videoPlayer.position) MOD 2 = 0 and m.videoPlayer.position > 10 then
'print "Seasons.brs - [savePosition] Seconds:"; m.videoPlayer.position
m.savePositionToReg.cve = m.videoPlayer.content.episodeNumber
m.savePositionToReg.pos = m.videoPlayer.position - 10
m.savePositionToReg.control = "RUN"
end if
end sub
' Content change handler
Sub OnContentChange()
'print "Seasons.brs - [OnContentChange]"
m.description.text = m.top.content.description
m.poster.uri = m.top.content.HDPosterUrl
m.background.uri = m.top.content.hdBackgroundImageUrl
m.tilte.text = m.top.content.title
m.date.text = m.top.content.releasedate
m.rating.text = m.top.content.rating
if m.seasons.cve <> m.top.content.id then
m.buttons.content = invalid
m.loading.control = "start"
m.seasons.cve = m.top.content.id
m.seasons.control = "RUN"
m.buttons.visible = false
end if
end Sub
' Called when a key on the remote is pressed
function onKeyEvent(key as String, press as Boolean) as Boolean
'print ">>> Seasons >> OnkeyEvent"
result = false
'print "in Seasons.xml onKeyEvent. Key pressed: ";key;" - Press: "; press
if press then
if key = "back"
'print "------ [back pressed] ------"
'back from episodes to seasons
if m.buttons.visible = false and m.videoplayer.visible = false and m.episodesgrid.visible = true
m.episodesgrid.visible = false
m.episodes.observeField("content", "setEpisodes")
m.buttons.visible = true
m.buttons.setFocus(true)
result = true
end if
else if key = "up"
if m.top.visible and m.buttons.visible
m.buttons.jumpToItem = 0
end if
end if
end if
'print "Handled event: "; result
return result
end function
