jf-roku/components/home/Home.bs

55 lines
1.6 KiB
Plaintext
Raw Normal View History

import "pkg:/source/api/baserequest.bs"
import "pkg:/source/utils/config.bs"
import "pkg:/source/utils/misc.bs"
import "pkg:/source/utils/deviceCapabilities.bs"
sub init()
2023-10-30 22:04:09 +00:00
m.isFirstRun = true
2021-07-09 20:08:32 +00:00
m.top.overhangTitle = "Home"
m.top.optionsAvailable = true
2023-10-30 22:04:09 +00:00
m.postTask = createObject("roSGNode", "PostTask")
if m.global.session.user.settings["ui.home.splashBackground"] = true
m.backdrop = m.top.findNode("backdrop")
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.top.findNode("homeRows").callFunc("updateHomeRows")
end sub
sub loadLibraries()
2021-07-09 20:08:32 +00:00
m.top.findNode("homeRows").callFunc("loadLibraries")
2022-05-30 12:57:40 +00:00
end sub
2023-10-30 22:04:09 +00:00
2023-11-01 03:38:33 +00:00
' JFScreen hook that gets ran as needed.
' Used to update the focus, the state of the data, and tells the server about the device profile
2023-10-30 22:04:09 +00:00
sub OnScreenShown()
2023-11-01 03:38:33 +00:00
if isValid(m.top.lastFocus)
2023-10-30 22:04:09 +00:00
m.top.lastFocus.setFocus(true)
else
m.top.setFocus(true)
end if
if not m.isFirstRun
refresh()
end if
2023-10-30 22:04:09 +00:00
' 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")
end if
end sub
2023-11-01 03:38:33 +00:00
' Triggered by m.postTask after completing a post.
' Empty the task data when finished.
2023-10-30 22:04:09 +00:00
sub postFinished()
m.postTask.unobserveField("responseCode")
2023-10-31 00:15:05 +00:00
m.postTask.callFunc("empty")
2023-10-30 22:04:09 +00:00
end sub