mirror of
https://github.com/narrrl/proton-stream.git
synced 2026-11-03 16:41:26 +01:00
fix(android,ios): the player names the episode, not its file
The header under the episode's numbering showed `Episode::detail`, which falls back to the file name — `[Judas] Chainsaw Man - S01E01.mkv` on a phone, where the desktop shows `Dog & Chainsaw`. It now shows the provider's name for the episode, else the one the file name gave it, and nothing rather than the file name: the release group's tag is no caption, and it is what a screenshot of the player would carry away.
This commit is contained in:
1 parent
79f0d74e1a
commit
b5ba59b41d
6 files changed
+60
-4
No files matched your search
@@ -210,7 +210,9 @@ struct PlayerView: View {
|
||||
// thing a viewer who has just woken the controls is checking.
|
||||
VStack(alignment: .leading, spacing: 0) {
|
||||
Text(host.episode?.label ?? "").textStyle(.titleMedium).foregroundStyle(.white).lineLimit(1)
|
||||
Text([host.title?.displayName, host.episode?.detail].compactMap { $0 }.filter { !$0.isEmpty }.joined(separator: " • "))
|
||||
// The episode's name, never its file name: a release group's
|
||||
// tag is no caption, and it is what a screenshot would carry away.
|
||||
Text([host.title?.displayName, host.episode?.shownName].compactMap { $0 }.filter { !$0.isEmpty }.joined(separator: " • "))
|
||||
.textStyle(.bodySmall).foregroundStyle(.white.opacity(0.7)).lineLimit(1)
|
||||
}
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
|
||||
@@ -342,12 +342,19 @@ func downloadStatusLine(_ download: RetainedDownload, waitingFor: String? = nil)
|
||||
}
|
||||
|
||||
extension EpisodeRecord {
|
||||
/// The episode's own name: the provider's, else the one the filename gave
|
||||
/// it. `nil` rather than the filename, which is a release group's tag and
|
||||
/// the episode's numbering again.
|
||||
var shownName: String? {
|
||||
providerName ?? (detail != name && !detail.isEmpty ? detail : nil)
|
||||
}
|
||||
|
||||
/// What an episode row is headed with: "1. Mother and Children".
|
||||
///
|
||||
/// The provider's name for the episode, else the name the filename gave it,
|
||||
/// else "Episode 1". The bare filename only when none of those exist.
|
||||
func heading(_ position: Int) -> String {
|
||||
let named = providerName ?? (detail != name ? detail : nil)
|
||||
let named = shownName
|
||||
switch (named, number) {
|
||||
case let (named?, number?): return "\(number). \(named)"
|
||||
case let (named?, nil): return named
|
||||
|
||||
Reference in new issue
Block a user