test episode order

This commit is contained in:
Francesco 2025-04-25 20:50:32 +02:00
parent 82727700c9
commit 1637383a19
2 changed files with 26 additions and 2 deletions

View file

@ -44,6 +44,7 @@ struct MediaInfoView: View {
@AppStorage("externalPlayer") private var externalPlayer: String = "Default"
@AppStorage("episodeChunkSize") private var episodeChunkSize: Int = 100
@AppStorage("episodeSortOrder") private var episodeSortOrder: String = "Ascending"
@StateObject private var jsController = JSController()
@EnvironmentObject var moduleManager: ModuleManager
@ -595,6 +596,13 @@ struct MediaInfoView: View {
return groups
}
private func sortEpisodes(_ episodes: [EpisodeLink]) -> [EpisodeLink] {
if episodeSortOrder == "Descending" {
return episodes.sorted(by: { $0.number > $1.number })
} else {
return episodes.sorted(by: { $0.number < $1.number })
}
}
func fetchDetails() {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
@ -609,7 +617,7 @@ struct MediaInfoView: View {
self.aliases = item.aliases
self.airdate = item.airdate
}
self.episodeLinks = episodes
self.episodeLinks = self.sortEpisodes(episodes)
self.isLoading = false
self.isRefetching = false
}
@ -620,7 +628,7 @@ struct MediaInfoView: View {
self.aliases = item.aliases
self.airdate = item.airdate
}
self.episodeLinks = episodes
self.episodeLinks = self.sortEpisodes(episodes)
self.isLoading = false
self.isRefetching = false
}

View file

@ -16,8 +16,10 @@ struct SettingsViewGeneral: View {
@AppStorage("metadataProviders") private var metadataProviders: String = "AniList"
@AppStorage("mediaColumnsPortrait") private var mediaColumnsPortrait: Int = 2
@AppStorage("mediaColumnsLandscape") private var mediaColumnsLandscape: Int = 4
@AppStorage("episodeSortOrder") private var episodeSortOrder: String = "Ascending"
private let metadataProvidersList = ["AniList"]
private let sortOrderOptions = ["Ascending", "Descending"]
@EnvironmentObject var settings: Settings
var body: some View {
@ -50,6 +52,20 @@ struct SettingsViewGeneral: View {
}
Toggle("Fetch Episode metadata", isOn: $fetchEpisodeMetadata)
.tint(.accentColor)
HStack {
Text("Episode Sort Order")
Spacer()
Menu(episodeSortOrder) {
Button(action: { episodeSortOrder = "Ascending" }) {
Text("Ascending (1-100)")
}
Button(action: { episodeSortOrder = "Descending" }) {
Text("Descending (100-1)")
}
}
}
HStack {
Text("Metadata Provider")
Spacer()