fixed play glitch on folders
This commit is contained in:
20
src/main.rs
20
src/main.rs
@@ -896,7 +896,15 @@ fn handle_key(app: &mut App, code: KeyCode) {
|
||||
// - Offline directory browser: we have a direct local file path
|
||||
let (maybe_item_id, item_name, maybe_path) = match app.current_view() {
|
||||
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() => {
|
||||
let e = &entries[*selected];
|
||||
@@ -975,6 +983,12 @@ fn handle_key(app: &mut App, code: KeyCode) {
|
||||
|
||||
match view {
|
||||
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_name = items[selected].name.clone();
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
fn is_playable_item_type(ty: &str) -> bool {
|
||||
matches!(ty, "Episode" | "Movie" | "Audio")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user