From 89dbc7c2a73121919c75396efad8db94d8ffa6d3 Mon Sep 17 00:00:00 2001 From: Mustapha-Tarek Ben Lechhab Date: Wed, 10 Jul 2024 15:24:51 +0200 Subject: [PATCH 01/14] PLAYRTS-5580 Fix titles in podcast section of radios --- .../Play RSI/ApplicationConfiguration.json | 2 +- .../Play RTS/ApplicationConfiguration.json | 2 +- .../Play RTS/fr.lproj/Localizable.strings | 9 ++++++++ .../ApplicationConfiguration.swift | 4 ++++ Application/Sources/Configuration/Channel.h | 23 +++++++++++++++++++ Application/Sources/Configuration/Channel.m | 20 +++++++++++++++- .../Sources/Configuration/RadioChannel.swift | 18 ++++++++++++--- Application/Sources/Content/Content.swift | 12 +++++++--- docs/REMOTE_CONFIGURATION.md | 3 +++ 9 files changed, 84 insertions(+), 9 deletions(-) diff --git a/Application/Resources/Apps/Play RSI/ApplicationConfiguration.json b/Application/Resources/Apps/Play RSI/ApplicationConfiguration.json index f1be0bfd5..cba052e50 100755 --- a/Application/Resources/Apps/Play RSI/ApplicationConfiguration.json +++ b/Application/Resources/Apps/Play RSI/ApplicationConfiguration.json @@ -18,7 +18,7 @@ "termsAndConditionsURL": "https://www.rsi.ch/la-rsi/Condizioni-generali-di-uso-del-sito-RSI-8585464.html", "dataProtectionURL": "https://www.rsi.ch/la-rsi/Dichiarazione-sulla-protezione-dei-dati-10499633.html", "whatsNewURL": "https://srgssr.github.io/playsrg-apple/releases/release_notes-ios-rsi.html", - "radioChannels": "[{\"uid\":\"rete-uno\",\"name\":\"Rete Uno\",\"resourceUid\":\"rete_uno\",\"songsViewStyle\":\"collapsed\",\"color\":\"#0074C2\",\"secondColor\":\"#54B8EF\"},{\"uid\":\"rete-due\",\"name\":\"Rete Due\",\"resourceUid\":\"rete_due\",\"songsViewStyle\":\"collapsed\",\"color\":\"#06A73B\",\"secondColor\":\"#30E96B\"},{\"uid\":\"rete-tre\",\"name\":\"Rete Tre\",\"resourceUid\":\"rete_tre\",\"songsViewStyle\":\"collapsed\",\"color\":\"#A4BB1B\",\"secondColor\":\"#DEF355\"},{\"uid\":\"podcast\",\"name\":\"Podcast\",\"resourceUid\":\"rsi_podcast\",\"color\":\"#333333\",\"homeSections\":\"radioLatest,radioFavoriteShows,radioLatestEpisodesFromFavorites,radioResumePlayback,radioMostPopular,radioWatchLater,radioAllShows\"}]", + "radioChannels": "[{\"uid\":\"rete-uno\",\"name\":\"Rete Uno\",\"resourceUid\":\"rete_uno\",\"songsViewStyle\":\"collapsed\",\"color\":\"#0074C2\",\"secondColor\":\"#54B8EF\",\"showType\":\"show\"},{\"uid\":\"rete-due\",\"name\":\"Rete Due\",\"resourceUid\":\"rete_due\",\"songsViewStyle\":\"collapsed\",\"color\":\"#06A73B\",\"secondColor\":\"#30E96B\",\"showType\":\"show\"},{\"uid\":\"rete-tre\",\"name\":\"Rete Tre\",\"resourceUid\":\"rete_tre\",\"songsViewStyle\":\"collapsed\",\"color\":\"#A4BB1B\",\"secondColor\":\"#DEF355\",\"showType\":\"show\"},{\"uid\":\"podcast\",\"name\":\"Podcast\",\"resourceUid\":\"rsi_podcast\",\"color\":\"#333333\",\"showType\":\"podcast\",\"homeSections\":\"radioLatest,radioFavoriteShows,radioLatestEpisodesFromFavorites,radioResumePlayback,radioMostPopular,radioWatchLater,radioAllShows\"}]", "tvChannels": "[{\"uid\":\"la1\",\"name\":\"LA 1\",\"resourceUid\":\"la1\",\"color\":\"#FF9120\",\"secondColor\":\"#E15100\"},{\"uid\":\"la2\",\"name\":\"LA 2\",\"resourceUid\":\"la2\",\"color\":\"#FFCF2F\",\"secondColor\":\"#F38A0D\"},{\"uid\":\"143932a79bb5a123a646b68b1d1188d7ae493e5b\",\"name\":\"RTS 1\",\"resourceUid\":\"rts_un\",\"color\":\"#00D6F3\",\"secondColor\":\"#00B6F0\",\"titleColor\":\"#161616\"},{\"uid\":\"d7dfff28deee44e1d3c49a3d37d36d492b29671b\",\"name\":\"RTS 2\",\"resourceUid\":\"rts_deux\",\"color\":\"#BB66FF\",\"secondColor\":\"#782EB5\"},{\"uid\":\"5d332a26e06d08eec8ad385d566187df72955623\",\"name\":\"RTS Info\",\"resourceUid\":\"rts_info\",\"color\":\"#3787FF\",\"secondColor\":\"#153567\"},{\"uid\":\"23FFBE1B-65CE-4188-ADD2-C724186C2C9F\",\"name\":\"SRF 1\",\"resourceUid\":\"tv_srf1\",\"color\":\"#C91024\",\"secondColor\":\"#8D0614\"},{\"uid\":\"E4D5AD08-C1E8-46A3-BB58-4875051D60D2\",\"name\":\"SRF zwei\",\"resourceUid\":\"tv_srf2\",\"color\":\"#FFB600\",\"secondColor\":\"#ED7004\",\"titleColor\":\"#161616\",\"hasDarkStatusBar\":true},{\"uid\":\"34c2819e-e715-43d7-9026-40a443152a97\",\"name\":\"SRF info\",\"resourceUid\":\"tv_srf_info\",\"color\":\"#AF001E\",\"secondColor\":\"#830512\"}]", "satelliteRadioChannels": "[{\"uid\":\"rsp\",\"name\":\"Radio Swiss Pop\",\"resourceUid\":\"rsp\",\"songsViewStyle\":\"expanded\",\"color\":\"#F01F73\",\"secondColor\":\"#D31A3C\",\"homepageHidden\":true, \"shareURL\":\"https://www.radioswisspop.ch/it\"},{\"uid\":\"rsc-it\",\"name\":\"Radio Swiss Classic\",\"resourceUid\":\"rsc\",\"songsViewStyle\":\"expanded\",\"color\":\"#09A1DE\",\"secondColor\":\"#036E99\",\"homepageHidden\":true, \"shareURL\":\"https://www.radioswissclassic.ch/it\"},{\"uid\":\"rsj\",\"name\":\"Radio Swiss Jazz\",\"resourceUid\":\"rsj\",\"songsViewStyle\":\"expanded\",\"color\":\"#F7B222\",\"secondColor\":\"#CC7A00\",\"homepageHidden\":true, \"shareURL\":\"https://www.radioswissjazz.ch/it\"}]", "topicColors": "{\"urn:rsi:topic:tv:1\":{\"firstColor\":\"#B5344E\",\"secondColor\":\"#480010\"},\"urn:rsi:topic:tv:4\":{\"firstColor\":\"#D7B447\",\"secondColor\":\"#B62019\",\"reduceBrightness\":true},\"urn:rsi:topic:tv:7\":{\"firstColor\":\"#546591\",\"secondColor\":\"#2C3A50\"},\"urn:rsi:topic:tv:8\":{\"firstColor\":\"#CD4023\",\"secondColor\":\"#90062E\"},\"urn:rsi:topic:tv:11\":{\"firstColor\":\"#DEA706\",\"secondColor\":\"#E92466\",\"reduceBrightness\":true},\"urn:rsi:topic:tv:40\":{\"firstColor\":\"#44BDA8\",\"secondColor\":\"#00324E\"},\"urn:rsi:topic:tv:80\":{\"firstColor\":\"#1F509D\",\"secondColor\":\"#121A37\"},\"urn:rsi:topic:tv:90\":{\"firstColor\":\"#8B96A5\",\"secondColor\":\"#4F5562\",\"reduceBrightness\":true},\"urn:rsi:topic:tv:100\":{\"firstColor\":\"#D75959\",\"secondColor\":\"#29336C\"},\"urn:rsi:topic:tv:600\":{\"firstColor\":\"#23B6CD\",\"secondColor\":\"#7C3184\",\"reduceBrightness\":true},\"urn:rsi:topic:tv:6000\":{\"firstColor\":\"#017EB3\",\"secondColor\":\"#011844\"},\"urn:rtr:topic:tv:2d48ba80-566c-4359-9e8d-8d9b2d570e0a\":{\"firstColor\":\"#00A1A1\",\"secondColor\":\"#04575B\"},\"urn:rtr:topic:tv:7d7f21be-6727-4939-9126-5bca25eb3a49\":{\"firstColor\":\"#80D2E3\",\"secondColor\":\"#003D58\"},\"urn:rtr:topic:tv:20e7478f-1ea1-49c3-81c2-5f157d6ff092\":{\"firstColor\":\"#340101\",\"secondColor\":\"#8F0E0F\"},\"urn:rtr:topic:tv:50bb90d6-41af-4bbd-b92c-6ef5db16a9b3\":{\"firstColor\":\"#8A0533\",\"secondColor\":\"#812626\"},\"urn:rtr:topic:tv:c50140e7-5740-4c44-abd0-0f7d9ea68da7\":{\"firstColor\":\"#A6A6A7\",\"secondColor\":\"#2C2B2D\"},\"urn:rtr:topic:tv:dfb7ae6d-cb73-431b-a817-b1663ec2f58a\":{\"firstColor\":\"#00F8CC\",\"secondColor\":\"#018864\"},\"urn:rts:topic:tv:623\":{\"firstColor\":\"#5C845B\",\"secondColor\":\"#16280F\"},\"urn:rts:topic:tv:665\":{\"firstColor\":\"#3787FF\",\"secondColor\":\"#0A1C33\"},\"urn:rts:topic:tv:1095\":{\"firstColor\":\"#F5F500\",\"secondColor\":\"#BEB405\",\"reduceBrightness\":true},\"urn:rts:topic:tv:1353\":{\"firstColor\":\"#084165\",\"secondColor\":\"#140953\"},\"urn:rts:topic:tv:2743\":{\"firstColor\":\"#BCF6FF\",\"secondColor\":\"#00D0EF\",\"reduceBrightness\":true},\"urn:rts:topic:tv:10193\":{\"firstColor\":\"#EB2350\",\"secondColor\":\"#A61637\"},\"urn:rts:topic:tv:54537\":{\"firstColor\":\"#FFE03E\",\"secondColor\":\"#F98E73\",\"reduceBrightness\":true},\"urn:rts:topic:tv:59220\":{\"firstColor\":\"#492b63\",\"secondColor\":\"#271633\"},\"urn:rts:topic:tv:67132\":{\"firstColor\":\"#415FAF\",\"secondColor\":\"#23376B\"},\"urn:rts:topic:tv:73840\":{\"firstColor\":\"#FF77CD\",\"secondColor\":\"#663052\"},\"urn:srf:topic:tv:1d7d9cfb-6682-4d5b-9e36-322e8fa93c03\":{\"firstColor\":\"#00A4B3\",\"secondColor\":\"#006973\"},\"urn:srf:topic:tv:4acf86dd-7ff7-45d3-baf8-33375340d976\":{\"firstColor\":\"#3f4b70\",\"secondColor\":\"#131a2d\"},\"urn:srf:topic:tv:9a79b1de-cde8-4528-b304-d1ae1363f52f\":{\"firstColor\":\"#836fcd\",\"secondColor\":\"#36343f\"},\"urn:srf:topic:tv:63f937e4-859e-42c4-a430-bdb74dd09645\":{\"firstColor\":\"#4480a2\",\"secondColor\":\"#20182c\"},\"urn:srf:topic:tv:67f812fd-19a3-4c22-9e6b-ec36e65a4703\":{\"firstColor\":\"#bb3966\",\"secondColor\":\"#190406\"},\"urn:srf:topic:tv:593eb926-d892-41ba-8b1f-eccbcfd7f15f\":{\"firstColor\":\"#2bbf9b\",\"secondColor\":\"#02291e\"},\"urn:srf:topic:tv:649e36d7-ff57-41c8-9c1b-7892daf15e78\":{\"firstColor\":\"#FF0037\",\"secondColor\":\"#AF001E\"},\"urn:srf:topic:tv:882cb264-cf81-4a9c-b660-d42519b7ce28\":{\"firstColor\":\"#c91d7d\",\"secondColor\":\"#31041f\"},\"urn:srf:topic:tv:43741c59-317e-458b-ac38-c2b1c065c865\":{\"firstColor\":\"#0075ad\",\"secondColor\":\"#000022\"},\"urn:srf:topic:tv:516421f0-ec89-43ba-823b-1b5ceec262f3\":{\"firstColor\":\"#5FB281\",\"secondColor\":\"#154e60\"},\"urn:srf:topic:tv:641223fa-f112-4d98-8aec-cb22262a1182\":{\"firstColor\":\"#c55cee\",\"secondColor\":\"#0c1c68\"},\"urn:srf:topic:tv:a2d97206-0b85-4226-8afe-06e86ebd05b2\":{\"firstColor\":\"#9fc885\",\"secondColor\":\"#20281a\"},\"urn:srf:topic:tv:a709c610-b275-4c0c-a496-cba304c36712\":{\"firstColor\":\"#b3131d\",\"secondColor\":\"#3e0b14\"},\"urn:srf:topic:tv:b58dcf14-96ac-4046-8676-fd8a942c0e88\":{\"firstColor\":\"#7081b0\",\"secondColor\":\"#202020\"},\"urn:srf:topic:tv:bb7b21e0-1056-4e28-bac3-c610393b5b0f\":{\"firstColor\":\"#3c788e\",\"secondColor\":\"#1b3e48\"},\"urn:srf:topic:tv:e52080fc-f36b-481e-955f-071b6c8d6dc3\":{\"firstColor\":\"#ff6778\",\"secondColor\":\"#920a1a\",\"reduceBrightness\":true},\"urn:srf:topic:tv:fa793c13-bebc-41b9-9710-bf8a34192c15\":{\"firstColor\":\"#baead5\",\"secondColor\":\"#010b40\",\"reduceBrightness\":true}}", diff --git a/Application/Resources/Apps/Play RTS/ApplicationConfiguration.json b/Application/Resources/Apps/Play RTS/ApplicationConfiguration.json index ecce7cc91..aaec808cf 100755 --- a/Application/Resources/Apps/Play RTS/ApplicationConfiguration.json +++ b/Application/Resources/Apps/Play RTS/ApplicationConfiguration.json @@ -21,7 +21,7 @@ "termsAndConditionsURL": "https://www.rts.ch/article/8994021", "dataProtectionURL": "https://www.rts.ch/article/8994006", "whatsNewURL": "https://srgssr.github.io/playsrg-apple/releases/release_notes-ios-rts.html", - "radioChannels": "[{\"uid\":\"a9e7621504c6959e35c3ecbe7f6bed0446cdf8da\",\"name\":\"La 1ère\",\"resourceUid\":\"la1ere\",\"songsViewStyle\":\"collapsed\",\"color\":\"#E20026\",\"secondColor\":\"#5A285B\"},{\"uid\":\"a83f29dee7a5d0d3f9fccdb9c92161b1afb512db\",\"name\":\"Espace 2\",\"resourceUid\":\"espace2\",\"songsViewStyle\":\"collapsed\",\"color\":\"#0071CE\",\"secondColor\":\"#23B7C1\"},{\"uid\":\"8ceb28d9b3f1dd876d1df1780f908578cbefc3d7\",\"name\":\"Couleur 3\",\"resourceUid\":\"couleur3\",\"songsViewStyle\":\"collapsed\",\"color\":\"#E60096\",\"secondColor\":\"#FB5952\"},{\"uid\":\"f8517e5319a515e013551eea15aa114fa5cfbc3a\",\"name\":\"Option Musique\",\"resourceUid\":\"option_musique\",\"songsViewStyle\":\"expanded\",\"color\":\"#00CC99\",\"secondColor\":\"#CBC57A\"},{\"uid\":\"123456789101112131415161718192021222324x\",\"name\":\"Podcasts Originaux\",\"resourceUid\":\"podcasts_originaux\",\"color\":\"#A550F9\",\"homeSections\":\"radioLatestEpisodes,radioShowsAccess,radioFavoriteShows,radioLatestEpisodesFromFavorites,radioResumePlayback,radioMostPopular,radioWatchLater,radioAllShows\"}]", + "radioChannels": "[{\"uid\":\"a9e7621504c6959e35c3ecbe7f6bed0446cdf8da\",\"name\":\"La 1ère\",\"resourceUid\":\"la1ere\",\"songsViewStyle\":\"collapsed\",\"color\":\"#E20026\",\"secondColor\":\"#5A285B\",\"showType\":\"show\"},{\"uid\":\"a83f29dee7a5d0d3f9fccdb9c92161b1afb512db\",\"name\":\"Espace 2\",\"resourceUid\":\"espace2\",\"songsViewStyle\":\"collapsed\",\"color\":\"#0071CE\",\"secondColor\":\"#23B7C1\",\"showType\":\"show\"},{\"uid\":\"8ceb28d9b3f1dd876d1df1780f908578cbefc3d7\",\"name\":\"Couleur 3\",\"resourceUid\":\"couleur3\",\"songsViewStyle\":\"collapsed\",\"color\":\"#E60096\",\"secondColor\":\"#FB5952\",\"showType\":\"show\"},{\"uid\":\"f8517e5319a515e013551eea15aa114fa5cfbc3a\",\"name\":\"Option Musique\",\"resourceUid\":\"option_musique\",\"songsViewStyle\":\"expanded\",\"color\":\"#00CC99\",\"secondColor\":\"#CBC57A\",\"showType\":\"show\"},{\"uid\":\"123456789101112131415161718192021222324x\",\"name\":\"Podcasts Originaux\",\"resourceUid\":\"podcasts_originaux\",\"color\":\"#A550F9\",\"showType\":\"podcast\",\"homeSections\":\"radioLatestEpisodes,radioShowsAccess,radioFavoriteShows,radioLatestEpisodesFromFavorites,radioResumePlayback,radioMostPopular,radioWatchLater,radioAllShows\"}]", "tvChannels": "[{\"uid\":\"la1\",\"name\":\"LA 1\",\"resourceUid\":\"la1\",\"color\":\"#FF9120\",\"secondColor\":\"#E15100\"},{\"uid\":\"la2\",\"name\":\"LA 2\",\"resourceUid\":\"la2\",\"color\":\"#FFCF2F\",\"secondColor\":\"#F38A0D\"},{\"uid\":\"143932a79bb5a123a646b68b1d1188d7ae493e5b\",\"name\":\"RTS 1\",\"resourceUid\":\"rts_un\",\"color\":\"#00D6F3\",\"secondColor\":\"#00B6F0\",\"titleColor\":\"#161616\"},{\"uid\":\"d7dfff28deee44e1d3c49a3d37d36d492b29671b\",\"name\":\"RTS 2\",\"resourceUid\":\"rts_deux\",\"color\":\"#BB66FF\",\"secondColor\":\"#782EB5\"},{\"uid\":\"5d332a26e06d08eec8ad385d566187df72955623\",\"name\":\"RTS Info\",\"resourceUid\":\"rts_info\",\"color\":\"#3787FF\",\"secondColor\":\"#153567\"},{\"uid\":\"23FFBE1B-65CE-4188-ADD2-C724186C2C9F\",\"name\":\"SRF 1\",\"resourceUid\":\"tv_srf1\",\"color\":\"#C91024\",\"secondColor\":\"#8D0614\"},{\"uid\":\"E4D5AD08-C1E8-46A3-BB58-4875051D60D2\",\"name\":\"SRF zwei\",\"resourceUid\":\"tv_srf2\",\"color\":\"#FFB600\",\"secondColor\":\"#ED7004\",\"titleColor\":\"#161616\",\"hasDarkStatusBar\":true},{\"uid\":\"34c2819e-e715-43d7-9026-40a443152a97\",\"name\":\"SRF info\",\"resourceUid\":\"tv_srf_info\",\"color\":\"#AF001E\",\"secondColor\":\"#830512\"}]", "satelliteRadioChannels": "[{\"uid\":\"rsp\",\"name\":\"Radio Swiss Pop\",\"resourceUid\":\"rsp\",\"songsViewStyle\":\"expanded\",\"color\":\"#F01F73\",\"secondColor\":\"#D31A3C\",\"homepageHidden\":true, \"shareURL\":\"https://www.radioswisspop.ch/fr\"},{\"uid\":\"rsc-fr\",\"name\":\"Radio Swiss Classic\",\"resourceUid\":\"rsc\",\"songsViewStyle\":\"expanded\",\"color\":\"#09A1DE\",\"secondColor\":\"#036E99\",\"homepageHidden\":true, \"shareURL\":\"https://www.radioswissclassic.ch/fr\"},{\"uid\":\"rsj\",\"name\":\"Radio Swiss Jazz\",\"resourceUid\":\"rsj\",\"songsViewStyle\":\"expanded\",\"color\":\"#F7B222\",\"secondColor\":\"#CC7A00\",\"homepageHidden\":true, \"shareURL\":\"https://www.radioswissjazz.ch/fr\"}]", "topicColors": "{\"urn:rsi:topic:tv:1\":{\"firstColor\":\"#B5344E\",\"secondColor\":\"#480010\"},\"urn:rsi:topic:tv:4\":{\"firstColor\":\"#D7B447\",\"secondColor\":\"#B62019\",\"reduceBrightness\":true},\"urn:rsi:topic:tv:7\":{\"firstColor\":\"#546591\",\"secondColor\":\"#2C3A50\"},\"urn:rsi:topic:tv:8\":{\"firstColor\":\"#CD4023\",\"secondColor\":\"#90062E\"},\"urn:rsi:topic:tv:11\":{\"firstColor\":\"#DEA706\",\"secondColor\":\"#E92466\",\"reduceBrightness\":true},\"urn:rsi:topic:tv:40\":{\"firstColor\":\"#44BDA8\",\"secondColor\":\"#00324E\"},\"urn:rsi:topic:tv:80\":{\"firstColor\":\"#1F509D\",\"secondColor\":\"#121A37\"},\"urn:rsi:topic:tv:90\":{\"firstColor\":\"#8B96A5\",\"secondColor\":\"#4F5562\",\"reduceBrightness\":true},\"urn:rsi:topic:tv:100\":{\"firstColor\":\"#D75959\",\"secondColor\":\"#29336C\"},\"urn:rsi:topic:tv:600\":{\"firstColor\":\"#23B6CD\",\"secondColor\":\"#7C3184\",\"reduceBrightness\":true},\"urn:rsi:topic:tv:6000\":{\"firstColor\":\"#017EB3\",\"secondColor\":\"#011844\"},\"urn:rtr:topic:tv:2d48ba80-566c-4359-9e8d-8d9b2d570e0a\":{\"firstColor\":\"#00A1A1\",\"secondColor\":\"#04575B\"},\"urn:rtr:topic:tv:7d7f21be-6727-4939-9126-5bca25eb3a49\":{\"firstColor\":\"#80D2E3\",\"secondColor\":\"#003D58\"},\"urn:rtr:topic:tv:20e7478f-1ea1-49c3-81c2-5f157d6ff092\":{\"firstColor\":\"#340101\",\"secondColor\":\"#8F0E0F\"},\"urn:rtr:topic:tv:50bb90d6-41af-4bbd-b92c-6ef5db16a9b3\":{\"firstColor\":\"#8A0533\",\"secondColor\":\"#812626\"},\"urn:rtr:topic:tv:c50140e7-5740-4c44-abd0-0f7d9ea68da7\":{\"firstColor\":\"#A6A6A7\",\"secondColor\":\"#2C2B2D\"},\"urn:rtr:topic:tv:dfb7ae6d-cb73-431b-a817-b1663ec2f58a\":{\"firstColor\":\"#00F8CC\",\"secondColor\":\"#018864\"},\"urn:rts:topic:tv:623\":{\"firstColor\":\"#5C845B\",\"secondColor\":\"#16280F\"},\"urn:rts:topic:tv:665\":{\"firstColor\":\"#3787FF\",\"secondColor\":\"#0A1C33\"},\"urn:rts:topic:tv:1095\":{\"firstColor\":\"#F5F500\",\"secondColor\":\"#BEB405\",\"reduceBrightness\":true},\"urn:rts:topic:tv:1353\":{\"firstColor\":\"#084165\",\"secondColor\":\"#140953\"},\"urn:rts:topic:tv:2743\":{\"firstColor\":\"#BCF6FF\",\"secondColor\":\"#00D0EF\",\"reduceBrightness\":true},\"urn:rts:topic:tv:10193\":{\"firstColor\":\"#EB2350\",\"secondColor\":\"#A61637\"},\"urn:rts:topic:tv:54537\":{\"firstColor\":\"#FFE03E\",\"secondColor\":\"#F98E73\",\"reduceBrightness\":true},\"urn:rts:topic:tv:59220\":{\"firstColor\":\"#492b63\",\"secondColor\":\"#271633\"},\"urn:rts:topic:tv:67132\":{\"firstColor\":\"#415FAF\",\"secondColor\":\"#23376B\"},\"urn:rts:topic:tv:73840\":{\"firstColor\":\"#FF77CD\",\"secondColor\":\"#663052\"},\"urn:srf:topic:tv:1d7d9cfb-6682-4d5b-9e36-322e8fa93c03\":{\"firstColor\":\"#00A4B3\",\"secondColor\":\"#006973\"},\"urn:srf:topic:tv:4acf86dd-7ff7-45d3-baf8-33375340d976\":{\"firstColor\":\"#3f4b70\",\"secondColor\":\"#131a2d\"},\"urn:srf:topic:tv:9a79b1de-cde8-4528-b304-d1ae1363f52f\":{\"firstColor\":\"#836fcd\",\"secondColor\":\"#36343f\"},\"urn:srf:topic:tv:63f937e4-859e-42c4-a430-bdb74dd09645\":{\"firstColor\":\"#4480a2\",\"secondColor\":\"#20182c\"},\"urn:srf:topic:tv:67f812fd-19a3-4c22-9e6b-ec36e65a4703\":{\"firstColor\":\"#bb3966\",\"secondColor\":\"#190406\"},\"urn:srf:topic:tv:593eb926-d892-41ba-8b1f-eccbcfd7f15f\":{\"firstColor\":\"#2bbf9b\",\"secondColor\":\"#02291e\"},\"urn:srf:topic:tv:649e36d7-ff57-41c8-9c1b-7892daf15e78\":{\"firstColor\":\"#FF0037\",\"secondColor\":\"#AF001E\"},\"urn:srf:topic:tv:882cb264-cf81-4a9c-b660-d42519b7ce28\":{\"firstColor\":\"#c91d7d\",\"secondColor\":\"#31041f\"},\"urn:srf:topic:tv:43741c59-317e-458b-ac38-c2b1c065c865\":{\"firstColor\":\"#0075ad\",\"secondColor\":\"#000022\"},\"urn:srf:topic:tv:516421f0-ec89-43ba-823b-1b5ceec262f3\":{\"firstColor\":\"#5FB281\",\"secondColor\":\"#154e60\"},\"urn:srf:topic:tv:641223fa-f112-4d98-8aec-cb22262a1182\":{\"firstColor\":\"#c55cee\",\"secondColor\":\"#0c1c68\"},\"urn:srf:topic:tv:a2d97206-0b85-4226-8afe-06e86ebd05b2\":{\"firstColor\":\"#9fc885\",\"secondColor\":\"#20281a\"},\"urn:srf:topic:tv:a709c610-b275-4c0c-a496-cba304c36712\":{\"firstColor\":\"#b3131d\",\"secondColor\":\"#3e0b14\"},\"urn:srf:topic:tv:b58dcf14-96ac-4046-8676-fd8a942c0e88\":{\"firstColor\":\"#7081b0\",\"secondColor\":\"#202020\"},\"urn:srf:topic:tv:bb7b21e0-1056-4e28-bac3-c610393b5b0f\":{\"firstColor\":\"#3c788e\",\"secondColor\":\"#1b3e48\"},\"urn:srf:topic:tv:e52080fc-f36b-481e-955f-071b6c8d6dc3\":{\"firstColor\":\"#ff6778\",\"secondColor\":\"#920a1a\",\"reduceBrightness\":true},\"urn:srf:topic:tv:fa793c13-bebc-41b9-9710-bf8a34192c15\":{\"firstColor\":\"#baead5\",\"secondColor\":\"#010b40\",\"reduceBrightness\":true}}", diff --git a/Application/Resources/Apps/Play RTS/fr.lproj/Localizable.strings b/Application/Resources/Apps/Play RTS/fr.lproj/Localizable.strings index 470c85a64..36a83add1 100644 --- a/Application/Resources/Apps/Play RTS/fr.lproj/Localizable.strings +++ b/Application/Resources/Apps/Play RTS/fr.lproj/Localizable.strings @@ -647,6 +647,12 @@ Title label used to present the TV shows AZ and TV shows by date access buttons */ "Shows" = "Émissions"; +/* + Title label used to present radio associated podcasts + Title label used to present the radio podcasts AZ and radio podcasts by date access buttons + Title label used to present the TV podcasts AZ and TV podcasts by date access buttons */ +"Podcasts" = "Podcasts"; + /* Label to present shows A to Z (radio or TV) */ "Shows A to Z" = "Émissions de A à Z"; @@ -755,6 +761,9 @@ /* Title label used to present the radio latest audio episodes */ "The latest episodes" = "Dernières émissions"; +/* Title label used to present the radio latest podcast episodes */ +"Latest podcasts" = "Derniers podcasts"; + /* Error message when a media cannot be opened via Handoff Error message when a media cannot be opened via Handoff, deep linking or a push notification */ "The media cannot be opened." = "Le contenu ne peut être ouvert."; diff --git a/Application/Sources/Configuration/ApplicationConfiguration.swift b/Application/Sources/Configuration/ApplicationConfiguration.swift index 28e77102f..4deeed6e1 100644 --- a/Application/Sources/Configuration/ApplicationConfiguration.swift +++ b/Application/Sources/Configuration/ApplicationConfiguration.swift @@ -128,6 +128,9 @@ enum ConfiguredSection: Hashable { case radioResumePlayback(channelUid: String) case radioWatchLater(channelUid: String) + case podcastAllShows(channelUid: String) + case podcastLatestEpisodes(channelUid: String) + case tvLive case radioLive case radioLiveSatellite @@ -145,5 +148,6 @@ enum ConfiguredSection: Hashable { case downloads case notifications case radioShowAccess(channelUid: String) + case radioPodcastAccess(channelUid: String) #endif } diff --git a/Application/Sources/Configuration/Channel.h b/Application/Sources/Configuration/Channel.h index b07494feb..79fc59abd 100644 --- a/Application/Sources/Configuration/Channel.h +++ b/Application/Sources/Configuration/Channel.h @@ -26,6 +26,24 @@ typedef NS_ENUM(NSInteger, SongsViewStyle) { SongsViewStyleExpanded }; +/** + * Show types for radios + */ +typedef NS_ENUM(NSInteger, ShowType) { + /** + * Not displayed. + */ + ShowTypeNone = 0, + /** + * Usual audios shows + */ + ShowTypeShow, + /** + * Podcasts + */ + ShowTypePodcast +}; + @interface Channel : NSObject /** @@ -78,6 +96,11 @@ typedef NS_ENUM(NSInteger, SongsViewStyle) { */ @property (nonatomic, readonly) SongsViewStyle songsViewStyle; +/** + * The type of show hosted by the channel. + */ +@property (nonatomic, readonly) ShowType showType; + /** * The channel content page identifier. */ diff --git a/Application/Sources/Configuration/Channel.m b/Application/Sources/Configuration/Channel.m index ab1d7b138..31d11c9be 100644 --- a/Application/Sources/Configuration/Channel.m +++ b/Application/Sources/Configuration/Channel.m @@ -20,6 +20,18 @@ static SongsViewStyle SongsViewStyleWithString(NSString *string) return songsViewStyle ? songsViewStyle.integerValue : SongsViewStyleNone; } +static ShowType ShowTypeWithString(NSString *string) +{ + static dispatch_once_t s_onceToken; + static NSDictionary *s_showTypes; + dispatch_once(&s_onceToken, ^{ + s_showTypes = @{ @"show" : @(ShowTypeShow), + @"podcast" : @(ShowTypePodcast) }; + }); + NSNumber *showType = s_showTypes[string]; + return showType ? showType.integerValue : ShowTypeNone; +} + @interface Channel () @property (nonatomic, copy) NSString *uid; @@ -31,6 +43,7 @@ @interface Channel () @property (nonatomic) UIColor *titleColor; @property (nonatomic, getter=hasDarkStatusBar) BOOL darkStatusBar; @property (nonatomic) SongsViewStyle songsViewStyle; +@property (nonatomic) ShowType showType; @property (nonatomic, copy) NSString *contentPageId; @end @@ -92,7 +105,12 @@ - (instancetype)initWithDictionary:(NSDictionary *)dictionary if ([songsViewStyleValue isKindOfClass:NSString.class]) { self.songsViewStyle = SongsViewStyleWithString(songsViewStyleValue); } - + + id showTypeValue = dictionary[@"showType"]; + if ([showTypeValue isKindOfClass:NSString.class]) { + self.showType = ShowTypeWithString(showTypeValue); + } + #if DEBUG || NIGHTLY || BETA id contentPageIdValue = dictionary[@"contentPageId"]; if ([contentPageIdValue isKindOfClass:NSString.class]) { diff --git a/Application/Sources/Configuration/RadioChannel.swift b/Application/Sources/Configuration/RadioChannel.swift index 772079441..20008d47a 100644 --- a/Application/Sources/Configuration/RadioChannel.swift +++ b/Application/Sources/Configuration/RadioChannel.swift @@ -8,13 +8,21 @@ extension RadioChannel { private static func configuredSection(from homeSection: HomeSection, withChannelUid channelUid: String) -> ConfiguredSection? { switch homeSection { case .radioAllShows: - return .radioAllShows(channelUid: channelUid) + if ApplicationConfiguration.shared.channel(forUid: channelUid)?.showType == .podcast { + return .podcastAllShows(channelUid: channelUid) + } else { + return .radioAllShows(channelUid: channelUid) + } case .radioFavoriteShows: return .radioFavoriteShows(channelUid: channelUid) case .radioLatest: return .radioLatest(channelUid: channelUid) case .radioLatestEpisodes: - return .radioLatestEpisodes(channelUid: channelUid) + if ApplicationConfiguration.shared.channel(forUid: channelUid)?.showType == .podcast { + return .podcastLatestEpisodes(channelUid: channelUid) + } else { + return .radioLatestEpisodes(channelUid: channelUid) + } case .radioLatestEpisodesFromFavorites: return .radioLatestEpisodesFromFavorites(channelUid: channelUid) case .radioLatestVideos: @@ -27,7 +35,11 @@ extension RadioChannel { return .radioWatchLater(channelUid: channelUid) #if os(iOS) case .radioShowsAccess: - return .radioShowAccess(channelUid: channelUid) + if ApplicationConfiguration.shared.channel(forUid: channelUid)?.showType == .podcast { + return .radioPodcastAccess(channelUid: channelUid) + } else { + return .radioShowAccess(channelUid: channelUid) + } #endif default: return nil diff --git a/Application/Sources/Content/Content.swift b/Application/Sources/Content/Content.swift index f9aab485d..ebbad403e 100644 --- a/Application/Sources/Content/Content.swift +++ b/Application/Sources/Content/Content.swift @@ -577,6 +577,10 @@ private extension Content { return NSLocalizedString("The latest episodes", comment: "Title label used to present the radio latest audio episodes") case .radioLatestEpisodesFromFavorites: return NSLocalizedString("Latest episodes from your favorites", comment: "Title label used to present the latest episodes from radio favorite shows") + case .podcastAllShows: + return NSLocalizedString("Podcasts", comment: "Title label used to present radio associated podcasts") + case .podcastLatestEpisodes: + return NSLocalizedString("Latest podcasts", comment: "Title label used to present the radio latest podcast episodes") case .radioLatestVideos: return NSLocalizedString("Latest videos", comment: "Title label used to present the radio latest videos") case .radioLive: @@ -610,6 +614,8 @@ private extension Content { return NSLocalizedString("Notifications", comment: "Title label used to present notifications") case .radioShowAccess: return NSLocalizedString("Shows", comment: "Title label used to present the radio shows AZ and radio shows by date access buttons") + case .radioPodcastAccess: + return NSLocalizedString("Podcasts", comment: "Title label used to present radio associated podcasts") #endif default: return nil @@ -879,7 +885,7 @@ private extension Content { return dataProvider.tvShows(for: vendor, pageSize: SRGDataProviderUnlimitedPageSize, paginatedBy: paginator) .map { $0.map { .show($0) } } .eraseToAnyPublisher() - case let .radioAllShows(channelUid): + case let .radioAllShows(channelUid), let .podcastAllShows(channelUid): return dataProvider.radioShows(for: vendor, channelUid: channelUid, pageSize: SRGDataProviderUnlimitedPageSize, paginatedBy: paginator) .map { $0.map { .show($0) } } .eraseToAnyPublisher() @@ -895,7 +901,7 @@ private extension Content { return dataProvider.radioLatestMedias(for: vendor, channelUid: channelUid, pageSize: pageSize, paginatedBy: paginator) .map { $0.map { .media($0) } } .eraseToAnyPublisher() - case let .radioLatestEpisodes(channelUid: channelUid): + case let .radioLatestEpisodes(channelUid), let .podcastLatestEpisodes(channelUid): return dataProvider.radioLatestEpisodes(for: vendor, channelUid: channelUid, pageSize: pageSize, paginatedBy: paginator) .map { $0.map { .media($0) } } .eraseToAnyPublisher() @@ -980,7 +986,7 @@ private extension Content { .map { $0.map { .notification($0) } } .setFailureType(to: Error.self) .eraseToAnyPublisher() - case let .radioShowAccess(channelUid): + case let .radioShowAccess(channelUid), let .radioPodcastAccess(channelUid): return Just([.showAccess(radioChannel: configuration.radioChannel(forUid: channelUid))]) .setFailureType(to: Error.self) .eraseToAnyPublisher() diff --git a/docs/REMOTE_CONFIGURATION.md b/docs/REMOTE_CONFIGURATION.md index 90e654768..a580831ba 100755 --- a/docs/REMOTE_CONFIGURATION.md +++ b/docs/REMOTE_CONFIGURATION.md @@ -67,6 +67,9 @@ The keys common to both TV and radio channels JSON dictionaries are: * `songsViewStyle` (optional, string): The songs view style when added to the view. Never displayed if not set. Available values are: * `collapsed`: Collapsed when added to the view. * `expanded`: Expanded when added to the view. +* `showType` (optional, string): Whether the channel has content of type show or podcast. It will affect the section titles. Available values are: + * `show` + * `podcast` * `shareURL` (optional, string): The URL used to share the channel website. * `contentPageId` (optional, string) - BETA ONLY: The page identifier of the content page to use for the channel page. If omitted, the preconfigured page is used with the related sections for this channel. From 366cc5e23a924fc3743894c82d22dd4e473f2b81 Mon Sep 17 00:00:00 2001 From: Mustapha-Tarek Ben Lechhab Date: Wed, 10 Jul 2024 16:48:16 +0200 Subject: [PATCH 02/14] PLAYRTS-5580 Add localized strings (only FR for now) --- .../Play RSI/it.lproj/Localizable.strings | 9 ++++++--- .../Play RTR/rm.lproj/Localizable.strings | 9 ++++++--- .../Play RTS/fr.lproj/Localizable.strings | 20 +++++++------------ .../Play SRF/de.lproj/Localizable.strings | 9 ++++++--- .../Play SWI/en.lproj/Localizable.strings | 9 ++++++--- Translations/Localizable.strings | 9 ++++++--- 6 files changed, 37 insertions(+), 28 deletions(-) diff --git a/Application/Resources/Apps/Play RSI/it.lproj/Localizable.strings b/Application/Resources/Apps/Play RSI/it.lproj/Localizable.strings index e297e4b64..8ec383b0f 100755 --- a/Application/Resources/Apps/Play RSI/it.lproj/Localizable.strings +++ b/Application/Resources/Apps/Play RSI/it.lproj/Localizable.strings @@ -346,6 +346,9 @@ Title label used to present the latest episodes from TV favorite shows */ "Latest episodes from your favorites" = "Episodi più recenti fra i programmi preferiti"; +/* Title label used to present the radio latest podcast episodes */ +"Latest podcasts" = "Latest podcasts"; + /* Title label used to present the radio latest videos */ "Latest videos" = "I video più recenti"; @@ -536,6 +539,9 @@ /* Mail body header to declare a technical issue */ "Please describe the issue below:" = "Descrivete il problema qui di seguito:"; +/* Title label used to present radio associated podcasts */ +"Podcasts" = "Podcasts"; + /* Most poular shows on Play SRG, displayed in the tvOS top shelf */ "Popular on Play SRG" = "Popolari sul Play RSI"; @@ -836,9 +842,6 @@ /* Version label in settings */ "Version" = "Versione"; -/* Label of the button to access release notes and download internal builds (App Center) */ -"Versions and release notes" = "Versioni e note di aggiornamento"; - /* Background video playback setting section footer */ "Video playback continues even when you leave the application." = "Il play dei video continua in secondo piano anche quando si esce dall'applicazione."; diff --git a/Application/Resources/Apps/Play RTR/rm.lproj/Localizable.strings b/Application/Resources/Apps/Play RTR/rm.lproj/Localizable.strings index 90d61faa2..1be7fd3dc 100755 --- a/Application/Resources/Apps/Play RTR/rm.lproj/Localizable.strings +++ b/Application/Resources/Apps/Play RTR/rm.lproj/Localizable.strings @@ -346,6 +346,9 @@ Title label used to present the latest episodes from TV favorite shows */ "Latest episodes from your favorites" = "Novissimas episodas da voss favurits"; +/* Title label used to present the radio latest podcast episodes */ +"Latest podcasts" = "Latest podcasts"; + /* Title label used to present the radio latest videos */ "Latest videos" = "Ils pli novs videos"; @@ -536,6 +539,9 @@ /* Mail body header to declare a technical issue */ "Please describe the issue below:" = "Descrivai per plaschair il sbagl sutvart:"; +/* Title label used to present radio associated podcasts */ +"Podcasts" = "Podcasts"; + /* Most poular shows on Play SRG, displayed in the tvOS top shelf */ "Popular on Play SRG" = "Popular sin Play RTR"; @@ -836,9 +842,6 @@ /* Version label in settings */ "Version" = "Versiun"; -/* Label of the button to access release notes and download internal builds (App Center) */ -"Versions and release notes" = "Remartgas davart versiuns e publicaziuns"; - /* Background video playback setting section footer */ "Video playback continues even when you leave the application." = "Il video marscha vinavant, era sche Vus bandunais l'applicaziun."; diff --git a/Application/Resources/Apps/Play RTS/fr.lproj/Localizable.strings b/Application/Resources/Apps/Play RTS/fr.lproj/Localizable.strings index 36a83add1..2960f0559 100644 --- a/Application/Resources/Apps/Play RTS/fr.lproj/Localizable.strings +++ b/Application/Resources/Apps/Play RTS/fr.lproj/Localizable.strings @@ -346,6 +346,9 @@ Title label used to present the latest episodes from TV favorite shows */ "Latest episodes from your favorites" = "Derniers épisodes de vos favoris"; +/* Title label used to present the radio latest podcast episodes */ +"Latest podcasts" = "Derniers podcasts"; + /* Title label used to present the radio latest videos */ "Latest videos" = "Vidéos les plus récentes"; @@ -536,6 +539,9 @@ /* Mail body header to declare a technical issue */ "Please describe the issue below:" = "Merci de décrire ci-dessous le problème rencontré :"; +/* Title label used to present radio associated podcasts */ +"Podcasts" = "Podcasts"; + /* Most poular shows on Play SRG, displayed in the tvOS top shelf */ "Popular on Play SRG" = "Populaire sur Play RTS"; @@ -647,12 +653,6 @@ Title label used to present the TV shows AZ and TV shows by date access buttons */ "Shows" = "Émissions"; -/* - Title label used to present radio associated podcasts - Title label used to present the radio podcasts AZ and radio podcasts by date access buttons - Title label used to present the TV podcasts AZ and TV podcasts by date access buttons */ -"Podcasts" = "Podcasts"; - /* Label to present shows A to Z (radio or TV) */ "Shows A to Z" = "Émissions de A à Z"; @@ -686,7 +686,7 @@ /* Label of the button for Podcast square image format selection Podcast square image format selection view title */ -"Square images" = "Square images"; +"Square images" = "Images carrées"; /* Server setting name */ "Stage" = "Stage"; @@ -761,9 +761,6 @@ /* Title label used to present the radio latest audio episodes */ "The latest episodes" = "Dernières émissions"; -/* Title label used to present the radio latest podcast episodes */ -"Latest podcasts" = "Derniers podcasts"; - /* Error message when a media cannot be opened via Handoff Error message when a media cannot be opened via Handoff, deep linking or a push notification */ "The media cannot be opened." = "Le contenu ne peut être ouvert."; @@ -845,9 +842,6 @@ /* Version label in settings */ "Version" = "Version"; -/* Label of the button to access release notes and download internal builds (App Center) */ -"Versions and release notes" = "Versions et notes de mise à jour"; - /* Background video playback setting section footer */ "Video playback continues even when you leave the application." = "Autorise la lecture vidéo à se poursuivre même quand vous sortez de l'application."; diff --git a/Application/Resources/Apps/Play SRF/de.lproj/Localizable.strings b/Application/Resources/Apps/Play SRF/de.lproj/Localizable.strings index de13187aa..09002eb7f 100755 --- a/Application/Resources/Apps/Play SRF/de.lproj/Localizable.strings +++ b/Application/Resources/Apps/Play SRF/de.lproj/Localizable.strings @@ -346,6 +346,9 @@ Title label used to present the latest episodes from TV favorite shows */ "Latest episodes from your favorites" = "Die neusten Episoden aus deinen Favoriten"; +/* Title label used to present the radio latest podcast episodes */ +"Latest podcasts" = "Latest podcasts"; + /* Title label used to present the radio latest videos */ "Latest videos" = "Neuste Videos"; @@ -536,6 +539,9 @@ /* Mail body header to declare a technical issue */ "Please describe the issue below:" = "Bitte beschreiben Sie das Problem unten:"; +/* Title label used to present radio associated podcasts */ +"Podcasts" = "Podcasts"; + /* Most poular shows on Play SRG, displayed in the tvOS top shelf */ "Popular on Play SRG" = "Beliebt auf Play SRF"; @@ -836,9 +842,6 @@ /* Version label in settings */ "Version" = "Version"; -/* Label of the button to access release notes and download internal builds (App Center) */ -"Versions and release notes" = "Versionen und neue Funktionen"; - /* Background video playback setting section footer */ "Video playback continues even when you leave the application." = "Die Videos werden ohne Unterbrechung im Hintergrund abgespielt."; diff --git a/Application/Resources/Apps/Play SWI/en.lproj/Localizable.strings b/Application/Resources/Apps/Play SWI/en.lproj/Localizable.strings index 6eddef361..22bb3aa12 100755 --- a/Application/Resources/Apps/Play SWI/en.lproj/Localizable.strings +++ b/Application/Resources/Apps/Play SWI/en.lproj/Localizable.strings @@ -346,6 +346,9 @@ Title label used to present the latest episodes from TV favorite shows */ "Latest episodes from your favorites" = "Latest videos from your favorites"; +/* Title label used to present the radio latest podcast episodes */ +"Latest podcasts" = "Latest podcasts"; + /* Title label used to present the radio latest videos */ "Latest videos" = "Latest videos"; @@ -536,6 +539,9 @@ /* Mail body header to declare a technical issue */ "Please describe the issue below:" = "Please describe the issue below:"; +/* Title label used to present radio associated podcasts */ +"Podcasts" = "Podcasts"; + /* Most poular shows on Play SRG, displayed in the tvOS top shelf */ "Popular on Play SRG" = "Popular on Play SWI"; @@ -836,9 +842,6 @@ /* Version label in settings */ "Version" = "Version"; -/* Label of the button to access release notes and download internal builds (App Center) */ -"Versions and release notes" = "Versions and release notes"; - /* Background video playback setting section footer */ "Video playback continues even when you leave the application." = "Video playback continues even when you leave the application."; diff --git a/Translations/Localizable.strings b/Translations/Localizable.strings index 1e262f13e..969eb1769 100644 --- a/Translations/Localizable.strings +++ b/Translations/Localizable.strings @@ -346,6 +346,9 @@ Title label used to present the latest episodes from TV favorite shows */ "Latest episodes from your favorites" = "Latest episodes from your favorites"; +/* Title label used to present the radio latest podcast episodes */ +"Latest podcasts" = "Latest podcasts"; + /* Title label used to present the radio latest videos */ "Latest videos" = "Latest videos"; @@ -536,6 +539,9 @@ /* Mail body header to declare a technical issue */ "Please describe the issue below:" = "Please describe the issue below:"; +/* Title label used to present radio associated podcasts */ +"Podcasts" = "Podcasts"; + /* Most poular shows on Play SRG, displayed in the tvOS top shelf */ "Popular on Play SRG" = "Popular on Play SRG"; @@ -836,9 +842,6 @@ /* Version label in settings */ "Version" = "Version"; -/* Label of the button to access release notes and download internal builds (App Center) */ -"Versions and release notes" = "Versions and release notes"; - /* Background video playback setting section footer */ "Video playback continues even when you leave the application." = "Video playback continues even when you leave the application."; From 874f64baa42fa7428fd8186424d2983884898f2f Mon Sep 17 00:00:00 2001 From: Mustapha-Tarek Ben Lechhab Date: Wed, 10 Jul 2024 17:17:46 +0200 Subject: [PATCH 03/14] PLAYRTS-5580 Add missing localization places --- Application/Sources/Calendar/CalendarViewController.m | 2 +- Application/Sources/Configuration/RadioChannel.swift | 8 ++++++++ .../Sources/Content/SectionViewController.swift | 10 ++++++++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Application/Sources/Calendar/CalendarViewController.m b/Application/Sources/Calendar/CalendarViewController.m index 10075dc8b..db4824f81 100755 --- a/Application/Sources/Calendar/CalendarViewController.m +++ b/Application/Sources/Calendar/CalendarViewController.m @@ -65,7 +65,7 @@ - (instancetype)initWithRadioChannel:(RadioChannel *)radioChannel date:(NSDate * - (NSString *)title { - return TitleForApplicationSection(ApplicationSectionShowByDate); + return [self.radioChannel sectionTitleWithSectionContext:ApplicationSectionShowByDate]; } #pragma mark View lifecycle diff --git a/Application/Sources/Configuration/RadioChannel.swift b/Application/Sources/Configuration/RadioChannel.swift index 20008d47a..b515efea9 100644 --- a/Application/Sources/Configuration/RadioChannel.swift +++ b/Application/Sources/Configuration/RadioChannel.swift @@ -52,4 +52,12 @@ extension RadioChannel { return Self.configuredSection(from: homeSection, withChannelUid: uid) } } + + @objc func sectionTitle(sectionContext: ApplicationSection) -> String { + if showType == .podcast { + NSLocalizedString("Podcasts by date", comment: "Title of the section when we show podcasts by date") + } else { + TitleForApplicationSection(sectionContext) + } + } } diff --git a/Application/Sources/Content/SectionViewController.swift b/Application/Sources/Content/SectionViewController.swift index 25e254021..7b62e24de 100644 --- a/Application/Sources/Content/SectionViewController.swift +++ b/Application/Sources/Content/SectionViewController.swift @@ -437,9 +437,15 @@ extension SectionViewController { @objc static func showsViewController(forChannelUid channelUid: String?, initialSectionId: String?) -> SectionViewController { if let channelUid { - SectionViewController(section: .configured(.radioAllShows(channelUid: channelUid)), initialSectionId: initialSectionId) + let configuredSection: ConfiguredSection = + if ApplicationConfiguration.shared.channel(forUid: channelUid)?.showType == .podcast { + .podcastAllShows(channelUid: channelUid) + } else { + .radioAllShows(channelUid: channelUid) + } + return SectionViewController(section: .configured(configuredSection), initialSectionId: initialSectionId) } else { - SectionViewController(section: .configured(.tvAllShows), initialSectionId: initialSectionId) + return SectionViewController(section: .configured(.tvAllShows), initialSectionId: initialSectionId) } } From e4e4b5f93488b0ef9c0629b0a60e261bd0487444 Mon Sep 17 00:00:00 2001 From: Mustapha-Tarek Ben Lechhab Date: Wed, 10 Jul 2024 17:21:53 +0200 Subject: [PATCH 04/14] PLAYRTS-5580 Add localized strings (only FR for now) --- .../Resources/Apps/Play RSI/it.lproj/Localizable.strings | 3 +++ .../Resources/Apps/Play RTR/rm.lproj/Localizable.strings | 3 +++ .../Resources/Apps/Play RTS/fr.lproj/Localizable.strings | 3 +++ .../Resources/Apps/Play SRF/de.lproj/Localizable.strings | 3 +++ .../Resources/Apps/Play SWI/en.lproj/Localizable.strings | 3 +++ Translations/Localizable.strings | 3 +++ 6 files changed, 18 insertions(+) diff --git a/Application/Resources/Apps/Play RSI/it.lproj/Localizable.strings b/Application/Resources/Apps/Play RSI/it.lproj/Localizable.strings index 8ec383b0f..251255b00 100755 --- a/Application/Resources/Apps/Play RSI/it.lproj/Localizable.strings +++ b/Application/Resources/Apps/Play RSI/it.lproj/Localizable.strings @@ -542,6 +542,9 @@ /* Title label used to present radio associated podcasts */ "Podcasts" = "Podcasts"; +/* Title of the section when we show podcasts by date */ +"Podcasts by date" = "Podcasts by date"; + /* Most poular shows on Play SRG, displayed in the tvOS top shelf */ "Popular on Play SRG" = "Popolari sul Play RSI"; diff --git a/Application/Resources/Apps/Play RTR/rm.lproj/Localizable.strings b/Application/Resources/Apps/Play RTR/rm.lproj/Localizable.strings index 1be7fd3dc..7edde1e94 100755 --- a/Application/Resources/Apps/Play RTR/rm.lproj/Localizable.strings +++ b/Application/Resources/Apps/Play RTR/rm.lproj/Localizable.strings @@ -542,6 +542,9 @@ /* Title label used to present radio associated podcasts */ "Podcasts" = "Podcasts"; +/* Title of the section when we show podcasts by date */ +"Podcasts by date" = "Podcasts by date"; + /* Most poular shows on Play SRG, displayed in the tvOS top shelf */ "Popular on Play SRG" = "Popular sin Play RTR"; diff --git a/Application/Resources/Apps/Play RTS/fr.lproj/Localizable.strings b/Application/Resources/Apps/Play RTS/fr.lproj/Localizable.strings index 2960f0559..03424ebe7 100644 --- a/Application/Resources/Apps/Play RTS/fr.lproj/Localizable.strings +++ b/Application/Resources/Apps/Play RTS/fr.lproj/Localizable.strings @@ -542,6 +542,9 @@ /* Title label used to present radio associated podcasts */ "Podcasts" = "Podcasts"; +/* Title of the section when we show podcasts by date */ +"Podcasts by date" = "Podcasts par date"; + /* Most poular shows on Play SRG, displayed in the tvOS top shelf */ "Popular on Play SRG" = "Populaire sur Play RTS"; diff --git a/Application/Resources/Apps/Play SRF/de.lproj/Localizable.strings b/Application/Resources/Apps/Play SRF/de.lproj/Localizable.strings index 09002eb7f..7314696d1 100755 --- a/Application/Resources/Apps/Play SRF/de.lproj/Localizable.strings +++ b/Application/Resources/Apps/Play SRF/de.lproj/Localizable.strings @@ -542,6 +542,9 @@ /* Title label used to present radio associated podcasts */ "Podcasts" = "Podcasts"; +/* Title of the section when we show podcasts by date */ +"Podcasts by date" = "Podcasts by date"; + /* Most poular shows on Play SRG, displayed in the tvOS top shelf */ "Popular on Play SRG" = "Beliebt auf Play SRF"; diff --git a/Application/Resources/Apps/Play SWI/en.lproj/Localizable.strings b/Application/Resources/Apps/Play SWI/en.lproj/Localizable.strings index 22bb3aa12..b1c9cf419 100755 --- a/Application/Resources/Apps/Play SWI/en.lproj/Localizable.strings +++ b/Application/Resources/Apps/Play SWI/en.lproj/Localizable.strings @@ -542,6 +542,9 @@ /* Title label used to present radio associated podcasts */ "Podcasts" = "Podcasts"; +/* Title of the section when we show podcasts by date */ +"Podcasts by date" = "Podcasts by date"; + /* Most poular shows on Play SRG, displayed in the tvOS top shelf */ "Popular on Play SRG" = "Popular on Play SWI"; diff --git a/Translations/Localizable.strings b/Translations/Localizable.strings index 969eb1769..fa1b3cebd 100644 --- a/Translations/Localizable.strings +++ b/Translations/Localizable.strings @@ -542,6 +542,9 @@ /* Title label used to present radio associated podcasts */ "Podcasts" = "Podcasts"; +/* Title of the section when we show podcasts by date */ +"Podcasts by date" = "Podcasts by date"; + /* Most poular shows on Play SRG, displayed in the tvOS top shelf */ "Popular on Play SRG" = "Popular on Play SRG"; From 2afcd7f32779eeca92f95516314c88a74480d1dc Mon Sep 17 00:00:00 2001 From: Mustapha-Tarek Ben Lechhab Date: Thu, 11 Jul 2024 22:52:05 +0200 Subject: [PATCH 05/14] PLAYRTS-5580 Add missing condition for shows by date --- Application/Sources/Configuration/RadioChannel.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Application/Sources/Configuration/RadioChannel.swift b/Application/Sources/Configuration/RadioChannel.swift index b515efea9..4e9547c7a 100644 --- a/Application/Sources/Configuration/RadioChannel.swift +++ b/Application/Sources/Configuration/RadioChannel.swift @@ -54,7 +54,7 @@ extension RadioChannel { } @objc func sectionTitle(sectionContext: ApplicationSection) -> String { - if showType == .podcast { + if sectionContext == .showByDate, showType == .podcast { NSLocalizedString("Podcasts by date", comment: "Title of the section when we show podcasts by date") } else { TitleForApplicationSection(sectionContext) From b9241c314706ace2806bcc4e1d9ef1d3a2b458b6 Mon Sep 17 00:00:00 2001 From: Mustapha-Tarek Date: Thu, 11 Jul 2024 22:52:53 +0200 Subject: [PATCH 06/14] Update Application/Sources/Configuration/Channel.h Co-authored-by: Pierre-Yves --- Application/Sources/Configuration/Channel.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Application/Sources/Configuration/Channel.h b/Application/Sources/Configuration/Channel.h index 79fc59abd..2e137a5f9 100644 --- a/Application/Sources/Configuration/Channel.h +++ b/Application/Sources/Configuration/Channel.h @@ -35,7 +35,7 @@ typedef NS_ENUM(NSInteger, ShowType) { */ ShowTypeNone = 0, /** - * Usual audios shows + * Usual broadcast shows */ ShowTypeShow, /** From b7abce197062cb8a9e53dd2f43d986560625c937 Mon Sep 17 00:00:00 2001 From: Mustapha-Tarek Ben Lechhab Date: Thu, 11 Jul 2024 23:04:11 +0200 Subject: [PATCH 07/14] PLAYRTS-5580 Remove intermediate enum cases and handle the string switching at the latest level --- .../ApplicationConfiguration.swift | 4 --- .../Sources/Configuration/RadioChannel.swift | 18 ++-------- Application/Sources/Content/Content.swift | 36 +++++++++++-------- .../Content/SectionViewController.swift | 10 ++---- 4 files changed, 27 insertions(+), 41 deletions(-) diff --git a/Application/Sources/Configuration/ApplicationConfiguration.swift b/Application/Sources/Configuration/ApplicationConfiguration.swift index 4deeed6e1..28e77102f 100644 --- a/Application/Sources/Configuration/ApplicationConfiguration.swift +++ b/Application/Sources/Configuration/ApplicationConfiguration.swift @@ -128,9 +128,6 @@ enum ConfiguredSection: Hashable { case radioResumePlayback(channelUid: String) case radioWatchLater(channelUid: String) - case podcastAllShows(channelUid: String) - case podcastLatestEpisodes(channelUid: String) - case tvLive case radioLive case radioLiveSatellite @@ -148,6 +145,5 @@ enum ConfiguredSection: Hashable { case downloads case notifications case radioShowAccess(channelUid: String) - case radioPodcastAccess(channelUid: String) #endif } diff --git a/Application/Sources/Configuration/RadioChannel.swift b/Application/Sources/Configuration/RadioChannel.swift index 4e9547c7a..0c5489dc5 100644 --- a/Application/Sources/Configuration/RadioChannel.swift +++ b/Application/Sources/Configuration/RadioChannel.swift @@ -8,21 +8,13 @@ extension RadioChannel { private static func configuredSection(from homeSection: HomeSection, withChannelUid channelUid: String) -> ConfiguredSection? { switch homeSection { case .radioAllShows: - if ApplicationConfiguration.shared.channel(forUid: channelUid)?.showType == .podcast { - return .podcastAllShows(channelUid: channelUid) - } else { - return .radioAllShows(channelUid: channelUid) - } + return .radioAllShows(channelUid: channelUid) case .radioFavoriteShows: return .radioFavoriteShows(channelUid: channelUid) case .radioLatest: return .radioLatest(channelUid: channelUid) case .radioLatestEpisodes: - if ApplicationConfiguration.shared.channel(forUid: channelUid)?.showType == .podcast { - return .podcastLatestEpisodes(channelUid: channelUid) - } else { - return .radioLatestEpisodes(channelUid: channelUid) - } + return .radioLatestEpisodes(channelUid: channelUid) case .radioLatestEpisodesFromFavorites: return .radioLatestEpisodesFromFavorites(channelUid: channelUid) case .radioLatestVideos: @@ -35,11 +27,7 @@ extension RadioChannel { return .radioWatchLater(channelUid: channelUid) #if os(iOS) case .radioShowsAccess: - if ApplicationConfiguration.shared.channel(forUid: channelUid)?.showType == .podcast { - return .radioPodcastAccess(channelUid: channelUid) - } else { - return .radioShowAccess(channelUid: channelUid) - } + return .radioShowAccess(channelUid: channelUid) #endif default: return nil diff --git a/Application/Sources/Content/Content.swift b/Application/Sources/Content/Content.swift index ebbad403e..89d35d4fd 100644 --- a/Application/Sources/Content/Content.swift +++ b/Application/Sources/Content/Content.swift @@ -567,20 +567,26 @@ private extension Content { switch configuredSection { case .history: return NSLocalizedString("History", comment: "Title label used to present the history") - case .radioAllShows, .tvAllShows: + case .tvAllShows: return NSLocalizedString("Shows", comment: "Title label used to present radio associated shows") + case let .radioAllShows(channelUid): + if ApplicationConfiguration.shared.channel(forUid: channelUid)?.showType == .podcast { + return NSLocalizedString("Podcasts", comment: "Title label used to present radio associated podcasts") + } else { + return NSLocalizedString("Shows", comment: "Title label used to present radio associated shows") + } case .favoriteShows, .radioFavoriteShows: return NSLocalizedString("Favorites", comment: "Title label used to present the radio favorite shows") case .radioLatest: return NSLocalizedString("The latest audios", comment: "Title label used to present the radio latest audios") - case .radioLatestEpisodes: - return NSLocalizedString("The latest episodes", comment: "Title label used to present the radio latest audio episodes") + case let .radioLatestEpisodes(channelUid): + if ApplicationConfiguration.shared.channel(forUid: channelUid)?.showType == .podcast { + return NSLocalizedString("Latest podcasts", comment: "Title label used to present the radio latest podcast episodes") + } else { + return NSLocalizedString("The latest episodes", comment: "Title label used to present the radio latest audio episodes") + } case .radioLatestEpisodesFromFavorites: return NSLocalizedString("Latest episodes from your favorites", comment: "Title label used to present the latest episodes from radio favorite shows") - case .podcastAllShows: - return NSLocalizedString("Podcasts", comment: "Title label used to present radio associated podcasts") - case .podcastLatestEpisodes: - return NSLocalizedString("Latest podcasts", comment: "Title label used to present the radio latest podcast episodes") case .radioLatestVideos: return NSLocalizedString("Latest videos", comment: "Title label used to present the radio latest videos") case .radioLive: @@ -612,10 +618,12 @@ private extension Content { return NSLocalizedString("Downloads", comment: "Label to present downloads") case .notifications: return NSLocalizedString("Notifications", comment: "Title label used to present notifications") - case .radioShowAccess: - return NSLocalizedString("Shows", comment: "Title label used to present the radio shows AZ and radio shows by date access buttons") - case .radioPodcastAccess: - return NSLocalizedString("Podcasts", comment: "Title label used to present radio associated podcasts") + case let .radioShowAccess(channelUid): + if ApplicationConfiguration.shared.channel(forUid: channelUid)?.showType == .podcast { + return NSLocalizedString("Podcasts", comment: "Title label used to present radio associated podcasts") + } else { + return NSLocalizedString("Shows", comment: "Title label used to present the radio shows AZ and radio shows by date access buttons") + } #endif default: return nil @@ -885,7 +893,7 @@ private extension Content { return dataProvider.tvShows(for: vendor, pageSize: SRGDataProviderUnlimitedPageSize, paginatedBy: paginator) .map { $0.map { .show($0) } } .eraseToAnyPublisher() - case let .radioAllShows(channelUid), let .podcastAllShows(channelUid): + case let .radioAllShows(channelUid): return dataProvider.radioShows(for: vendor, channelUid: channelUid, pageSize: SRGDataProviderUnlimitedPageSize, paginatedBy: paginator) .map { $0.map { .show($0) } } .eraseToAnyPublisher() @@ -901,7 +909,7 @@ private extension Content { return dataProvider.radioLatestMedias(for: vendor, channelUid: channelUid, pageSize: pageSize, paginatedBy: paginator) .map { $0.map { .media($0) } } .eraseToAnyPublisher() - case let .radioLatestEpisodes(channelUid), let .podcastLatestEpisodes(channelUid): + case let .radioLatestEpisodes(channelUid): return dataProvider.radioLatestEpisodes(for: vendor, channelUid: channelUid, pageSize: pageSize, paginatedBy: paginator) .map { $0.map { .media($0) } } .eraseToAnyPublisher() @@ -986,7 +994,7 @@ private extension Content { .map { $0.map { .notification($0) } } .setFailureType(to: Error.self) .eraseToAnyPublisher() - case let .radioShowAccess(channelUid), let .radioPodcastAccess(channelUid): + case let .radioShowAccess(channelUid): return Just([.showAccess(radioChannel: configuration.radioChannel(forUid: channelUid))]) .setFailureType(to: Error.self) .eraseToAnyPublisher() diff --git a/Application/Sources/Content/SectionViewController.swift b/Application/Sources/Content/SectionViewController.swift index 7b62e24de..25e254021 100644 --- a/Application/Sources/Content/SectionViewController.swift +++ b/Application/Sources/Content/SectionViewController.swift @@ -437,15 +437,9 @@ extension SectionViewController { @objc static func showsViewController(forChannelUid channelUid: String?, initialSectionId: String?) -> SectionViewController { if let channelUid { - let configuredSection: ConfiguredSection = - if ApplicationConfiguration.shared.channel(forUid: channelUid)?.showType == .podcast { - .podcastAllShows(channelUid: channelUid) - } else { - .radioAllShows(channelUid: channelUid) - } - return SectionViewController(section: .configured(configuredSection), initialSectionId: initialSectionId) + SectionViewController(section: .configured(.radioAllShows(channelUid: channelUid)), initialSectionId: initialSectionId) } else { - return SectionViewController(section: .configured(.tvAllShows), initialSectionId: initialSectionId) + SectionViewController(section: .configured(.tvAllShows), initialSectionId: initialSectionId) } } From f56297c88bfbe770b558fb147225e4658ea45fea Mon Sep 17 00:00:00 2001 From: Mustapha-Tarek Date: Thu, 11 Jul 2024 23:06:24 +0200 Subject: [PATCH 08/14] Update Application/Sources/Configuration/Channel.h Co-authored-by: Pierre-Yves --- Application/Sources/Configuration/Channel.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Application/Sources/Configuration/Channel.h b/Application/Sources/Configuration/Channel.h index 2e137a5f9..ea1f098c1 100644 --- a/Application/Sources/Configuration/Channel.h +++ b/Application/Sources/Configuration/Channel.h @@ -39,7 +39,7 @@ typedef NS_ENUM(NSInteger, ShowType) { */ ShowTypeShow, /** - * Podcasts + * Podcast shows */ ShowTypePodcast }; From 3fded557802bca1310b34b285e47036f760522e9 Mon Sep 17 00:00:00 2001 From: Mustapha-Tarek Ben Lechhab Date: Fri, 12 Jul 2024 14:28:31 +0200 Subject: [PATCH 09/14] PLAYRTS-5580 Use default show type --- Application/Sources/Configuration/Channel.h | 6 +----- Application/Sources/Configuration/Channel.m | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/Application/Sources/Configuration/Channel.h b/Application/Sources/Configuration/Channel.h index ea1f098c1..936123a33 100644 --- a/Application/Sources/Configuration/Channel.h +++ b/Application/Sources/Configuration/Channel.h @@ -31,11 +31,7 @@ typedef NS_ENUM(NSInteger, SongsViewStyle) { */ typedef NS_ENUM(NSInteger, ShowType) { /** - * Not displayed. - */ - ShowTypeNone = 0, - /** - * Usual broadcast shows + * Usual broadcast shows, default value if nil */ ShowTypeShow, /** diff --git a/Application/Sources/Configuration/Channel.m b/Application/Sources/Configuration/Channel.m index 31d11c9be..ad4bf4f21 100644 --- a/Application/Sources/Configuration/Channel.m +++ b/Application/Sources/Configuration/Channel.m @@ -29,7 +29,7 @@ static ShowType ShowTypeWithString(NSString *string) @"podcast" : @(ShowTypePodcast) }; }); NSNumber *showType = s_showTypes[string]; - return showType ? showType.integerValue : ShowTypeNone; + return showType ? showType.integerValue : ShowTypeShow; } @interface Channel () From 51489096f970819224feb1f3e815a7d19487aa2b Mon Sep 17 00:00:00 2001 From: Mustapha-Tarek Ben Lechhab Date: Mon, 15 Jul 2024 10:50:31 +0200 Subject: [PATCH 10/14] PLAYRTS-5580 Fix calendar title in case the radio channel is nil --- Application/Sources/Calendar/CalendarViewController.m | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Application/Sources/Calendar/CalendarViewController.m b/Application/Sources/Calendar/CalendarViewController.m index db4824f81..f2ee3aa3a 100755 --- a/Application/Sources/Calendar/CalendarViewController.m +++ b/Application/Sources/Calendar/CalendarViewController.m @@ -65,7 +65,11 @@ - (instancetype)initWithRadioChannel:(RadioChannel *)radioChannel date:(NSDate * - (NSString *)title { - return [self.radioChannel sectionTitleWithSectionContext:ApplicationSectionShowByDate]; + if (self.radioChannel == nil) { + return TitleForApplicationSection(ApplicationSectionShowByDate); + } else { + return [self.radioChannel sectionTitleWithSectionContext:ApplicationSectionShowByDate]; + } } #pragma mark View lifecycle From 67fa69fdd0c3693f88fd0b76e36195245ffe96ad Mon Sep 17 00:00:00 2001 From: Mustapha-Tarek Date: Tue, 23 Jul 2024 09:11:41 +0200 Subject: [PATCH 11/14] PLAYRTS-5580 Update Application/Resources/Apps/Play RSI/ApplicationConfiguration.json Co-authored-by: Pierre-Yves --- .../Resources/Apps/Play RSI/ApplicationConfiguration.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Application/Resources/Apps/Play RSI/ApplicationConfiguration.json b/Application/Resources/Apps/Play RSI/ApplicationConfiguration.json index cba052e50..b07d8a317 100755 --- a/Application/Resources/Apps/Play RSI/ApplicationConfiguration.json +++ b/Application/Resources/Apps/Play RSI/ApplicationConfiguration.json @@ -18,7 +18,7 @@ "termsAndConditionsURL": "https://www.rsi.ch/la-rsi/Condizioni-generali-di-uso-del-sito-RSI-8585464.html", "dataProtectionURL": "https://www.rsi.ch/la-rsi/Dichiarazione-sulla-protezione-dei-dati-10499633.html", "whatsNewURL": "https://srgssr.github.io/playsrg-apple/releases/release_notes-ios-rsi.html", - "radioChannels": "[{\"uid\":\"rete-uno\",\"name\":\"Rete Uno\",\"resourceUid\":\"rete_uno\",\"songsViewStyle\":\"collapsed\",\"color\":\"#0074C2\",\"secondColor\":\"#54B8EF\",\"showType\":\"show\"},{\"uid\":\"rete-due\",\"name\":\"Rete Due\",\"resourceUid\":\"rete_due\",\"songsViewStyle\":\"collapsed\",\"color\":\"#06A73B\",\"secondColor\":\"#30E96B\",\"showType\":\"show\"},{\"uid\":\"rete-tre\",\"name\":\"Rete Tre\",\"resourceUid\":\"rete_tre\",\"songsViewStyle\":\"collapsed\",\"color\":\"#A4BB1B\",\"secondColor\":\"#DEF355\",\"showType\":\"show\"},{\"uid\":\"podcast\",\"name\":\"Podcast\",\"resourceUid\":\"rsi_podcast\",\"color\":\"#333333\",\"showType\":\"podcast\",\"homeSections\":\"radioLatest,radioFavoriteShows,radioLatestEpisodesFromFavorites,radioResumePlayback,radioMostPopular,radioWatchLater,radioAllShows\"}]", + "radioChannels": "[{\"uid\":\"rete-uno\",\"name\":\"Rete Uno\",\"resourceUid\":\"rete_uno\",\"songsViewStyle\":\"collapsed\",\"color\":\"#0074C2\",\"secondColor\":\"#54B8EF\"},{\"uid\":\"rete-due\",\"name\":\"Rete Due\",\"resourceUid\":\"rete_due\",\"songsViewStyle\":\"collapsed\",\"color\":\"#06A73B\",\"secondColor\":\"#30E96B\"},{\"uid\":\"rete-tre\",\"name\":\"Rete Tre\",\"resourceUid\":\"rete_tre\",\"songsViewStyle\":\"collapsed\",\"color\":\"#A4BB1B\",\"secondColor\":\"#DEF355\"},{\"uid\":\"podcast\",\"name\":\"Podcast\",\"resourceUid\":\"rsi_podcast\",\"color\":\"#333333\",\"showType\":\"podcast\",\"homeSections\":\"radioLatest,radioFavoriteShows,radioLatestEpisodesFromFavorites,radioResumePlayback,radioMostPopular,radioWatchLater,radioAllShows\"}]", "tvChannels": "[{\"uid\":\"la1\",\"name\":\"LA 1\",\"resourceUid\":\"la1\",\"color\":\"#FF9120\",\"secondColor\":\"#E15100\"},{\"uid\":\"la2\",\"name\":\"LA 2\",\"resourceUid\":\"la2\",\"color\":\"#FFCF2F\",\"secondColor\":\"#F38A0D\"},{\"uid\":\"143932a79bb5a123a646b68b1d1188d7ae493e5b\",\"name\":\"RTS 1\",\"resourceUid\":\"rts_un\",\"color\":\"#00D6F3\",\"secondColor\":\"#00B6F0\",\"titleColor\":\"#161616\"},{\"uid\":\"d7dfff28deee44e1d3c49a3d37d36d492b29671b\",\"name\":\"RTS 2\",\"resourceUid\":\"rts_deux\",\"color\":\"#BB66FF\",\"secondColor\":\"#782EB5\"},{\"uid\":\"5d332a26e06d08eec8ad385d566187df72955623\",\"name\":\"RTS Info\",\"resourceUid\":\"rts_info\",\"color\":\"#3787FF\",\"secondColor\":\"#153567\"},{\"uid\":\"23FFBE1B-65CE-4188-ADD2-C724186C2C9F\",\"name\":\"SRF 1\",\"resourceUid\":\"tv_srf1\",\"color\":\"#C91024\",\"secondColor\":\"#8D0614\"},{\"uid\":\"E4D5AD08-C1E8-46A3-BB58-4875051D60D2\",\"name\":\"SRF zwei\",\"resourceUid\":\"tv_srf2\",\"color\":\"#FFB600\",\"secondColor\":\"#ED7004\",\"titleColor\":\"#161616\",\"hasDarkStatusBar\":true},{\"uid\":\"34c2819e-e715-43d7-9026-40a443152a97\",\"name\":\"SRF info\",\"resourceUid\":\"tv_srf_info\",\"color\":\"#AF001E\",\"secondColor\":\"#830512\"}]", "satelliteRadioChannels": "[{\"uid\":\"rsp\",\"name\":\"Radio Swiss Pop\",\"resourceUid\":\"rsp\",\"songsViewStyle\":\"expanded\",\"color\":\"#F01F73\",\"secondColor\":\"#D31A3C\",\"homepageHidden\":true, \"shareURL\":\"https://www.radioswisspop.ch/it\"},{\"uid\":\"rsc-it\",\"name\":\"Radio Swiss Classic\",\"resourceUid\":\"rsc\",\"songsViewStyle\":\"expanded\",\"color\":\"#09A1DE\",\"secondColor\":\"#036E99\",\"homepageHidden\":true, \"shareURL\":\"https://www.radioswissclassic.ch/it\"},{\"uid\":\"rsj\",\"name\":\"Radio Swiss Jazz\",\"resourceUid\":\"rsj\",\"songsViewStyle\":\"expanded\",\"color\":\"#F7B222\",\"secondColor\":\"#CC7A00\",\"homepageHidden\":true, \"shareURL\":\"https://www.radioswissjazz.ch/it\"}]", "topicColors": "{\"urn:rsi:topic:tv:1\":{\"firstColor\":\"#B5344E\",\"secondColor\":\"#480010\"},\"urn:rsi:topic:tv:4\":{\"firstColor\":\"#D7B447\",\"secondColor\":\"#B62019\",\"reduceBrightness\":true},\"urn:rsi:topic:tv:7\":{\"firstColor\":\"#546591\",\"secondColor\":\"#2C3A50\"},\"urn:rsi:topic:tv:8\":{\"firstColor\":\"#CD4023\",\"secondColor\":\"#90062E\"},\"urn:rsi:topic:tv:11\":{\"firstColor\":\"#DEA706\",\"secondColor\":\"#E92466\",\"reduceBrightness\":true},\"urn:rsi:topic:tv:40\":{\"firstColor\":\"#44BDA8\",\"secondColor\":\"#00324E\"},\"urn:rsi:topic:tv:80\":{\"firstColor\":\"#1F509D\",\"secondColor\":\"#121A37\"},\"urn:rsi:topic:tv:90\":{\"firstColor\":\"#8B96A5\",\"secondColor\":\"#4F5562\",\"reduceBrightness\":true},\"urn:rsi:topic:tv:100\":{\"firstColor\":\"#D75959\",\"secondColor\":\"#29336C\"},\"urn:rsi:topic:tv:600\":{\"firstColor\":\"#23B6CD\",\"secondColor\":\"#7C3184\",\"reduceBrightness\":true},\"urn:rsi:topic:tv:6000\":{\"firstColor\":\"#017EB3\",\"secondColor\":\"#011844\"},\"urn:rtr:topic:tv:2d48ba80-566c-4359-9e8d-8d9b2d570e0a\":{\"firstColor\":\"#00A1A1\",\"secondColor\":\"#04575B\"},\"urn:rtr:topic:tv:7d7f21be-6727-4939-9126-5bca25eb3a49\":{\"firstColor\":\"#80D2E3\",\"secondColor\":\"#003D58\"},\"urn:rtr:topic:tv:20e7478f-1ea1-49c3-81c2-5f157d6ff092\":{\"firstColor\":\"#340101\",\"secondColor\":\"#8F0E0F\"},\"urn:rtr:topic:tv:50bb90d6-41af-4bbd-b92c-6ef5db16a9b3\":{\"firstColor\":\"#8A0533\",\"secondColor\":\"#812626\"},\"urn:rtr:topic:tv:c50140e7-5740-4c44-abd0-0f7d9ea68da7\":{\"firstColor\":\"#A6A6A7\",\"secondColor\":\"#2C2B2D\"},\"urn:rtr:topic:tv:dfb7ae6d-cb73-431b-a817-b1663ec2f58a\":{\"firstColor\":\"#00F8CC\",\"secondColor\":\"#018864\"},\"urn:rts:topic:tv:623\":{\"firstColor\":\"#5C845B\",\"secondColor\":\"#16280F\"},\"urn:rts:topic:tv:665\":{\"firstColor\":\"#3787FF\",\"secondColor\":\"#0A1C33\"},\"urn:rts:topic:tv:1095\":{\"firstColor\":\"#F5F500\",\"secondColor\":\"#BEB405\",\"reduceBrightness\":true},\"urn:rts:topic:tv:1353\":{\"firstColor\":\"#084165\",\"secondColor\":\"#140953\"},\"urn:rts:topic:tv:2743\":{\"firstColor\":\"#BCF6FF\",\"secondColor\":\"#00D0EF\",\"reduceBrightness\":true},\"urn:rts:topic:tv:10193\":{\"firstColor\":\"#EB2350\",\"secondColor\":\"#A61637\"},\"urn:rts:topic:tv:54537\":{\"firstColor\":\"#FFE03E\",\"secondColor\":\"#F98E73\",\"reduceBrightness\":true},\"urn:rts:topic:tv:59220\":{\"firstColor\":\"#492b63\",\"secondColor\":\"#271633\"},\"urn:rts:topic:tv:67132\":{\"firstColor\":\"#415FAF\",\"secondColor\":\"#23376B\"},\"urn:rts:topic:tv:73840\":{\"firstColor\":\"#FF77CD\",\"secondColor\":\"#663052\"},\"urn:srf:topic:tv:1d7d9cfb-6682-4d5b-9e36-322e8fa93c03\":{\"firstColor\":\"#00A4B3\",\"secondColor\":\"#006973\"},\"urn:srf:topic:tv:4acf86dd-7ff7-45d3-baf8-33375340d976\":{\"firstColor\":\"#3f4b70\",\"secondColor\":\"#131a2d\"},\"urn:srf:topic:tv:9a79b1de-cde8-4528-b304-d1ae1363f52f\":{\"firstColor\":\"#836fcd\",\"secondColor\":\"#36343f\"},\"urn:srf:topic:tv:63f937e4-859e-42c4-a430-bdb74dd09645\":{\"firstColor\":\"#4480a2\",\"secondColor\":\"#20182c\"},\"urn:srf:topic:tv:67f812fd-19a3-4c22-9e6b-ec36e65a4703\":{\"firstColor\":\"#bb3966\",\"secondColor\":\"#190406\"},\"urn:srf:topic:tv:593eb926-d892-41ba-8b1f-eccbcfd7f15f\":{\"firstColor\":\"#2bbf9b\",\"secondColor\":\"#02291e\"},\"urn:srf:topic:tv:649e36d7-ff57-41c8-9c1b-7892daf15e78\":{\"firstColor\":\"#FF0037\",\"secondColor\":\"#AF001E\"},\"urn:srf:topic:tv:882cb264-cf81-4a9c-b660-d42519b7ce28\":{\"firstColor\":\"#c91d7d\",\"secondColor\":\"#31041f\"},\"urn:srf:topic:tv:43741c59-317e-458b-ac38-c2b1c065c865\":{\"firstColor\":\"#0075ad\",\"secondColor\":\"#000022\"},\"urn:srf:topic:tv:516421f0-ec89-43ba-823b-1b5ceec262f3\":{\"firstColor\":\"#5FB281\",\"secondColor\":\"#154e60\"},\"urn:srf:topic:tv:641223fa-f112-4d98-8aec-cb22262a1182\":{\"firstColor\":\"#c55cee\",\"secondColor\":\"#0c1c68\"},\"urn:srf:topic:tv:a2d97206-0b85-4226-8afe-06e86ebd05b2\":{\"firstColor\":\"#9fc885\",\"secondColor\":\"#20281a\"},\"urn:srf:topic:tv:a709c610-b275-4c0c-a496-cba304c36712\":{\"firstColor\":\"#b3131d\",\"secondColor\":\"#3e0b14\"},\"urn:srf:topic:tv:b58dcf14-96ac-4046-8676-fd8a942c0e88\":{\"firstColor\":\"#7081b0\",\"secondColor\":\"#202020\"},\"urn:srf:topic:tv:bb7b21e0-1056-4e28-bac3-c610393b5b0f\":{\"firstColor\":\"#3c788e\",\"secondColor\":\"#1b3e48\"},\"urn:srf:topic:tv:e52080fc-f36b-481e-955f-071b6c8d6dc3\":{\"firstColor\":\"#ff6778\",\"secondColor\":\"#920a1a\",\"reduceBrightness\":true},\"urn:srf:topic:tv:fa793c13-bebc-41b9-9710-bf8a34192c15\":{\"firstColor\":\"#baead5\",\"secondColor\":\"#010b40\",\"reduceBrightness\":true}}", From 21638dee17d5bfaa1789123c63c3cfe5d61c16d1 Mon Sep 17 00:00:00 2001 From: Mustapha-Tarek Date: Tue, 23 Jul 2024 09:12:00 +0200 Subject: [PATCH 12/14] PLAYRTS-5580 Update docs/REMOTE_CONFIGURATION.md Co-authored-by: Pierre-Yves --- docs/REMOTE_CONFIGURATION.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/REMOTE_CONFIGURATION.md b/docs/REMOTE_CONFIGURATION.md index a580831ba..29eb46eb7 100755 --- a/docs/REMOTE_CONFIGURATION.md +++ b/docs/REMOTE_CONFIGURATION.md @@ -67,7 +67,7 @@ The keys common to both TV and radio channels JSON dictionaries are: * `songsViewStyle` (optional, string): The songs view style when added to the view. Never displayed if not set. Available values are: * `collapsed`: Collapsed when added to the view. * `expanded`: Expanded when added to the view. -* `showType` (optional, string): Whether the channel has content of type show or podcast. It will affect the section titles. Available values are: +* `showType` (optional, string): Whether the channel has content of type show or podcast. It will affect some section titles. If empty, the default value is `show`. Available values are: * `show` * `podcast` * `shareURL` (optional, string): The URL used to share the channel website. From 96e61711ae633b58476ff1acb75b91c3ad81103b Mon Sep 17 00:00:00 2001 From: Mustapha-Tarek Date: Tue, 23 Jul 2024 09:12:06 +0200 Subject: [PATCH 13/14] PLAYRTS-5580 Update Application/Resources/Apps/Play RTS/ApplicationConfiguration.json Co-authored-by: Pierre-Yves --- .../Resources/Apps/Play RTS/ApplicationConfiguration.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Application/Resources/Apps/Play RTS/ApplicationConfiguration.json b/Application/Resources/Apps/Play RTS/ApplicationConfiguration.json index aaec808cf..8b732f181 100755 --- a/Application/Resources/Apps/Play RTS/ApplicationConfiguration.json +++ b/Application/Resources/Apps/Play RTS/ApplicationConfiguration.json @@ -21,7 +21,7 @@ "termsAndConditionsURL": "https://www.rts.ch/article/8994021", "dataProtectionURL": "https://www.rts.ch/article/8994006", "whatsNewURL": "https://srgssr.github.io/playsrg-apple/releases/release_notes-ios-rts.html", - "radioChannels": "[{\"uid\":\"a9e7621504c6959e35c3ecbe7f6bed0446cdf8da\",\"name\":\"La 1ère\",\"resourceUid\":\"la1ere\",\"songsViewStyle\":\"collapsed\",\"color\":\"#E20026\",\"secondColor\":\"#5A285B\",\"showType\":\"show\"},{\"uid\":\"a83f29dee7a5d0d3f9fccdb9c92161b1afb512db\",\"name\":\"Espace 2\",\"resourceUid\":\"espace2\",\"songsViewStyle\":\"collapsed\",\"color\":\"#0071CE\",\"secondColor\":\"#23B7C1\",\"showType\":\"show\"},{\"uid\":\"8ceb28d9b3f1dd876d1df1780f908578cbefc3d7\",\"name\":\"Couleur 3\",\"resourceUid\":\"couleur3\",\"songsViewStyle\":\"collapsed\",\"color\":\"#E60096\",\"secondColor\":\"#FB5952\",\"showType\":\"show\"},{\"uid\":\"f8517e5319a515e013551eea15aa114fa5cfbc3a\",\"name\":\"Option Musique\",\"resourceUid\":\"option_musique\",\"songsViewStyle\":\"expanded\",\"color\":\"#00CC99\",\"secondColor\":\"#CBC57A\",\"showType\":\"show\"},{\"uid\":\"123456789101112131415161718192021222324x\",\"name\":\"Podcasts Originaux\",\"resourceUid\":\"podcasts_originaux\",\"color\":\"#A550F9\",\"showType\":\"podcast\",\"homeSections\":\"radioLatestEpisodes,radioShowsAccess,radioFavoriteShows,radioLatestEpisodesFromFavorites,radioResumePlayback,radioMostPopular,radioWatchLater,radioAllShows\"}]", + "radioChannels": "[{\"uid\":\"a9e7621504c6959e35c3ecbe7f6bed0446cdf8da\",\"name\":\"La 1ère\",\"resourceUid\":\"la1ere\",\"songsViewStyle\":\"collapsed\",\"color\":\"#E20026\",\"secondColor\":\"#5A285B\"},{\"uid\":\"a83f29dee7a5d0d3f9fccdb9c92161b1afb512db\",\"name\":\"Espace 2\",\"resourceUid\":\"espace2\",\"songsViewStyle\":\"collapsed\",\"color\":\"#0071CE\",\"secondColor\":\"#23B7C1\"},{\"uid\":\"8ceb28d9b3f1dd876d1df1780f908578cbefc3d7\",\"name\":\"Couleur 3\",\"resourceUid\":\"couleur3\",\"songsViewStyle\":\"collapsed\",\"color\":\"#E60096\",\"secondColor\":\"#FB5952\"},{\"uid\":\"f8517e5319a515e013551eea15aa114fa5cfbc3a\",\"name\":\"Option Musique\",\"resourceUid\":\"option_musique\",\"songsViewStyle\":\"expanded\",\"color\":\"#00CC99\",\"secondColor\":\"#CBC57A\"},{\"uid\":\"123456789101112131415161718192021222324x\",\"name\":\"Podcasts Originaux\",\"resourceUid\":\"podcasts_originaux\",\"color\":\"#A550F9\",\"showType\":\"podcast\",\"homeSections\":\"radioLatestEpisodes,radioShowsAccess,radioFavoriteShows,radioLatestEpisodesFromFavorites,radioResumePlayback,radioMostPopular,radioWatchLater,radioAllShows\"}]", "tvChannels": "[{\"uid\":\"la1\",\"name\":\"LA 1\",\"resourceUid\":\"la1\",\"color\":\"#FF9120\",\"secondColor\":\"#E15100\"},{\"uid\":\"la2\",\"name\":\"LA 2\",\"resourceUid\":\"la2\",\"color\":\"#FFCF2F\",\"secondColor\":\"#F38A0D\"},{\"uid\":\"143932a79bb5a123a646b68b1d1188d7ae493e5b\",\"name\":\"RTS 1\",\"resourceUid\":\"rts_un\",\"color\":\"#00D6F3\",\"secondColor\":\"#00B6F0\",\"titleColor\":\"#161616\"},{\"uid\":\"d7dfff28deee44e1d3c49a3d37d36d492b29671b\",\"name\":\"RTS 2\",\"resourceUid\":\"rts_deux\",\"color\":\"#BB66FF\",\"secondColor\":\"#782EB5\"},{\"uid\":\"5d332a26e06d08eec8ad385d566187df72955623\",\"name\":\"RTS Info\",\"resourceUid\":\"rts_info\",\"color\":\"#3787FF\",\"secondColor\":\"#153567\"},{\"uid\":\"23FFBE1B-65CE-4188-ADD2-C724186C2C9F\",\"name\":\"SRF 1\",\"resourceUid\":\"tv_srf1\",\"color\":\"#C91024\",\"secondColor\":\"#8D0614\"},{\"uid\":\"E4D5AD08-C1E8-46A3-BB58-4875051D60D2\",\"name\":\"SRF zwei\",\"resourceUid\":\"tv_srf2\",\"color\":\"#FFB600\",\"secondColor\":\"#ED7004\",\"titleColor\":\"#161616\",\"hasDarkStatusBar\":true},{\"uid\":\"34c2819e-e715-43d7-9026-40a443152a97\",\"name\":\"SRF info\",\"resourceUid\":\"tv_srf_info\",\"color\":\"#AF001E\",\"secondColor\":\"#830512\"}]", "satelliteRadioChannels": "[{\"uid\":\"rsp\",\"name\":\"Radio Swiss Pop\",\"resourceUid\":\"rsp\",\"songsViewStyle\":\"expanded\",\"color\":\"#F01F73\",\"secondColor\":\"#D31A3C\",\"homepageHidden\":true, \"shareURL\":\"https://www.radioswisspop.ch/fr\"},{\"uid\":\"rsc-fr\",\"name\":\"Radio Swiss Classic\",\"resourceUid\":\"rsc\",\"songsViewStyle\":\"expanded\",\"color\":\"#09A1DE\",\"secondColor\":\"#036E99\",\"homepageHidden\":true, \"shareURL\":\"https://www.radioswissclassic.ch/fr\"},{\"uid\":\"rsj\",\"name\":\"Radio Swiss Jazz\",\"resourceUid\":\"rsj\",\"songsViewStyle\":\"expanded\",\"color\":\"#F7B222\",\"secondColor\":\"#CC7A00\",\"homepageHidden\":true, \"shareURL\":\"https://www.radioswissjazz.ch/fr\"}]", "topicColors": "{\"urn:rsi:topic:tv:1\":{\"firstColor\":\"#B5344E\",\"secondColor\":\"#480010\"},\"urn:rsi:topic:tv:4\":{\"firstColor\":\"#D7B447\",\"secondColor\":\"#B62019\",\"reduceBrightness\":true},\"urn:rsi:topic:tv:7\":{\"firstColor\":\"#546591\",\"secondColor\":\"#2C3A50\"},\"urn:rsi:topic:tv:8\":{\"firstColor\":\"#CD4023\",\"secondColor\":\"#90062E\"},\"urn:rsi:topic:tv:11\":{\"firstColor\":\"#DEA706\",\"secondColor\":\"#E92466\",\"reduceBrightness\":true},\"urn:rsi:topic:tv:40\":{\"firstColor\":\"#44BDA8\",\"secondColor\":\"#00324E\"},\"urn:rsi:topic:tv:80\":{\"firstColor\":\"#1F509D\",\"secondColor\":\"#121A37\"},\"urn:rsi:topic:tv:90\":{\"firstColor\":\"#8B96A5\",\"secondColor\":\"#4F5562\",\"reduceBrightness\":true},\"urn:rsi:topic:tv:100\":{\"firstColor\":\"#D75959\",\"secondColor\":\"#29336C\"},\"urn:rsi:topic:tv:600\":{\"firstColor\":\"#23B6CD\",\"secondColor\":\"#7C3184\",\"reduceBrightness\":true},\"urn:rsi:topic:tv:6000\":{\"firstColor\":\"#017EB3\",\"secondColor\":\"#011844\"},\"urn:rtr:topic:tv:2d48ba80-566c-4359-9e8d-8d9b2d570e0a\":{\"firstColor\":\"#00A1A1\",\"secondColor\":\"#04575B\"},\"urn:rtr:topic:tv:7d7f21be-6727-4939-9126-5bca25eb3a49\":{\"firstColor\":\"#80D2E3\",\"secondColor\":\"#003D58\"},\"urn:rtr:topic:tv:20e7478f-1ea1-49c3-81c2-5f157d6ff092\":{\"firstColor\":\"#340101\",\"secondColor\":\"#8F0E0F\"},\"urn:rtr:topic:tv:50bb90d6-41af-4bbd-b92c-6ef5db16a9b3\":{\"firstColor\":\"#8A0533\",\"secondColor\":\"#812626\"},\"urn:rtr:topic:tv:c50140e7-5740-4c44-abd0-0f7d9ea68da7\":{\"firstColor\":\"#A6A6A7\",\"secondColor\":\"#2C2B2D\"},\"urn:rtr:topic:tv:dfb7ae6d-cb73-431b-a817-b1663ec2f58a\":{\"firstColor\":\"#00F8CC\",\"secondColor\":\"#018864\"},\"urn:rts:topic:tv:623\":{\"firstColor\":\"#5C845B\",\"secondColor\":\"#16280F\"},\"urn:rts:topic:tv:665\":{\"firstColor\":\"#3787FF\",\"secondColor\":\"#0A1C33\"},\"urn:rts:topic:tv:1095\":{\"firstColor\":\"#F5F500\",\"secondColor\":\"#BEB405\",\"reduceBrightness\":true},\"urn:rts:topic:tv:1353\":{\"firstColor\":\"#084165\",\"secondColor\":\"#140953\"},\"urn:rts:topic:tv:2743\":{\"firstColor\":\"#BCF6FF\",\"secondColor\":\"#00D0EF\",\"reduceBrightness\":true},\"urn:rts:topic:tv:10193\":{\"firstColor\":\"#EB2350\",\"secondColor\":\"#A61637\"},\"urn:rts:topic:tv:54537\":{\"firstColor\":\"#FFE03E\",\"secondColor\":\"#F98E73\",\"reduceBrightness\":true},\"urn:rts:topic:tv:59220\":{\"firstColor\":\"#492b63\",\"secondColor\":\"#271633\"},\"urn:rts:topic:tv:67132\":{\"firstColor\":\"#415FAF\",\"secondColor\":\"#23376B\"},\"urn:rts:topic:tv:73840\":{\"firstColor\":\"#FF77CD\",\"secondColor\":\"#663052\"},\"urn:srf:topic:tv:1d7d9cfb-6682-4d5b-9e36-322e8fa93c03\":{\"firstColor\":\"#00A4B3\",\"secondColor\":\"#006973\"},\"urn:srf:topic:tv:4acf86dd-7ff7-45d3-baf8-33375340d976\":{\"firstColor\":\"#3f4b70\",\"secondColor\":\"#131a2d\"},\"urn:srf:topic:tv:9a79b1de-cde8-4528-b304-d1ae1363f52f\":{\"firstColor\":\"#836fcd\",\"secondColor\":\"#36343f\"},\"urn:srf:topic:tv:63f937e4-859e-42c4-a430-bdb74dd09645\":{\"firstColor\":\"#4480a2\",\"secondColor\":\"#20182c\"},\"urn:srf:topic:tv:67f812fd-19a3-4c22-9e6b-ec36e65a4703\":{\"firstColor\":\"#bb3966\",\"secondColor\":\"#190406\"},\"urn:srf:topic:tv:593eb926-d892-41ba-8b1f-eccbcfd7f15f\":{\"firstColor\":\"#2bbf9b\",\"secondColor\":\"#02291e\"},\"urn:srf:topic:tv:649e36d7-ff57-41c8-9c1b-7892daf15e78\":{\"firstColor\":\"#FF0037\",\"secondColor\":\"#AF001E\"},\"urn:srf:topic:tv:882cb264-cf81-4a9c-b660-d42519b7ce28\":{\"firstColor\":\"#c91d7d\",\"secondColor\":\"#31041f\"},\"urn:srf:topic:tv:43741c59-317e-458b-ac38-c2b1c065c865\":{\"firstColor\":\"#0075ad\",\"secondColor\":\"#000022\"},\"urn:srf:topic:tv:516421f0-ec89-43ba-823b-1b5ceec262f3\":{\"firstColor\":\"#5FB281\",\"secondColor\":\"#154e60\"},\"urn:srf:topic:tv:641223fa-f112-4d98-8aec-cb22262a1182\":{\"firstColor\":\"#c55cee\",\"secondColor\":\"#0c1c68\"},\"urn:srf:topic:tv:a2d97206-0b85-4226-8afe-06e86ebd05b2\":{\"firstColor\":\"#9fc885\",\"secondColor\":\"#20281a\"},\"urn:srf:topic:tv:a709c610-b275-4c0c-a496-cba304c36712\":{\"firstColor\":\"#b3131d\",\"secondColor\":\"#3e0b14\"},\"urn:srf:topic:tv:b58dcf14-96ac-4046-8676-fd8a942c0e88\":{\"firstColor\":\"#7081b0\",\"secondColor\":\"#202020\"},\"urn:srf:topic:tv:bb7b21e0-1056-4e28-bac3-c610393b5b0f\":{\"firstColor\":\"#3c788e\",\"secondColor\":\"#1b3e48\"},\"urn:srf:topic:tv:e52080fc-f36b-481e-955f-071b6c8d6dc3\":{\"firstColor\":\"#ff6778\",\"secondColor\":\"#920a1a\",\"reduceBrightness\":true},\"urn:srf:topic:tv:fa793c13-bebc-41b9-9710-bf8a34192c15\":{\"firstColor\":\"#baead5\",\"secondColor\":\"#010b40\",\"reduceBrightness\":true}}", From 995d92222dba088d318695199d953a952c02591a Mon Sep 17 00:00:00 2001 From: Pierre-Yves Bertholon Date: Thu, 25 Jul 2024 21:12:41 +0200 Subject: [PATCH 14/14] PLAYRTS-5580 Update translations --- .../Apps/Play RSI/it.lproj/Localizable.strings | 14 +++++++------- .../Apps/Play RTR/rm.lproj/Localizable.strings | 6 +++--- .../Apps/Play SRF/de.lproj/Localizable.strings | 14 +++++++------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/Application/Resources/Apps/Play RSI/it.lproj/Localizable.strings b/Application/Resources/Apps/Play RSI/it.lproj/Localizable.strings index 251255b00..2ed4a7869 100755 --- a/Application/Resources/Apps/Play RSI/it.lproj/Localizable.strings +++ b/Application/Resources/Apps/Play RSI/it.lproj/Localizable.strings @@ -347,7 +347,7 @@ "Latest episodes from your favorites" = "Episodi più recenti fra i programmi preferiti"; /* Title label used to present the radio latest podcast episodes */ -"Latest podcasts" = "Latest podcasts"; +"Latest podcasts" = "I più recenti"; /* Title label used to present the radio latest videos */ "Latest videos" = "I video più recenti"; @@ -393,10 +393,10 @@ "Mandatory update" = "È necessario aggiornare"; /* Many curated audio homepages option setting state */ -"Many curated pages (PAC landing pages)" = "Many curated pages (PAC landing pages)"; +"Many curated pages (PAC landing pages)" = "Più pagine curate (landing page dal PAC)"; /* Many predefined audio homepage option setting state */ -"Many predefined pages" = "Many predefined pages"; +"Many predefined pages" = "Più pagine predefinite"; /* Message on top screen when trying to open a media in the download list and the media is not downloaded. */ "Media not available yet" = "Media non disponibile"; @@ -491,7 +491,7 @@ "OK" = "OK"; /* One curated audio homepage option setting state */ -"One curated page (PAC Audio)" = "One curated page (PAC Audio)"; +"One curated page (PAC Audio)" = "Pagina curata (audio in PAC)"; /* Label of the button opening system settings */ "Open system settings" = "Aprire le impostazioni del sistema"; @@ -540,10 +540,10 @@ "Please describe the issue below:" = "Descrivete il problema qui di seguito:"; /* Title label used to present radio associated podcasts */ -"Podcasts" = "Podcasts"; +"Podcasts" = "Podcast"; /* Title of the section when we show podcasts by date */ -"Podcasts by date" = "Podcasts by date"; +"Podcasts by date" = "Puntate per data"; /* Most poular shows on Play SRG, displayed in the tvOS top shelf */ "Popular on Play SRG" = "Popolari sul Play RSI"; @@ -689,7 +689,7 @@ /* Label of the button for Podcast square image format selection Podcast square image format selection view title */ -"Square images" = "Square images"; +"Square images" = "Immagine quadrata"; /* Server setting name */ "Stage" = "Stage"; diff --git a/Application/Resources/Apps/Play RTR/rm.lproj/Localizable.strings b/Application/Resources/Apps/Play RTR/rm.lproj/Localizable.strings index 7edde1e94..cc69ad63b 100755 --- a/Application/Resources/Apps/Play RTR/rm.lproj/Localizable.strings +++ b/Application/Resources/Apps/Play RTR/rm.lproj/Localizable.strings @@ -347,7 +347,7 @@ "Latest episodes from your favorites" = "Novissimas episodas da voss favurits"; /* Title label used to present the radio latest podcast episodes */ -"Latest podcasts" = "Latest podcasts"; +"Latest podcasts" = "Ils pli novs podcasts"; /* Title label used to present the radio latest videos */ "Latest videos" = "Ils pli novs videos"; @@ -540,10 +540,10 @@ "Please describe the issue below:" = "Descrivai per plaschair il sbagl sutvart:"; /* Title label used to present radio associated podcasts */ -"Podcasts" = "Podcasts"; +"Podcasts" = "Podcast"; /* Title of the section when we show podcasts by date */ -"Podcasts by date" = "Podcasts by date"; +"Podcasts by date" = "Podcasts tenor data"; /* Most poular shows on Play SRG, displayed in the tvOS top shelf */ "Popular on Play SRG" = "Popular sin Play RTR"; diff --git a/Application/Resources/Apps/Play SRF/de.lproj/Localizable.strings b/Application/Resources/Apps/Play SRF/de.lproj/Localizable.strings index 7314696d1..f45684b20 100755 --- a/Application/Resources/Apps/Play SRF/de.lproj/Localizable.strings +++ b/Application/Resources/Apps/Play SRF/de.lproj/Localizable.strings @@ -97,7 +97,7 @@ /* Audio home page selection view title Label of the button for audio homepage option selection */ -"Audio home page" = "Audio home page"; +"Audio home page" = "Audio Startseite"; /* Audios tab title Header for audio search results @@ -347,7 +347,7 @@ "Latest episodes from your favorites" = "Die neusten Episoden aus deinen Favoriten"; /* Title label used to present the radio latest podcast episodes */ -"Latest podcasts" = "Latest podcasts"; +"Latest podcasts" = "Neueste Podcasts"; /* Title label used to present the radio latest videos */ "Latest videos" = "Neuste Videos"; @@ -393,10 +393,10 @@ "Mandatory update" = "Update erforderlich"; /* Many curated audio homepages option setting state */ -"Many curated pages (PAC landing pages)" = "Many curated pages (PAC landing pages)"; +"Many curated pages (PAC landing pages)" = "Viele kuratierte Seiten (PAC Landing Pages)"; /* Many predefined audio homepage option setting state */ -"Many predefined pages" = "Many predefined pages"; +"Many predefined pages" = "Viele vordefinierte Seiten"; /* Message on top screen when trying to open a media in the download list and the media is not downloaded. */ "Media not available yet" = "Inhalt noch nicht verfügbar"; @@ -491,7 +491,7 @@ "OK" = "OK"; /* One curated audio homepage option setting state */ -"One curated page (PAC Audio)" = "One curated page (PAC Audio)"; +"One curated page (PAC Audio)" = "Eine kuratierte Seite (PAC Audio)"; /* Label of the button opening system settings */ "Open system settings" = "Einstellungen anzeigen"; @@ -543,7 +543,7 @@ "Podcasts" = "Podcasts"; /* Title of the section when we show podcasts by date */ -"Podcasts by date" = "Podcasts by date"; +"Podcasts by date" = "Podcasts nach Datum"; /* Most poular shows on Play SRG, displayed in the tvOS top shelf */ "Popular on Play SRG" = "Beliebt auf Play SRF"; @@ -689,7 +689,7 @@ /* Label of the button for Podcast square image format selection Podcast square image format selection view title */ -"Square images" = "Square images"; +"Square images" = "Quadratische Bilder"; /* Server setting name */ "Stage" = "Stage";