diff --git a/Sora/Views/MediaInfoView/MediaInfoView.swift b/Sora/Views/MediaInfoView/MediaInfoView.swift index 5255d52..d9518a5 100644 --- a/Sora/Views/MediaInfoView/MediaInfoView.swift +++ b/Sora/Views/MediaInfoView/MediaInfoView.swift @@ -47,6 +47,14 @@ struct MediaInfoView: View { @AppStorage("externalPlayer") private var externalPlayer: String = "Default" @AppStorage("episodeChunkSize") private var episodeChunkSize: Int = 100 + private var selectedRangeKey: String { "selectedRangeStart_\(href)" } + private var selectedSeasonKey: String { "selectedSeason_\(href)" } + @State private var selectedRange: Range = { + let size = UserDefaults.standard.integer(forKey: "episodeChunkSize") + let chunk = size == 0 ? 100 : size + return 0.. = 0..<100 @State private var showSettingsMenu = false @State private var customAniListID: Int? @State private var showStreamLoadingView: Bool = false @@ -127,7 +134,12 @@ struct MediaInfoView: View { } if !hasFetched { - DropManager.shared.showDrop(title: "Fetching Data", subtitle: "Please wait while fetching.", duration: 0.5, icon: UIImage(systemName: "arrow.triangle.2.circlepath")) + DropManager.shared.showDrop( + title: "Fetching Data", + subtitle: "Please wait while fetching.", + duration: 0.5, + icon: UIImage(systemName: "arrow.triangle.2.circlepath") + ) fetchDetails() if let savedID = UserDefaults.standard.object(forKey: "custom_anilist_id_\(href)") as? Int { @@ -137,14 +149,22 @@ struct MediaInfoView: View { } else { fetchMetadataIDIfNeeded() } - - selectedRange = 0.. String { let isLightMode = selectedAppearance == .light || (selectedAppearance == .system && colorScheme == .light) return isLightMode @@ -1078,6 +1112,7 @@ struct MediaInfoView: View { self.airdate = item.airdate } self.episodeLinks = episodes + self.restoreSelectionState() self.isLoading = false self.isRefetching = false } @@ -1089,6 +1124,7 @@ struct MediaInfoView: View { self.airdate = item.airdate } self.episodeLinks = episodes + self.restoreSelectionState() self.isLoading = false self.isRefetching = false }