fixed play glitch on folders

This commit is contained in:
2026-02-17 16:40:45 -06:00
parent d7a677e39f
commit b15cf87242

View File

@@ -896,7 +896,15 @@ fn handle_key(app: &mut App, code: KeyCode) {
// - Offline directory browser: we have a direct local file path // - Offline directory browser: we have a direct local file path
let (maybe_item_id, item_name, maybe_path) = match app.current_view() { let (maybe_item_id, item_name, maybe_path) = match app.current_view() {
View::Library { items, selected, .. } if !items.is_empty() => { View::Library { items, selected, .. } if !items.is_empty() => {
(Some(items[*selected].id.clone()), items[*selected].name.clone(), None) let it = &items[*selected];
let ty = it.item_type.as_deref().unwrap_or("");
if !is_playable_item_type(ty) {
app.status = "Not playable (use Enter to drill down)".into();
return;
}
(Some(it.id.clone()), it.name.clone(), None)
} }
View::OfflineLibrary { entries, selected, .. } if !entries.is_empty() => { View::OfflineLibrary { entries, selected, .. } if !entries.is_empty() => {
let e = &entries[*selected]; let e = &entries[*selected];
@@ -975,6 +983,12 @@ fn handle_key(app: &mut App, code: KeyCode) {
match view { match view {
View::Library { items, selected, .. } if !items.is_empty() => { View::Library { items, selected, .. } if !items.is_empty() => {
let ty = items[selected].item_type.as_deref().unwrap_or("");
if !is_playable_item_type(ty) {
app.status = "Not playable (use Enter to drill down)".into();
return;
}
let item_id = items[selected].id.clone(); let item_id = items[selected].id.clone();
let item_name = items[selected].name.clone(); let item_name = items[selected].name.clone();
let len = items.len(); let len = items.len();
@@ -3944,3 +3958,7 @@ fn jellyfin_report_stopped_best_effort(app: &mut App) {
let _ = client.report_playback_stopped(&item_id, Some(pos_ticks), failed); let _ = client.report_playback_stopped(&item_id, Some(pos_ticks), failed);
} }
} }
fn is_playable_item_type(ty: &str) -> bool {
matches!(ty, "Episode" | "Movie" | "Audio")
}