From 81ef7e25313c863854c8d046bac1fd62bdadc3b9 Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Wed, 6 Dec 2023 10:39:05 -0500 Subject: [PATCH 01/15] fix lastrunversion migration + make whats new show per user --- source/Main.bs | 18 ++++++++++-------- source/migrations.bs | 2 +- source/utils/session.bs | 5 +---- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/source/Main.bs b/source/Main.bs index 2eac420989..dd2b4716d8 100644 --- a/source/Main.bs +++ b/source/Main.bs @@ -20,10 +20,8 @@ sub Main (args as dynamic) as void m.wasMigrated = false runGlobalMigrations() runRegistryUserMigrations() - ' update LastRunVersion now that migrations are finished - showWhatsNew = false + ' update global LastRunVersion now that migrations are finished if m.global.app.version <> m.global.app.lastRunVersion - showWhatsNew = true set_setting("LastRunVersion", m.global.app.version) end if if m.wasMigrated then printRegistry() @@ -74,11 +72,15 @@ sub Main (args as dynamic) as void end if end if - ' Show the Whats New popup - if showWhatsNew and m.global.session.user.settings["load.allowwhatsnew"] - dialog = createObject("roSGNode", "WhatsNewDialog") - m.scene.dialog = dialog - m.scene.dialog.observeField("buttonSelected", m.port) + ' has the current user ran this version before? + if not versionChecker(m.global.session.user.settings.lastRunVersion, m.global.app.version) + set_user_setting("LastRunVersion", m.global.app.version) + ' show what's new popup + if m.global.session.user.settings["load.allowwhatsnew"] + dialog = createObject("roSGNode", "WhatsNewDialog") + m.scene.dialog = dialog + m.scene.dialog.observeField("buttonSelected", m.port) + end if end if ' Handle input messages diff --git a/source/migrations.bs b/source/migrations.bs index 1d49791105..29cb36a378 100644 --- a/source/migrations.bs +++ b/source/migrations.bs @@ -71,7 +71,7 @@ sub runRegistryUserMigrations() ' app versions < 2.0.0 didn't save LastRunVersion at the user level ' fall back to using the apps lastRunVersion lastRunVersion = m.global.app.lastRunVersion - registry_write("LastRunVersion", m.global.app.version, section) + registry_write("LastRunVersion", lastRunVersion, section) end if ' BASE_MIGRATION diff --git a/source/utils/session.bs b/source/utils/session.bs index a468a56054..71fe1fbf4f 100644 --- a/source/utils/session.bs +++ b/source/utils/session.bs @@ -156,11 +156,8 @@ namespace session ' grab lastRunVersion for this user lastRunVersion = get_user_setting("LastRunVersion") - if isValid(lastRunVersion) and lastRunVersion = m.global.app.version - ' Don't update the registry, only update the global session + if isValid(lastRunVersion) session.user.Update("LastRunVersion", lastRunVersion) - else - set_user_setting("LastRunVersion", m.global.app.version) end if ' update user session settings with values from registry From 8e457a59238270dd5a5af7c7160b82ac5eb7bb9b Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Wed, 6 Dec 2023 11:04:22 -0500 Subject: [PATCH 02/15] show app version in whats new popup --- components/WhatsNewDialog.bs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/WhatsNewDialog.bs b/components/WhatsNewDialog.bs index 5718377b2a..a0aa9c09d0 100644 --- a/components/WhatsNewDialog.bs +++ b/components/WhatsNewDialog.bs @@ -5,7 +5,7 @@ sub init() m.top.id = "OKDialog" m.top.height = 900 - m.top.title = "What's New?" + m.top.title = m.global.app.version + " - " + tr("What's New?") m.top.buttons = [tr("OK")] dialogStyles = { From 074e7586e65957e96ae50067f9da9b0a9ae8fe63 Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Wed, 6 Dec 2023 11:15:25 -0500 Subject: [PATCH 03/15] save whats new json file as app version --- components/WhatsNewDialog.bs | 2 +- source/static/whatsNew.json | 182 ------------------------------ source/static/whatsNew/2.0.0.json | 182 ++++++++++++++++++++++++++++++ 3 files changed, 183 insertions(+), 183 deletions(-) delete mode 100644 source/static/whatsNew.json create mode 100644 source/static/whatsNew/2.0.0.json diff --git a/components/WhatsNewDialog.bs b/components/WhatsNewDialog.bs index a0aa9c09d0..b656ac7a9c 100644 --- a/components/WhatsNewDialog.bs +++ b/components/WhatsNewDialog.bs @@ -21,7 +21,7 @@ sub init() } } - whatsNewList = ParseJSON(ReadAsciiFile("pkg:/source/static/whatsNew.json")) + whatsNewList = ParseJSON(ReadAsciiFile("pkg:/source/static/whatsNew/" + m.global.app.version.ToStr().trim() + ".json")) for each item in whatsNewList textLine = m.content.CreateChild("StdDlgMultiStyleTextItem") diff --git a/source/static/whatsNew.json b/source/static/whatsNew.json deleted file mode 100644 index ebe5b135bf..0000000000 --- a/source/static/whatsNew.json +++ /dev/null @@ -1,182 +0,0 @@ -[ - { - "description": "New Global Setting: Remember Me setting allowing users to toggle client auto-login", - "author": "cewert" - }, - { - "description": "New Setting: Use Web Client's Home Section Arrangement", - "author": "1hitsong" - }, - { - "description": "New Feature: Allow selection of TV Show versions", - "author": "jimdogx" - }, - { - "description": "New Feature: Add support for TV show season extra features", - "author": "JarodTAerts" - }, - { - "description": "New Feature: When connecting to a server, automatically attempt connection using default protocols and ports if not specified", - "author": "sevenrats" - }, - { - "description": "New Feature: Fixed permissions when using search", - "author": "matty-r" - }, - { - "description": "New Feature: Create video OSD with chapter skip, subtitle select, playback info - Press up, down, ok, or pause while video is playing", - "author": "1hitsong" - }, - { - "description": "New Feature: Add support for Music Videos", - "author": "cewert" - }, - { - "description": "New Feature: Add photo support to home screen", - "author": "cewert" - }, - { - "description": "New Feature: Add quickplay support to entire app - Press play on your remote while highlighting something", - "author": "cewert" - }, - { - "description": "New Feature: Update device profile when device capabilities change + enable all device events", - "author": "cewert" - }, - { - "description": "New Feature: Enable support for saving user's credentials, and add \"Change User\" and \"Remember Me?\" options", - "author": "cewert" - }, - { - "description": "New Feature: Use user's preferred audio language to select default audio track for TV Episodes", - "author": "jimdogx" - }, - { - "description": "New Feature: Remove AV1 direct play setting and instead auto-detect device support", - "author": "cewert" - }, - { - "description": "New View: Create Album Artists view for music library", - "author": "1hitsong" - }, - { - "description": "Bug Fix: Rounded corner on unplayed episode count", - "author": "photonconvergence" - }, - { - "description": "Bug Fix: Fix TV Guide bug that didn't allow going to same channel twice in a row", - "author": "jimdogx" - }, - { - "description": "Bug Fix: Fix Live TV record button crash", - "author": "jimdogx" - }, - { - "description": "Bug Fix: Don't show nextEpisode button if trickplay bar is shown", - "author": "1hitsong" - }, - { - "description": "Bug Fix: Improve \"Next Episode\" button show logic", - "author": "cewert" - }, - { - "description": "Bug Fix: Fix crash if bitrate limit is enabled and empty", - "author": "jimdogx" - }, - { - "description": "Bug Fix: Fix crash when unplayed strms exist in season", - "author": "sevenrats" - }, - { - "description": "Bug Fix: Update settings.json to fix double-entry of \"Disable Community Rating for Episodes\"", - "author": "alanazar" - }, - { - "description": "Bug Fix: Fix crash when viewing Live TV", - "author": "jimdogx" - }, - { - "description": "Bug Fix: Fix long movie options from getting cut off", - "author": "Klikini" - }, - { - "description": "Bug Fix: Fix community rating not showing on movie detail page", - "author": "1hitsong" - }, - { - "description": "Bug Fix: Fix default A-Z sorting for movies & music", - "author": "1hitsong" - }, - { - "description": "Bug Fix: Order boxsets by release date by default", - "author": "1hitsong" - }, - { - "description": "Bug Fix: Fix unplayedCount bug when applying filters", - "author": "ApexArray" - }, - { - "description": "Bug Fix: Prevent crash by validating Filter Menu data", - "author": "cewert" - }, - { - "description": "Bug Fix: Fixed several bugs that could crash the app based on Roku crash logs", - "author": "cewert" - }, - { - "description": "Bug Fix: Fix VP9 codec support and downmix 6 channel videos if possible to allow direct play with stereo setups", - "author": "cewert" - }, - { - "description": "General Improvement: Convert app to use one spinner and resize for consistency", - "author": "cewert" - }, - { - "description": "General Improvement: Increase font size for unwatched episode count", - "author": "cewert" - }, - { - "description": "General Improvement: On Home View, use TV Show thumbnail instead of Channel logo", - "author": "jimdogx" - }, - { - "description": "General Improvement: Remove progressbar delay and speed up animation on home screen", - "author": "cewert" - }, - { - "description": "General Improvement: Copy custom subtitle functionality into new Global Queue Player", - "author": "1hitsong" - }, - { - "description": "General Improvement: Update settings page UI to create more space for long radio lists", - "author": "cewert" - }, - { - "description": "General Improvement: Update api.sessions.get() + add tanscoding info for Direct Streaming", - "author": "candry7731" - }, - { - "description": "General Improvement: Only create trailer button when needed", - "author": "cewert" - }, - { - "description": "General Improvement: Update device profile - direct play, transcoding, and codec profiles", - "author": "cewert" - }, - { - "description": "General Improvement: Wrap alpha menu", - "author": "1hitsong" - }, - { - "description": "Code Cleanup: Create new code for device audio support", - "author": "sevenrats" - }, - { - "description": "Code Cleanup: Remove Play Random button & functionality", - "author": "pau1h" - }, - { - "description": "For full list of changes, visit our release page: ", - "author": "https://github.com/jellyfin/jellyfin-roku/releases" - } -] \ No newline at end of file diff --git a/source/static/whatsNew/2.0.0.json b/source/static/whatsNew/2.0.0.json new file mode 100644 index 0000000000..379cc60ff0 --- /dev/null +++ b/source/static/whatsNew/2.0.0.json @@ -0,0 +1,182 @@ +[ + { + "description": "New Global Setting: Remember Me setting allowing users to toggle client auto-login", + "author": "cewert" + }, + { + "description": "New Setting: Use Web Client's Home Section Arrangement", + "author": "1hitsong" + }, + { + "description": "New Feature: Allow selection of TV Show versions", + "author": "jimdogx" + }, + { + "description": "New Feature: Add support for TV show season extra features", + "author": "JarodTAerts" + }, + { + "description": "New Feature: When connecting to a server, automatically attempt connection using default protocols and ports if not specified", + "author": "sevenrats" + }, + { + "description": "New Feature: Fixed permissions when using search", + "author": "matty-r" + }, + { + "description": "New Feature: Create video OSD with chapter skip, subtitle select, playback info - Press up, down, ok, or pause while video is playing", + "author": "1hitsong" + }, + { + "description": "New Feature: Add support for Music Videos", + "author": "cewert" + }, + { + "description": "New Feature: Add photo support to home screen", + "author": "cewert" + }, + { + "description": "New Feature: Add quickplay support to entire app - Press play on your remote while highlighting something", + "author": "cewert" + }, + { + "description": "New Feature: Update device profile when device capabilities change + enable all device events", + "author": "cewert" + }, + { + "description": "New Feature: Enable support for saving user's credentials, and add \"Change User\" and \"Remember Me?\" options", + "author": "cewert" + }, + { + "description": "New Feature: Use user's preferred audio language to select default audio track for TV Episodes", + "author": "jimdogx" + }, + { + "description": "New Feature: Remove AV1 direct play setting and instead auto-detect device support", + "author": "cewert" + }, + { + "description": "New View: Create Album Artists view for music library", + "author": "1hitsong" + }, + { + "description": "Bug Fix: Rounded corner on unplayed episode count", + "author": "photonconvergence" + }, + { + "description": "Bug Fix: Fix TV Guide bug that didn't allow going to same channel twice in a row", + "author": "jimdogx" + }, + { + "description": "Bug Fix: Fix Live TV record button crash", + "author": "jimdogx" + }, + { + "description": "Bug Fix: Don't show nextEpisode button if trickplay bar is shown", + "author": "1hitsong" + }, + { + "description": "Bug Fix: Improve \"Next Episode\" button show logic", + "author": "cewert" + }, + { + "description": "Bug Fix: Fix crash if bitrate limit is enabled and empty", + "author": "jimdogx" + }, + { + "description": "Bug Fix: Fix crash when unplayed strms exist in season", + "author": "sevenrats" + }, + { + "description": "Bug Fix: Update settings.json to fix double-entry of \"Disable Community Rating for Episodes\"", + "author": "alanazar" + }, + { + "description": "Bug Fix: Fix crash when viewing Live TV", + "author": "jimdogx" + }, + { + "description": "Bug Fix: Fix long movie options from getting cut off", + "author": "Klikini" + }, + { + "description": "Bug Fix: Fix community rating not showing on movie detail page", + "author": "1hitsong" + }, + { + "description": "Bug Fix: Fix default A-Z sorting for movies & music", + "author": "1hitsong" + }, + { + "description": "Bug Fix: Order boxsets by release date by default", + "author": "1hitsong" + }, + { + "description": "Bug Fix: Fix unplayedCount bug when applying filters", + "author": "ApexArray" + }, + { + "description": "Bug Fix: Prevent crash by validating Filter Menu data", + "author": "cewert" + }, + { + "description": "Bug Fix: Fixed several bugs that could crash the app based on Roku crash logs", + "author": "cewert" + }, + { + "description": "Bug Fix: Fix VP9 codec support and downmix 6 channel videos if possible to allow direct play with stereo setups", + "author": "cewert" + }, + { + "description": "General Improvement: Convert app to use one spinner and resize for consistency", + "author": "cewert" + }, + { + "description": "General Improvement: Increase font size for unwatched episode count", + "author": "cewert" + }, + { + "description": "General Improvement: On Home View, use TV Show thumbnail instead of Channel logo", + "author": "jimdogx" + }, + { + "description": "General Improvement: Remove progressbar delay and speed up animation on home screen", + "author": "cewert" + }, + { + "description": "General Improvement: Copy custom subtitle functionality into new Global Queue Player", + "author": "1hitsong" + }, + { + "description": "General Improvement: Update settings page UI to create more space for long radio lists", + "author": "cewert" + }, + { + "description": "General Improvement: Update api.sessions.get() + add tanscoding info for Direct Streaming", + "author": "candry7731" + }, + { + "description": "General Improvement: Only create trailer button when needed", + "author": "cewert" + }, + { + "description": "General Improvement: Update device profile - direct play, transcoding, and codec profiles", + "author": "cewert" + }, + { + "description": "General Improvement: Wrap alpha menu", + "author": "1hitsong" + }, + { + "description": "Code Cleanup: Create new code for device audio support", + "author": "sevenrats" + }, + { + "description": "Code Cleanup: Remove Play Random button & functionality", + "author": "pau1h" + }, + { + "description": "For full list of changes, visit our release page: ", + "author": "https://github.com/jellyfin/jellyfin-roku/releases" + } +] From 7a53b4a4c7bf933f6d50528b38428f550d96e452 Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Wed, 6 Dec 2023 11:26:55 -0500 Subject: [PATCH 04/15] fix crash with new users --- source/utils/session.bs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/utils/session.bs b/source/utils/session.bs index 71fe1fbf4f..8ce892ef99 100644 --- a/source/utils/session.bs +++ b/source/utils/session.bs @@ -158,6 +158,9 @@ namespace session lastRunVersion = get_user_setting("LastRunVersion") if isValid(lastRunVersion) session.user.Update("LastRunVersion", lastRunVersion) + else + ' new user whos never ran the app before. update lastrunversion in registry + set_user_setting("LastRunVersion", m.global.app.lastRunVersion) end if ' update user session settings with values from registry From 83e6541d7560b25d647d7eef022d73faf40e942e Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Wed, 6 Dec 2023 15:15:32 -0500 Subject: [PATCH 05/15] make sure we use the current version of the app --- source/utils/session.bs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/utils/session.bs b/source/utils/session.bs index 8ce892ef99..aa020928a4 100644 --- a/source/utils/session.bs +++ b/source/utils/session.bs @@ -160,7 +160,7 @@ namespace session session.user.Update("LastRunVersion", lastRunVersion) else ' new user whos never ran the app before. update lastrunversion in registry - set_user_setting("LastRunVersion", m.global.app.lastRunVersion) + set_user_setting("LastRunVersion", m.global.app.version) end if ' update user session settings with values from registry From 1c1dec72b18e0d06314d242e820d5c3b6d0cec66 Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Wed, 6 Dec 2023 19:22:36 -0500 Subject: [PATCH 06/15] add "what's new?" to translation file --- locale/en_US/translations.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/locale/en_US/translations.ts b/locale/en_US/translations.ts index 1fe478489d..6b8ff42f2c 100644 --- a/locale/en_US/translations.ts +++ b/locale/en_US/translations.ts @@ -1241,5 +1241,10 @@ 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 + + What's New? + What's New? + Popup title - Popup displays all the major changes to the app since the last version + \ No newline at end of file From ed9356d7c3a9e9bf4df092a78505a6ed2729f778 Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Wed, 6 Dec 2023 19:33:48 -0500 Subject: [PATCH 07/15] allow users lastrunversion to be invalid. update value and show whats new after login if value is invalid --- source/Main.bs | 3 ++- source/utils/session.bs | 3 --- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/source/Main.bs b/source/Main.bs index dd2b4716d8..2ef81455db 100644 --- a/source/Main.bs +++ b/source/Main.bs @@ -73,7 +73,8 @@ sub Main (args as dynamic) as void end if ' has the current user ran this version before? - if not versionChecker(m.global.session.user.settings.lastRunVersion, m.global.app.version) + usersLastRunVersion = m.global.session.user.settings.lastRunVersion + if not isValid(usersLastRunVersion) or not versionChecker(m.global.session.user.settings.lastRunVersion, m.global.app.version) set_user_setting("LastRunVersion", m.global.app.version) ' show what's new popup if m.global.session.user.settings["load.allowwhatsnew"] diff --git a/source/utils/session.bs b/source/utils/session.bs index aa020928a4..71fe1fbf4f 100644 --- a/source/utils/session.bs +++ b/source/utils/session.bs @@ -158,9 +158,6 @@ namespace session lastRunVersion = get_user_setting("LastRunVersion") if isValid(lastRunVersion) session.user.Update("LastRunVersion", lastRunVersion) - else - ' new user whos never ran the app before. update lastrunversion in registry - set_user_setting("LastRunVersion", m.global.app.version) end if ' update user session settings with values from registry From f0890c0f3bd27a8a12a431f8f8ad3870067e8643 Mon Sep 17 00:00:00 2001 From: jellyfin-bot Date: Thu, 7 Dec 2023 01:11:40 +0000 Subject: [PATCH 08/15] Update API docs --- docs/api/components_WhatsNewDialog.bs.html | 4 ++-- docs/api/source_Main.bs.html | 19 +++++++++++-------- docs/api/source_migrations.bs.html | 2 +- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/docs/api/components_WhatsNewDialog.bs.html b/docs/api/components_WhatsNewDialog.bs.html index 523ebf6e29..762f8915d8 100644 --- a/docs/api/components_WhatsNewDialog.bs.html +++ b/docs/api/components_WhatsNewDialog.bs.html @@ -7,7 +7,7 @@ m.top.id = "OKDialog" m.top.height = 900 - m.top.title = "What's New?" + m.top.title = m.global.app.version + " - " + tr("What's New?") m.top.buttons = [tr("OK")] dialogStyles = { @@ -23,7 +23,7 @@ } } - whatsNewList = ParseJSON(ReadAsciiFile("pkg:/source/static/whatsNew.json")) + whatsNewList = ParseJSON(ReadAsciiFile("pkg:/source/static/whatsNew/" + m.global.app.version.ToStr().trim() + ".json")) for each item in whatsNewList textLine = m.content.CreateChild("StdDlgMultiStyleTextItem") diff --git a/docs/api/source_Main.bs.html b/docs/api/source_Main.bs.html index c338c4f216..efe6762657 100644 --- a/docs/api/source_Main.bs.html +++ b/docs/api/source_Main.bs.html @@ -22,10 +22,8 @@ m.wasMigrated = false runGlobalMigrations() runRegistryUserMigrations() - ' update LastRunVersion now that migrations are finished - showWhatsNew = false + ' update global LastRunVersion now that migrations are finished if m.global.app.version <> m.global.app.lastRunVersion - showWhatsNew = true set_setting("LastRunVersion", m.global.app.version) end if if m.wasMigrated then printRegistry() @@ -76,11 +74,16 @@ end if end if - ' Show the Whats New popup - if showWhatsNew and m.global.session.user.settings["load.allowwhatsnew"] - dialog = createObject("roSGNode", "WhatsNewDialog") - m.scene.dialog = dialog - m.scene.dialog.observeField("buttonSelected", m.port) + ' has the current user ran this version before? + usersLastRunVersion = m.global.session.user.settings.lastRunVersion + if not isValid(usersLastRunVersion) or not versionChecker(m.global.session.user.settings.lastRunVersion, m.global.app.version) + set_user_setting("LastRunVersion", m.global.app.version) + ' show what's new popup + if m.global.session.user.settings["load.allowwhatsnew"] + dialog = createObject("roSGNode", "WhatsNewDialog") + m.scene.dialog = dialog + m.scene.dialog.observeField("buttonSelected", m.port) + end if end if ' Handle input messages diff --git a/docs/api/source_migrations.bs.html b/docs/api/source_migrations.bs.html index 0342811c94..db92b7b982 100644 --- a/docs/api/source_migrations.bs.html +++ b/docs/api/source_migrations.bs.html @@ -73,7 +73,7 @@ ' app versions < 2.0.0 didn't save LastRunVersion at the user level ' fall back to using the apps lastRunVersion lastRunVersion = m.global.app.lastRunVersion - registry_write("LastRunVersion", m.global.app.version, section) + registry_write("LastRunVersion", lastRunVersion, section) end if ' BASE_MIGRATION From fc8e80d9996f393ccfbbfde76b36bbabd6e27836 Mon Sep 17 00:00:00 2001 From: 1hitsong <3330318+1hitsong@users.noreply.github.com> Date: Thu, 7 Dec 2023 08:12:42 -0500 Subject: [PATCH 09/15] Fix focus on library row --- components/home/HomeRows.bs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/components/home/HomeRows.bs b/components/home/HomeRows.bs index b888da3928..3bb3682b42 100644 --- a/components/home/HomeRows.bs +++ b/components/home/HomeRows.bs @@ -280,6 +280,12 @@ sub createLibraryRow() ' Row already exists, replace it with new content if sectionExists(sectionName) m.top.content.replaceChild(row, getSectionIndex(sectionName)) + + ' Reset focus to item within the row, if it was previous highlighted + if m.top.rowItemFocused[0] = getSectionIndex(sectionName) + m.top.jumpToRowItem = [m.top.rowItemFocused[0], m.top.rowItemFocused[1]] + end if + setRowItemSize() return end if From d0041745aca9891609bd2d4d0e300d2d31935f2f Mon Sep 17 00:00:00 2001 From: 1hitsong <3330318+1hitsong@users.noreply.github.com> Date: Thu, 7 Dec 2023 12:01:17 -0500 Subject: [PATCH 10/15] Don't recreate library row if it already exists --- components/home/HomeRows.bs | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/components/home/HomeRows.bs b/components/home/HomeRows.bs index 3bb3682b42..958ba22c3f 100644 --- a/components/home/HomeRows.bs +++ b/components/home/HomeRows.bs @@ -267,6 +267,11 @@ sub createLibraryRow() sectionName = tr("My Media") + ' We don't refresh library data, so if section already exists, exit + if sectionExists(sectionName) + return + end if + row = CreateObject("roSGNode", "HomeRow") row.title = sectionName row.imageWidth = homeRowItemSizes.WIDE_POSTER[0] @@ -277,19 +282,6 @@ sub createLibraryRow() row.appendChild(item) end for - ' Row already exists, replace it with new content - if sectionExists(sectionName) - m.top.content.replaceChild(row, getSectionIndex(sectionName)) - - ' Reset focus to item within the row, if it was previous highlighted - if m.top.rowItemFocused[0] = getSectionIndex(sectionName) - m.top.jumpToRowItem = [m.top.rowItemFocused[0], m.top.rowItemFocused[1]] - end if - - setRowItemSize() - return - end if - ' Row does not exist, insert it into the home view m.top.content.insertChild(row, getOriginalSectionIndex("smalllibrarytiles")) setRowItemSize() From adee9280c60def59235063258acdaa20dd4cc85d Mon Sep 17 00:00:00 2001 From: jellyfin-bot Date: Thu, 7 Dec 2023 18:39:51 +0000 Subject: [PATCH 11/15] Update API docs --- docs/api/components_home_HomeRows.bs.html | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/docs/api/components_home_HomeRows.bs.html b/docs/api/components_home_HomeRows.bs.html index 5bdb709b0a..02dabab113 100644 --- a/docs/api/components_home_HomeRows.bs.html +++ b/docs/api/components_home_HomeRows.bs.html @@ -269,6 +269,11 @@ sectionName = tr("My Media") + ' We don't refresh library data, so if section already exists, exit + if sectionExists(sectionName) + return + end if + row = CreateObject("roSGNode", "HomeRow") row.title = sectionName row.imageWidth = homeRowItemSizes.WIDE_POSTER[0] @@ -279,13 +284,6 @@ row.appendChild(item) end for - ' Row already exists, replace it with new content - if sectionExists(sectionName) - m.top.content.replaceChild(row, getSectionIndex(sectionName)) - setRowItemSize() - return - end if - ' Row does not exist, insert it into the home view m.top.content.insertChild(row, getOriginalSectionIndex("smalllibrarytiles")) setRowItemSize() From 07e69cdd673369895e44c41f037f23d49c78d86e Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Fri, 8 Dec 2023 16:47:47 -0500 Subject: [PATCH 12/15] fix version-check job --- .github/workflows/build-prod.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-prod.yml b/.github/workflows/build-prod.yml index 8722260086..8bf6ac5573 100644 --- a/.github/workflows/build-prod.yml +++ b/.github/workflows/build-prod.yml @@ -51,7 +51,7 @@ jobs: if: env.oldManVersion == env.newManVersion run: exit 1 - name: Save new Makefile version - run: awk 'BEGIN { FS=" = " } /^VERSION/ { print "newMakeVersion="$2; }' Makefile >> $GITHUB_ENV + run: awk 'BEGIN { FS=" := " } /^VERSION/ { print "newMakeVersion="$2; }' Makefile >> $GITHUB_ENV - name: Makefile version must be updated if: env.oldMakeVersion == env.newMakeVersion run: exit 1 From 4c66f8a5b3aa0550f2777743ffa06c98b29daac5 Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Tue, 12 Dec 2023 09:53:02 -0500 Subject: [PATCH 13/15] fix version check job (again) --- .github/workflows/build-prod.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-prod.yml b/.github/workflows/build-prod.yml index 8bf6ac5573..096a6a5cf4 100644 --- a/.github/workflows/build-prod.yml +++ b/.github/workflows/build-prod.yml @@ -31,7 +31,7 @@ jobs: - name: Save old manifest version run: echo "oldManVersion=${{ env.oldMajor }}.${{ env.oldMinor }}.${{ env.oldBuild }}" >> $GITHUB_ENV - name: Save old Makefile version - run: awk 'BEGIN { FS=" = " } /^VERSION/ { print "oldMakeVersion="$2; }' Makefile >> $GITHUB_ENV + run: awk 'BEGIN { FS=" := " } /^VERSION/ { print "oldMakeVersion="$2; }' Makefile >> $GITHUB_ENV - name: Checkout PR branch uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - name: Save new package.json version From a0e5d65bc63a1c38ef20588e6b0ef1d124f56f20 Mon Sep 17 00:00:00 2001 From: Brieuc Dubois Date: Wed, 13 Dec 2023 09:54:38 +0000 Subject: [PATCH 14/15] Translated using Weblate (French) Currently translated at 22.9% (63 of 275 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/fr/ --- locale/fr/translations.ts | 100 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/locale/fr/translations.ts b/locale/fr/translations.ts index b44578e40a..cc8047e95a 100644 --- a/locale/fr/translations.ts +++ b/locale/fr/translations.ts @@ -10635,5 +10635,105 @@ Erreur lors de la récupération du contenu Dialog title when unable to load Content from Server + + Error During Playback + Erreur lors de la lecture + Dialog title when error occurs during playback + + + Name or Title field of media item + TITLE + Nom + + + IMDB_RATING + Notation IMDb + + + DATE_ADDED + Date d'ajout + + + DATE_PLAYED + Date de lecture + + + An error was encountered while playing this item. + Une erreur s'est produite lors de la lecture de cet élément. + Dialog detail when error occurs during playback + + + Episodes + Épisodes + + + Error loading Channel Data + Erreur lors du chargement des données de la chaîne + + + Extras + Bonus + + + PLAY_COUNT + Nombre de vues + + + Delete Saved + Suppression sauvegardée + + + On Now + En ce moment + + + CRITIC_RATING + Notation des critiques + + + OFFICIAL_RATING + Classification parentale + + + Title of Tab for options to sort library content + TAB_SORT + Trier + + + Error Retrieving Content + Erreur lors de la récupération du contenu + Dialog title when unable to load Content from Server + + + There was an error retrieving the data for this item from the server. + Une erreur s'est produite lors de la récupération des données de cet élément sur le serveur. + Dialog detail when unable to load Content from Server + + + Unable to load Channel Data from the server + Impossible de charger les données de la chaîne depuis le serveur + + + Loading Channel Data + Chargement des données de la chaîne + + + RUNTIME + Durée + + + Title of Tab for switching "views" when looking at a library + TAB_VIEW + Vue + + + RELEASE_DATE + Date de sortie + + + Message displayed in Item Grid when no item to display. %1 is container type (e.g. Boxset, Collection, Folder, etc) + NO_ITEMS + Ce %1 ne contient pas d'éléments + From 326efd0c61d2879222c19913a4f1e078620a047c Mon Sep 17 00:00:00 2001 From: BenniBoy602 Date: Wed, 13 Dec 2023 18:52:05 +0000 Subject: [PATCH 15/15] Translated using Weblate (German) Currently translated at 24.6% (68 of 276 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/de/ --- locale/de_DE/translations.ts | 140 +++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) diff --git a/locale/de_DE/translations.ts b/locale/de_DE/translations.ts index f66fd3ee4e..0ad83eb33c 100644 --- a/locale/de_DE/translations.ts +++ b/locale/de_DE/translations.ts @@ -14252,5 +14252,145 @@ Die Quelldatei ist vollständig kompatibel mit diesem Client, und die Sitzung empfängt die Datei ohne Änderungen. Direct play info box text in GetPlaybackInfoTask.brs + + On Now + Läuft gerade + + + RELEASE_DATE + Veröffentlichungsdatum + + + yesterday + gestern + Previous day + + + tomorrow + morgen + Next day + + + Wednesday + Mittwoch + Day of Week + + + Started at + Gestartet bei + (Past Tense) For defining time when a program started today (e.g. Started at 08:00) + + + Ended at + Geendet bei + (Past Tense) For defining time when a program will ended (e.g. Ended at 08:00) + + + Repeat + Wiederholung + If TV Shows has previously been broadcasted + + + Record + Aufnehmen + + + Cancel Recording + Aufnahme abbrechen + + + Connecting to Server + Verbindung zum Server wird hergestellt + Message to display to user while client is attempting to connect to the server + + + Pick a Jellyfin server from the local network + Wähle einen verfügbaren Jellyfin Server aus deinem localen Netzwerk + Instructions on initial app launch when the user is asked to pick a server from a list + + + Change Server + Server wechseln + + + Tuesday + Dienstag + Day of Week + + + Record Series + Serie Aufnehmen + + + Sign Out + Ausloggen + + + Episodes + Episoden + + + Sunday + Sonntag + Day of Week + + + Monday + Montag + Day of Week + + + Thursday + Donnerstag + Day of Week + + + Started + Gestartet + (Past Tense) For defining a day and time when a program started (e.g. Started Wednesday, 08:00) + + + Channels + Sender + Menu option for showing Live TV Channel List + + + Friday + Freitag + Day of Week + + + ...or enter server URL manually: + Wenn oben kein Server angezeigt wird, kannst du auch eine Server URL manuell eingeben: + Instructions on initial app launch when the user is asked to manually enter a server URL + + + An error was encountered while playing this item. + Ein Fehler bei der Wiedergabe dieses Inhalts ist aufgetreten. + Dialog detail when error occurs during playback + + + Saturday + Samstag + Day of Week + + + Not found + Wurde nicht gefunden + Title of message box when the requested content is not found on the server + + + IMDB_RATING + IMDb Bewertung + + + Error Retrieving Content + Fehler biem laden des Inhalts + Dialog title when unable to load Content from Server + + + Close + Schließen +