Skip to content

Commit 524bde6

Browse files
committed
Add setting to show progress in bookmarks with toggle in settings
1 parent 92d6e3f commit 524bde6

5 files changed

Lines changed: 25 additions & 0 deletions

File tree

Zapp/Resources/de.lproj/Localizable.strings

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,9 @@
214214
"settings_bookmarks_cleared_title" = "Lesezeichen gelöscht";
215215
"settings_bookmarks_cleared_message" = "Alle Lesezeichen wurden entfernt.";
216216

217+
"settings_bookmarks_show_progress_title" = "Fortschritt in Lesezeichen anzeigen";
218+
"settings_bookmarks_show_progress_description" = "Wenn aktiviert, zeigen Lesezeichen einen Fortschrittsbalken, der anzeigt, wo du aufgehört hast.";
219+
217220
// Common
218221
"app_name" = "Zapp";
219222
"close" = "Schließen";

Zapp/Resources/en.lproj/Localizable.strings

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,9 @@
214214
"settings_bookmarks_cleared_title" = "Bookmarks Cleared";
215215
"settings_bookmarks_cleared_message" = "All bookmarks were removed.";
216216

217+
"settings_bookmarks_show_progress_title" = "Show progress in bookmarks";
218+
"settings_bookmarks_show_progress_description" = "When enabled, bookmarks show a progress bar indicating where you left off.";
219+
217220
// Common
218221
"app_name" = "Zapp";
219222
"close" = "Close";

Zapp/Settings/AppSettings.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ final class AppSettings: ObservableObject {
1717
private let colorSchemePreferenceKey = "colorSchemePreference"
1818
private let streamHostKey = "streamHost"
1919
private let hasCompletedOnboardingKey = "hasCompletedOnboarding"
20+
private let showProgressInBookmarksKey = "showProgressInBookmarks"
2021

2122
@Published var streamQualityWifi: MediathekShow.Quality {
2223
didSet { defaults.set(streamQualityWifi.rawValue, forKey: streamQualityWifiKey) }
@@ -48,6 +49,10 @@ final class AppSettings: ObservableObject {
4849
@Published var hasCompletedOnboarding: Bool {
4950
didSet { defaults.set(hasCompletedOnboarding, forKey: hasCompletedOnboardingKey) }
5051
}
52+
53+
@Published var showProgressInBookmarks: Bool {
54+
didSet { defaults.set(showProgressInBookmarks, forKey: showProgressInBookmarksKey) }
55+
}
5156

5257
private init() {
5358
self.initialSystemInterfaceStyle = UIScreen.main.traitCollection.userInterfaceStyle
@@ -58,6 +63,11 @@ final class AppSettings: ObservableObject {
5863
self.colorSchemePreference = ColorSchemePreference(rawValue: defaults.string(forKey: colorSchemePreferenceKey) ?? ColorSchemePreference.system.rawValue) ?? .system
5964
self.streamHost = defaults.string(forKey: streamHostKey) ?? ""
6065
self.hasCompletedOnboarding = defaults.bool(forKey: hasCompletedOnboardingKey)
66+
if defaults.object(forKey: showProgressInBookmarksKey) == nil {
67+
self.showProgressInBookmarks = true
68+
} else {
69+
self.showProgressInBookmarks = defaults.bool(forKey: showProgressInBookmarksKey)
70+
}
6171
applyColorSchemePreference()
6272
}
6373

Zapp/Views/PersonalView.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import Foundation
44
struct PersonalView: View {
55
@EnvironmentObject var repo: MediathekRepository
66
@EnvironmentObject var networkMonitor: NetworkMonitor
7+
@ObservedObject private var settings = AppSettings.shared
78
@Environment(\.horizontalSizeClass) private var horizontalSizeClass
89
@State private var selectedTab = 0
910

@@ -125,6 +126,7 @@ struct ContinueWatchingListView: View {
125126

126127
struct BookmarksListView: View {
127128
@EnvironmentObject var repo: MediathekRepository
129+
@ObservedObject private var settings = AppSettings.shared
128130
private let gridColumns = [GridItem(.adaptive(minimum: 320, maximum: 420), spacing: 16)]
129131

130132
var body: some View {
@@ -140,6 +142,7 @@ struct BookmarksListView: View {
140142
ForEach(repo.bookmarks) { persisted in
141143
PersistedShowCard(
142144
persisted: persisted,
145+
showProgress: settings.showProgressInBookmarks,
143146
allowBookmarkRemoval: true
144147
)
145148
.frame(maxWidth: .infinity)

Zapp/Views/SettingsView.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,12 @@ struct SettingsView: View {
196196
}
197197
.accessibilityIdentifier("settings-mediathek-link")
198198
}
199+
Toggle(isOn: $settings.showProgressInBookmarks) {
200+
SettingsRowLabel(
201+
title: String(localized: "settings_bookmarks_show_progress_title"),
202+
description: String(localized: "settings_bookmarks_show_progress_description")
203+
)
204+
}
199205
}
200206
.padding(.vertical, 2)
201207
}

0 commit comments

Comments
 (0)