diff --git a/components/home/HomeItem.bs b/components/home/HomeItem.bs
index ff84644d..882f6b5f 100644
--- a/components/home/HomeItem.bs
+++ b/components/home/HomeItem.bs
@@ -28,6 +28,7 @@ end sub
sub itemContentChanged()
+ m.unplayedCount.visible = false
itemData = m.top.itemContent
if itemData = invalid then return
diff --git a/components/home/HomeRows.bs b/components/home/HomeRows.bs
index f5895e88..a611ebcf 100644
--- a/components/home/HomeRows.bs
+++ b/components/home/HomeRows.bs
@@ -1,5 +1,5 @@
import "pkg:/source/utils/misc.bs"
-import "pkg:/components/ImageSizes.bs"
+import "pkg:/source/constants/ImageSizes.bs"
' The maximum number of seconds we will show the loading spinner and delay the user from using the home view while the content loads
' We use this to wait for the rows to load so we can reset focus to the row/item once it loads
@@ -21,7 +21,6 @@ sub init()
m.loadingTimer = createObject("roSGNode", "Timer")
m.loadingTimer.duration = MAX_TIME_HOME_LOADING_SPINNER_SHOWN
- m.loadingTimer.repeat = true
m.loadingTimer.observeField("fire", "stopLoadingSpinner")
updateSize()
@@ -308,6 +307,7 @@ end sub
' Update home row data
sub updateHomeRows()
startMediaLoadingSpinner()
+ m.loadingTimer.control = "start"
content = processUserSections()
setRowItemSizes()
m.top.content = content
@@ -454,6 +454,7 @@ sub updateLatestItems(msg)
row = CreateObject("roSGNode", "HomeRow")
row.title = tr("Latest in") + " " + node.metadata.title + " >"
row.usePoster = true
+
' Handle specific types with different item widths
if node.metadata.contentType = "movies"
row.imageWidth = imageSizes.MOVIE_POSTER[0]
@@ -524,21 +525,19 @@ end sub
' setFocusToPreviousFocusedItem: Sets the cursor focus to the row and item previously selected
'
sub setFocusToPreviousFocusedItem()
- m.loadingTimer.control = "start"
+ if not isValidAndNotEmpty(m.selectedRowItem) then return
- if isValid(m.selectedRowItem)
- ' Set focus to row if it exists
- itemRow = m.top.content.getChild(m.top.rowItemSelected[0])
- if isValid(itemRow)
- m.top.jumpToItem = m.top.rowItemSelected[0]
+ ' Set focus to row if it exists
+ itemRow = m.top.content.getChild(m.selectedRowItem[0])
+ if isValid(itemRow)
+ m.top.jumpToItem = m.selectedRowItem[0]
- ' Set focus to column if it exists
- itemColumn = itemRow.getChild(m.top.rowItemSelected[1])
- if isValid(itemColumn)
- m.top.jumpToRowItem = [m.selectedRowItem[0], m.selectedRowItem[1]]
- m.loadingTimer.control = "stop"
- stopLoadingSpinner()
- end if
+ ' Set focus to column if it exists
+ itemColumn = itemRow.getChild(m.selectedRowItem[1])
+ if isValid(itemColumn)
+ m.top.jumpToRowItem = [m.selectedRowItem[0], m.selectedRowItem[1]]
+ m.loadingTimer.control = "stop"
+ stopLoadingSpinner()
end if
end if
end sub
diff --git a/locale/en_US/translations.ts b/locale/en_US/translations.ts
index 54af561b..1fe47848 100644
--- a/locale/en_US/translations.ts
+++ b/locale/en_US/translations.ts
@@ -1232,13 +1232,13 @@
Message shown in OSD when no chapter data is returned by the API
-
- Use Web's Home Section Arrangement
+
+ Use Web Client's Home Section ArrangementUser Setting - Setting title
-
- Make the arrangement of the Roku home view sections match the web's home screen. Jellyfin will need to be closed and reopened for change to take effect.
+
+ Make the arrangement of the Roku home view sections match the web client's home screen. Jellyfin will need to be closed and reopened for change to take effect.User Setting - Setting description
diff --git a/settings/settings.json b/settings/settings.json
index bbe71386..9c33a6b0 100644
--- a/settings/settings.json
+++ b/settings/settings.json
@@ -233,11 +233,11 @@
"default": "false"
},
{
- "title": "Use Web's Home Section Arrangement",
- "description": "Make the arrangement of the Roku home view sections match the web's home screen. Jellyfin will need to be closed and reopened for change to take effect.",
+ "title": "Use Web Client's Home Section Arrangement",
+ "description": "Make the arrangement of the Roku home view sections match the web client's home screen. Jellyfin will need to be closed and reopened for change to take effect.",
"settingName": "ui.home.useWebSectionArrangement",
"type": "bool",
- "default": "false"
+ "default": "true"
}
]
},
diff --git a/components/ImageSizes.bs b/source/constants/ImageSizes.bs
similarity index 54%
rename from components/ImageSizes.bs
rename to source/constants/ImageSizes.bs
index 2371a30f..2e3df0b7 100644
--- a/components/ImageSizes.bs
+++ b/source/constants/ImageSizes.bs
@@ -1,5 +1,7 @@
+' @fileoverview Constants for various image sizes.
+
namespace imageSizes
const WIDE_POSTER = [464, 331]
- const MOVIE_POSTER = [188, 331]
+ const MOVIE_POSTER = [180, 331]
const MUSIC_ALBUM = [261, 331]
end namespace
diff --git a/source/migrations.bs b/source/migrations.bs
index 70cec93f..201ffc66 100644
--- a/source/migrations.bs
+++ b/source/migrations.bs
@@ -72,6 +72,14 @@ sub runRegistryUserMigrations()
m.wasMigrated = true
print `Running Registry Migration for ${CLIENT_VERSION_REQUIRING_BASE_MIGRATION} for userid: ${section}`
+ ' If this is an existing user, set the useWebSectionArrangement setting to false
+ ' This way the home view for upgrading users is not changed without them opting in
+ useWebSectionArrangement = registry_read("ui.home.useWebSectionArrangement", section)
+
+ if not isValid(useWebSectionArrangement)
+ registry_write("ui.home.useWebSectionArrangement", "false", section)
+ end if
+
' no longer saving password to registry
registry_delete("password", section)
' av1 playback no longer hidden behind user setting
diff --git a/source/utils/session.bs b/source/utils/session.bs
index 14518d35..f6eee976 100644
--- a/source/utils/session.bs
+++ b/source/utils/session.bs
@@ -226,12 +226,6 @@ namespace session
userPreferences = customPrefs
rowTypes = []
- ' If this is a first time user, set the useWebSectionArrangement setting to true
- ' This way the home view for upgrading users is not changed without them opting in
- if not isValid(m.global.app.lastRunVersion)
- set_user_setting("ui.home.useWebSectionArrangement", "true")
- end if
-
useWebSectionArrangement = m.global.session.user.settings["ui.home.useWebSectionArrangement"]
if isValid(useWebSectionArrangement)