Store release issues (#180)

* Remove TrackerTask

* Change deprecated BookmarkPosition to PlayStart

* Accept (print & ignore) roInput commands

* Updated icon image sizes

* Added InputData Task (Not hooked up)

* Added signal beacons for Roku Performance Measuring

* Reverting ineffective roInput code

* Manually recreated changed channel poster images

* Use app_loaded global variable to control when performance beacons are sent

* Sorting missed performance signal beacon
This commit is contained in:
Neil Burrows 2020-04-29 17:26:12 +01:00 committed by GitHub
parent ddae9b5862
commit b313d57515
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 78 additions and 2630 deletions

4
app.mk
View File

@ -181,8 +181,8 @@ get_images:
echo "Creating image files"
@convert -background "#000b25" -gravity center -scale 535x400 -extent 540x405 $(BANNER_SOURCE) $(OUTPUT_DIR)/channel-poster_fhd.png
@convert -background "#000b25" -gravity center -scale 275x205 -extent 280x210 $(BANNER_SOURCE) $(OUTPUT_DIR)/channel-poster_hd.png
@convert -background "#000b25" -gravity center -scale 182x135 -extent 187x140 $(BANNER_SOURCE) $(OUTPUT_DIR)/channel-poster_sd.png
@convert -background "#000b25" -gravity center -scale 275x205 -extent 336x210 $(BANNER_SOURCE) $(OUTPUT_DIR)/channel-poster_hd.png
@convert -background "#000b25" -gravity center -scale 182x135 -extent 246x140 $(BANNER_SOURCE) $(OUTPUT_DIR)/channel-poster_sd.png
@convert -background none -gravity center -scale 1000x48 -extent 180x48 $(BANNER_SOURCE) $(OUTPUT_DIR)/logo.png

33
components/InputTask.brs Normal file
View File

@ -0,0 +1,33 @@
Sub Init()
m.top.functionName = "listenInput"
End Sub
function ListenInput()
port=createobject("romessageport")
InputObject=createobject("roInput")
InputObject.setmessageport(port)
while true
msg=port.waitmessage(500)
if type(msg)="roInputEvent" then
print "INPUT EVENT!"
if msg.isInput()
inputData = msg.getInfo()
'print inputData'
for each item in inputData
print item +": " inputData[item]
end for
' pass the deeplink to UI
if inputData.DoesExist("mediaType") and inputData.DoesExist("contentID")
deeplink = {
id: inputData.contentID
type: inputData.mediaType
}
print "got input deeplink= "; deeplink
m.top.inputData = deeplink
end if
end if
end if
end while
end function

9
components/InputTask.xml Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<component name="InputTask" extends="Task">
<interface>
<field id="inputData" type="assocarray" />
</interface>
<script type="text/brightscript" uri="InputTask.brs" />
</component>

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,4 @@
sub init()
m.tracker=m.top.createChild("TrackerTask")
m.top.setFocus(true)
end sub

View File

@ -1,5 +1,4 @@
sub init()
m.tracker=m.top.createChild("TrackerTask")
m.top.overhangTitle = "Home"
end sub

View File

@ -10,6 +10,8 @@ sub init()
m.top.rowLabelOffset = [0, 20]
m.top.showRowCounter = [true]
m.libariesToLoad = 0
updateSize()
m.top.setfocus(true)
@ -168,6 +170,7 @@ function updateNextUpItems()
loadLatest.observeField("content", "updateLatestItems")
loadLatest.control = "RUN"
m.libariesToLoad += 1
end if
end for
end function
@ -221,6 +224,12 @@ function updateLatestItems(msg)
homeRows.replaceChild(row, rowIndex)
end if
end if
m.libariesToLoad -= 1
if m.libariesToLoad = 0 and m.global.app_loaded = false then
m.top.signalBeacon("AppLaunchComplete") ' Roku Performance monitoring
m.global.app_loaded = true
end if
end function
function getRowIndex(rowTitle as string)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

@ -20,3 +20,5 @@ ui_resolutions=fhd
screensaver_private=0
screensaver_title=Jellyfin
supports_input_launch=1

View File

@ -10,6 +10,10 @@ sub Main()
m.scene = m.screen.CreateScene("JFScene")
m.screen.show()
' Set any initial Global Variables
m.global = m.screen.getGlobalNode()
m.global.addFields( {app_loaded: false} )
m.overhang = CreateObject("roSGNode", "JFOverhang")
m.scene.insertChild(m.overhang, 0)
@ -32,8 +36,9 @@ sub Main()
m.scene.observeField("optionsPressed", m.port)
m.scene.observeField("mutePressed", m.port)
m.device = CreateObject("roDeviceInfo")
m.device.SetMessagePort(m.port)
' Handle input messages
input = CreateObject("roInput")
input.SetMessagePort(m.port)
' This is the core logic loop. Mostly for transitioning between scenes
' This now only references m. fields so could be placed anywhere, in theory
@ -378,7 +383,9 @@ function LoginFlow(startOver = false as boolean)
start_login:
if get_setting("server") = invalid or ServerInfo() = invalid or startOver = true then
print "Get server details"
SendPerformanceBeacon("AppDialogInitiate") ' Roku Performance monitoring - Dialog Starting
serverSelection = CreateServerGroup()
SendPerformanceBeacon("AppDialogComplete") ' Roku Performance monitoring - Dialog Closed
if serverSelection = "backPressed" then
print "backPressed"
wipe_groups()
@ -387,6 +394,7 @@ function LoginFlow(startOver = false as boolean)
end if
if get_setting("active_user") = invalid then
SendPerformanceBeacon("AppDialogInitiate") ' Roku Performance monitoring - Dialog Starting
publicUsers = GetPublicUsers()
if publicUsers.count() then
publicUsersNodes = []
@ -402,12 +410,14 @@ function LoginFlow(startOver = false as boolean)
userSelected = CreateUserSelectGroup(publicUsersNodes)
m.scene.focusedChild.visible = false
if userSelected = "backPressed" then
SendPerformanceBeacon("AppDialogComplete") ' Roku Performance monitoring - Dialog Closed
return LoginFlow(true)
else
'Try to login without password. If the token is valid, we're done
get_token(userSelected, "")
if get_setting("active_user") <> invalid then
m.user = AboutMe()
SendPerformanceBeacon("AppDialogComplete") ' Roku Performance monitoring - Dialog Closed
return true
end if
end if
@ -415,6 +425,7 @@ function LoginFlow(startOver = false as boolean)
userSelected = ""
end if
passwordEntry = CreateSigninGroup(userSelected)
SendPerformanceBeacon("AppDialogComplete") ' Roku Performance monitoring - Dialog Closed
if passwordEntry = "backPressed" then
m.scene.focusedChild.visible = false
return LoginFlow(true)
@ -491,3 +502,10 @@ sub RemoveCurrentGroup()
end if
group.visible = true
end sub
' Roku Performance monitoring
sub SendPerformanceBeacon(signalName as string)
if m.global.app_loaded = false then
m.scene.signalBeacon(signalName)
end if
end sub

View File

@ -37,7 +37,7 @@ function VideoContent(video) as object
position = 0
end if
end if
video.content.BookmarkPosition = int(position/10000000)
video.content.PlayStart = int(position/10000000)
video.PlaySessionId = ItemGetSession(video.id, position)
transcodeParams = getTranscodeParameters(meta)

View File

@ -43,7 +43,7 @@ sub changeSubtitleDuringPlayback(newid)
video.SelectedSubtitle = newid
if newTrack.IsTextSubtitleStream then
if video.content.BookmarkPosition > video.position
if video.content.PlayStart > video.position
'User has rewinded to before playback was initiated. The Roku never loaded this portion of the text subtitle
'Changing the track will cause plaback to jump to initial bookmark position.
video.suppressCaptions = true
@ -159,6 +159,6 @@ sub rebuildURL(captions as boolean)
end if
video.content.url = buildURL(base, params)
video.content.BookmarkPosition = int(video.position + playBackBuffer)
video.content.PlayStart = int(video.position + playBackBuffer)
video.control = "play"
end sub