adhere to repeat/shuffle settings on previous track

This commit is contained in:
Moshe Sherman
2020-08-26 13:49:48 +03:00
committed by Henrik Friedrichsen
parent 181f5e4918
commit 9872a10bfa

View File

@@ -269,15 +269,25 @@ impl Queue {
}
pub fn previous(&self) {
let q = self.queue.read().unwrap();
let current = *self.current_track.read().unwrap();
let repeat = *self.repeat.read().unwrap();
if let Some(index) = self.previous_index() {
self.play(index, false, false);
} else {
let current = *self.current_track.read().unwrap();
if let Some(index) = current {
self.play(index, false, false);
} else if repeat == RepeatSetting::RepeatPlaylist && q.len() > 0 {
if self.get_shuffle() {
let random_order = self.random_order.read().unwrap();
self.play(
random_order.as_ref().map(|o| o[q.len() - 1]).unwrap_or(0),
false,
false,
);
} else {
self.spotify.stop();
self.play(q.len() - 1, false, false);
}
} else if let Some(index) = current {
self.play(index, false, false);
}
}