Fixed MPRIS OpenUri function not respecting ncspot's shuffle setting.
This commit is contained in:
committed by
Henrik Friedrichsen
parent
2551cd9528
commit
3808adced6
18
src/mpris.rs
18
src/mpris.rs
@@ -582,13 +582,14 @@ fn run_dbus_server(
|
|||||||
Some(UriType::Album) => {
|
Some(UriType::Album) => {
|
||||||
if let Some(a) = spotify.api.album(id) {
|
if let Some(a) = spotify.api.album(id) {
|
||||||
if let Some(t) = &Album::from(&a).tracks {
|
if let Some(t) = &Album::from(&a).tracks {
|
||||||
|
let should_shuffle = queue.get_shuffle();
|
||||||
queue.clear();
|
queue.clear();
|
||||||
let index = queue.append_next(
|
let index = queue.append_next(
|
||||||
&t.iter()
|
&t.iter()
|
||||||
.map(|track| Playable::Track(track.clone()))
|
.map(|track| Playable::Track(track.clone()))
|
||||||
.collect(),
|
.collect(),
|
||||||
);
|
);
|
||||||
queue.play(index, false, false)
|
queue.play(index, should_shuffle, should_shuffle)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -604,10 +605,11 @@ fn run_dbus_server(
|
|||||||
let mut playlist = Playlist::from(&p);
|
let mut playlist = Playlist::from(&p);
|
||||||
let spotify = spotify.clone();
|
let spotify = spotify.clone();
|
||||||
playlist.load_tracks(spotify);
|
playlist.load_tracks(spotify);
|
||||||
if let Some(t) = &playlist.tracks {
|
if let Some(tracks) = &playlist.tracks {
|
||||||
|
let should_shuffle = queue.get_shuffle();
|
||||||
queue.clear();
|
queue.clear();
|
||||||
let index = queue.append_next(&t.iter().cloned().collect());
|
let index = queue.append_next(&tracks.iter().cloned().collect());
|
||||||
queue.play(index, false, false)
|
queue.play(index, should_shuffle, should_shuffle)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -617,6 +619,7 @@ fn run_dbus_server(
|
|||||||
let spotify = spotify.clone();
|
let spotify = spotify.clone();
|
||||||
show.load_all_episodes(spotify);
|
show.load_all_episodes(spotify);
|
||||||
if let Some(e) = &show.episodes {
|
if let Some(e) = &show.episodes {
|
||||||
|
let should_shuffle = queue.get_shuffle();
|
||||||
queue.clear();
|
queue.clear();
|
||||||
let mut ep = e.clone();
|
let mut ep = e.clone();
|
||||||
ep.reverse();
|
ep.reverse();
|
||||||
@@ -625,7 +628,7 @@ fn run_dbus_server(
|
|||||||
.map(|episode| Playable::Episode(episode.clone()))
|
.map(|episode| Playable::Episode(episode.clone()))
|
||||||
.collect(),
|
.collect(),
|
||||||
);
|
);
|
||||||
queue.play(index, false, false)
|
queue.play(index, should_shuffle, should_shuffle)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -638,9 +641,10 @@ fn run_dbus_server(
|
|||||||
}
|
}
|
||||||
Some(UriType::Artist) => {
|
Some(UriType::Artist) => {
|
||||||
if let Some(a) = spotify.api.artist_top_tracks(id) {
|
if let Some(a) = spotify.api.artist_top_tracks(id) {
|
||||||
|
let should_shuffle = queue.get_shuffle();
|
||||||
queue.clear();
|
queue.clear();
|
||||||
queue.append_next(&a.iter().map(|track| Playable::Track(track.clone())).collect());
|
let index = queue.append_next(&a.iter().map(|track| Playable::Track(track.clone())).collect());
|
||||||
queue.play(0, false, false)
|
queue.play(index, should_shuffle, should_shuffle)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
None => {}
|
None => {}
|
||||||
|
|||||||
Reference in New Issue
Block a user