fix(library): podcasts list newest episode first
A Jellypod podcast listed its episodes alphabetically. The store pinned SortBy=SortName onto every drill-down, which overrode the order the channel plugin returns — and since Jellypod prefixes played episodes with "[Played]", the name sort also clumped every heard episode at the top. Which order a container's children take is domain knowledge, so it moves to Rust: the caller names the container (GetItemsOptions.parentKind) and default_listing_sort answers with the sort. A channel folder is PremiereDate descending, every other container keeps SortName ascending, and a caller naming no container still gets no SortBy, so the paths that rely on the server's own order keep it. An explicit sort always wins. ChannelFolderItem with is_folder now maps to MediaKind::ChannelFolder instead of collapsing into Folder — while both were Folder there was nothing to key the rule on. The offline leg of the cache/server race applies the same order, so the cached list no longer flashes in name order before the server's arrives. TRACES: UR-007 | DR-257 | UT-229, UT-230, UT-231
This commit is contained in:
@@ -155,6 +155,7 @@
|
||||
case "album":
|
||||
case "artist":
|
||||
case "folder":
|
||||
case "channelFolder":
|
||||
case "playlist":
|
||||
case "channel":
|
||||
// Navigate to detail view
|
||||
|
||||
@@ -171,7 +171,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
await library.loadItems(itemId, { limit: 100 });
|
||||
// Name the container so Rust can order its children: a podcast (a channel
|
||||
// folder) is listed newest episode first, everything else by name.
|
||||
// TRACES: UR-007 | DR-257
|
||||
await library.loadItems(itemId, { limit: 100, parentKind: item?.kind });
|
||||
|
||||
// Ensure cast/crew data is loaded for Movies, Series, and Episodes
|
||||
// Some APIs/caches may not include people data on first load
|
||||
@@ -277,6 +280,7 @@
|
||||
case "album":
|
||||
case "artist":
|
||||
case "folder":
|
||||
case "channelFolder":
|
||||
case "playlist":
|
||||
case "channel":
|
||||
case "movie":
|
||||
|
||||
Reference in New Issue
Block a user