From 439ceb6236356d414ddd00837d37cf840249be8f Mon Sep 17 00:00:00 2001 From: Dhocking Date: Thu, 6 Jun 2024 10:32:34 -0700 Subject: [PATCH 1/2] Add ability to hide "Recently Added" section at home screen Add a customization default for recently added Add a show recently added toggle in settings for both iOS and tvOS Conditionally show the recently added section based on toggle --- Shared/Services/SwiftfinDefaults.swift | 1 + Swiftfin tvOS/Views/HomeView/HomeView.swift | 12 +++++++++--- .../Views/SettingsView/CustomizeViewsSettings.swift | 5 +++++ Swiftfin/Views/HomeView/HomeView.swift | 6 +++++- .../Views/SettingsView/CustomizeViewsSettings.swift | 6 ++++++ 5 files changed, 26 insertions(+), 4 deletions(-) diff --git a/Shared/Services/SwiftfinDefaults.swift b/Shared/Services/SwiftfinDefaults.swift index e64317782..b1c1a2140 100644 --- a/Shared/Services/SwiftfinDefaults.swift +++ b/Shared/Services/SwiftfinDefaults.swift @@ -112,6 +112,7 @@ extension Defaults.Keys { static let showPosterLabels: Key = UserKey("showPosterLabels", default: true) static let nextUpPosterType: Key = UserKey("nextUpPosterType", default: .portrait) static let recentlyAddedPosterType: Key = UserKey("recentlyAddedPosterType", default: .portrait) + static let showRecentlyAdded: Key = UserKey("showRecentlyAdded", default: true) static let latestInLibraryPosterType: Key = UserKey("latestInLibraryPosterType", default: .portrait) static let shouldShowMissingSeasons: Key = UserKey("shouldShowMissingSeasons", default: true) static let shouldShowMissingEpisodes: Key = UserKey("shouldShowMissingEpisodes", default: true) diff --git a/Swiftfin tvOS/Views/HomeView/HomeView.swift b/Swiftfin tvOS/Views/HomeView/HomeView.swift index 232932f4a..daa04589a 100644 --- a/Swiftfin tvOS/Views/HomeView/HomeView.swift +++ b/Swiftfin tvOS/Views/HomeView/HomeView.swift @@ -19,6 +19,9 @@ struct HomeView: View { @StateObject private var viewModel = HomeViewModel() + @Default(.Customization.showRecentlyAdded) + private var showRecentlyAdded + @ViewBuilder private var contentView: some View { ScrollView { @@ -29,10 +32,13 @@ struct HomeView: View { NextUpView(viewModel: viewModel.nextUpViewModel) - RecentlyAddedView(viewModel: viewModel.recentlyAddedViewModel) + if showRecentlyAdded { + RecentlyAddedView(viewModel: viewModel.recentlyAddedViewModel) + } } else { - CinematicRecentlyAddedView(viewModel: viewModel.recentlyAddedViewModel) - + if showRecentlyAdded { + CinematicRecentlyAddedView(viewModel: viewModel.recentlyAddedViewModel) + } NextUpView(viewModel: viewModel.nextUpViewModel) } diff --git a/Swiftfin tvOS/Views/SettingsView/CustomizeViewsSettings.swift b/Swiftfin tvOS/Views/SettingsView/CustomizeViewsSettings.swift index ca1818474..2570db2e7 100644 --- a/Swiftfin tvOS/Views/SettingsView/CustomizeViewsSettings.swift +++ b/Swiftfin tvOS/Views/SettingsView/CustomizeViewsSettings.swift @@ -37,6 +37,8 @@ struct CustomizeViewsSettings: View { private var libraryRandomImage @Default(.Customization.Library.showFavorites) private var showFavorites + @Default(.Customization.showRecentlyAdded) + private var showRecentlyAdded @EnvironmentObject private var router: SettingsCoordinator.Router @@ -92,6 +94,9 @@ struct CustomizeViewsSettings: View { Toggle("Random Image", isOn: $libraryRandomImage) Toggle("Show Favorites", isOn: $showFavorites) + + Toggle("Show Recently Added", isOn: $showRecentlyAdded) + } header: { L10n.library.text } diff --git a/Swiftfin/Views/HomeView/HomeView.swift b/Swiftfin/Views/HomeView/HomeView.swift index b1868310f..aa24518eb 100644 --- a/Swiftfin/Views/HomeView/HomeView.swift +++ b/Swiftfin/Views/HomeView/HomeView.swift @@ -18,6 +18,8 @@ struct HomeView: View { @Default(.Customization.nextUpPosterType) private var nextUpPosterType + @Default(.Customization.showRecentlyAdded) + private var showRecentlyAdded @Default(.Customization.recentlyAddedPosterType) private var recentlyAddedPosterType @@ -38,7 +40,9 @@ struct HomeView: View { NextUpView(homeViewModel: viewModel) - RecentlyAddedView(viewModel: viewModel.recentlyAddedViewModel) + if showRecentlyAdded { + RecentlyAddedView(viewModel: viewModel.recentlyAddedViewModel) + } ForEach(viewModel.libraries) { viewModel in LatestInLibraryView(viewModel: viewModel) diff --git a/Swiftfin/Views/SettingsView/CustomizeViewsSettings.swift b/Swiftfin/Views/SettingsView/CustomizeViewsSettings.swift index 903f3d881..885e9836d 100644 --- a/Swiftfin/Views/SettingsView/CustomizeViewsSettings.swift +++ b/Swiftfin/Views/SettingsView/CustomizeViewsSettings.swift @@ -38,6 +38,8 @@ struct CustomizeViewsSettings: View { private var nextUpPosterType @Default(.Customization.recentlyAddedPosterType) private var recentlyAddedPosterType + @Default(.Customization.showRecentlyAdded) + private var showRecentlyAdded @Default(.Customization.latestInLibraryPosterType) private var latestInLibraryPosterType @Default(.Customization.similarPosterType) @@ -160,6 +162,10 @@ struct CustomizeViewsSettings: View { } } + Section("Home") { + Toggle("Show recently added", isOn: $showRecentlyAdded) + } + Section { Toggle("Remember layout", isOn: $rememberLibraryLayout) } footer: { From ec6a9d9217edcb8588a92a7f0ce3fce87864ab53 Mon Sep 17 00:00:00 2001 From: Dhocking Date: Tue, 11 Jun 2024 21:42:16 -0700 Subject: [PATCH 2/2] Remove trailing spaces --- Swiftfin tvOS/Views/SettingsView/CustomizeViewsSettings.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Swiftfin tvOS/Views/SettingsView/CustomizeViewsSettings.swift b/Swiftfin tvOS/Views/SettingsView/CustomizeViewsSettings.swift index 2570db2e7..2887d5082 100644 --- a/Swiftfin tvOS/Views/SettingsView/CustomizeViewsSettings.swift +++ b/Swiftfin tvOS/Views/SettingsView/CustomizeViewsSettings.swift @@ -94,9 +94,9 @@ struct CustomizeViewsSettings: View { Toggle("Random Image", isOn: $libraryRandomImage) Toggle("Show Favorites", isOn: $showFavorites) - + Toggle("Show Recently Added", isOn: $showRecentlyAdded) - + } header: { L10n.library.text }