components_home_Home.bs

import "pkg:/source/api/baserequest.bs"
import "pkg:/source/utils/config.bs"
import "pkg:/source/utils/deviceCapabilities.bs"
import "pkg:/source/utils/misc.bs"

sub init()
  m.isFirstRun = true
  m.top.overhangTitle = "Home"
  m.top.optionsAvailable = true
  m.postTask = createObject("roSGNode", "PostTask")

  m.homeRows = m.top.findNode("homeRows")

  m.backdrop = m.top.findNode("backdrop")
  if m.global.session.user.settings["ui.home.splashBackground"] = true
    m.backdrop.uri = buildURL("/Branding/Splashscreen?format=jpg&foregroundLayer=0.15&fillWidth=1280&width=1280&fillHeight=720&height=720&tag=splash")
  end if
end sub

sub refresh()
  m.homeRows.callFunc("updateHomeRows")
end sub

sub loadLibraries()
  m.homeRows.callFunc("loadLibraries")
end sub

' JRScreen hook called when the screen is displayed by the screen manager
sub OnScreenShown()
  scene = m.top.getScene()
  overhang = scene.findNode("overhang")
  if isValid(overhang)
    overhang.isLogoVisible = true
    overhang.currentUser = m.global.session.user.name
    overhang.title = tr("Home")
  end if

  if isValid(m.top.lastFocus)
    m.top.lastFocus.setFocus(true)
  else
    m.top.setFocus(true)
  end if

  ' post the device profile the first time this screen is loaded
  if m.isFirstRun
    m.isFirstRun = false
    m.postTask.arrayData = getDeviceCapabilities()
    m.postTask.apiUrl = "/Sessions/Capabilities/Full"
    m.postTask.control = "RUN"
    m.postTask.observeField("responseCode", "postFinished")
  else
    refresh()

    if m.global.session.user.settings["ui.home.splashBackground"] = true
      m.backdrop.uri = buildURL("/Branding/Splashscreen?format=jpg&foregroundLayer=0.15&fillWidth=1280&width=1280&fillHeight=720&height=720&tag=splash")
    else
      m.backdrop.uri = ""
    end if
  end if
end sub

' JRScreen hook called when the screen is hidden by the screen manager
sub OnScreenHidden()
  scene = m.top.getScene()
  overhang = scene.findNode("overhang")
  if isValid(overhang)
    overhang.isLogoVisible = false
    overhang.currentUser = ""
    overhang.title = ""
  end if
end sub

' Triggered by m.postTask after completing a post.
' Empty the task data when finished.
sub postFinished()
  m.postTask.unobserveField("responseCode")
  m.postTask.callFunc("empty")
end sub