Merge pull request #922 from ApexArray/fix-distorted-images
Fix distorted TV episode posters. Add client-side progress bar and played indicator.
This commit is contained in:
commit
c702694fc7
|
@ -8,6 +8,11 @@ sub init()
|
|||
|
||||
m.rating = m.top.findnode("rating")
|
||||
m.infoBar = m.top.findnode("infoBar")
|
||||
m.progressBackground = m.top.findNode("progressBackground")
|
||||
m.progressBar = m.top.findnode("progressBar")
|
||||
m.playedIndicator = m.top.findNode("playedIndicator")
|
||||
m.checkmark = m.top.findNode("checkmark")
|
||||
m.checkmark.font.size = 35
|
||||
end sub
|
||||
|
||||
sub itemContentChanged()
|
||||
|
@ -64,6 +69,20 @@ sub itemContentChanged()
|
|||
m.infoBar.itemSpacings = [20, -25, 20, 20]
|
||||
end if
|
||||
|
||||
' Add checkmark in corner (if applicable)
|
||||
if isValid(itemData?.UserData?.Played) and itemData.UserData.Played = true
|
||||
m.playedIndicator.visible = true
|
||||
end if
|
||||
|
||||
' Add progress bar on bottom (if applicable)
|
||||
if isValid(itemData?.UserData?.PlayedPercentage) and itemData?.UserData?.PlayedPercentage > 0
|
||||
m.progressBackground.width = m.poster.width
|
||||
m.progressBackground.visible = true
|
||||
progressWidthInPixels = int(m.progressBackground.width * itemData.UserData.PlayedPercentage / 100)
|
||||
m.progressBar.width = progressWidthInPixels
|
||||
m.progressBar.visible = true
|
||||
end if
|
||||
|
||||
videoIdx = invalid
|
||||
audioIdx = invalid
|
||||
|
||||
|
|
|
@ -2,8 +2,15 @@
|
|||
<component name="TVListDetails" extends="Group">
|
||||
<children>
|
||||
<LayoutGroup id="toplevel" layoutDirection="vert" itemSpacings="[40]">
|
||||
<LayoutGroup id="main_group" layoutDirection="horiz" itemSpacings="[30]">
|
||||
<Poster id="poster" width="350" height="300" />
|
||||
<LayoutGroup id="main_group" layoutDirection="horiz" itemSpacings="[30]">
|
||||
<Poster id="poster" width="350" height="300" loadDisplayMode="scaleToZoom">
|
||||
<Rectangle id="playedIndicator" color="#00a4dcFF" width="60" height="46" visible="false" translation="[290, 0]">
|
||||
<Label id="checkmark" width="60" height="42" font="font:SmallestBoldSystemFont" horizAlign="center" vertAlign="bottom" text="✓"/>
|
||||
</Rectangle>
|
||||
<Rectangle id="progressBackground" visible="false" color="0x00000098" width="350" height="16" translation="[0,286]">
|
||||
<Rectangle id="progressBar" color="#00a4dcFF" width="0" height="16" visible="false"/>
|
||||
</Rectangle>
|
||||
</Poster>
|
||||
<LayoutGroup id="text" layoutDirection="vert" itemSpacings="[15]">
|
||||
<!-- Using poster of 1 length to get spacing. Not successful with adding translation to title -->
|
||||
<Poster id="null" height="1" />
|
||||
|
|
|
@ -389,11 +389,7 @@ function TVEpisodes(show_id as string, season_id as string)
|
|||
data = getJson(resp)
|
||||
results = []
|
||||
for each item in data.Items
|
||||
imgParams = { "AddPlayedIndicator": item.UserData.Played, "maxWidth": 400, "maxheight": 250 }
|
||||
if item.UserData.PlayedPercentage <> invalid
|
||||
param = { "PercentPlayed": item.UserData.PlayedPercentage }
|
||||
imgParams.Append(param)
|
||||
end if
|
||||
imgParams = { "maxWidth": 400, "maxheight": 250 }
|
||||
tmp = CreateObject("roSGNode", "TVEpisodeData")
|
||||
tmp.image = PosterImage(item.id, imgParams)
|
||||
if tmp.image <> invalid
|
||||
|
|
Loading…
Reference in New Issue
Block a user