Skip to content

Commit d031eb5

Browse files
committed
Don't touch the first track in the queue
1 parent aed2cbd commit d031eb5

1 file changed

Lines changed: 14 additions & 14 deletions

File tree

  • core/src/main/java/xyz/gianlu/librespot/player

core/src/main/java/xyz/gianlu/librespot/player/Player.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,16 @@ public Player(@NotNull PlayerConfiguration conf, @NotNull CacheManager.CacheConf
4040
spirc.addListener(this);
4141
}
4242

43+
private static int[] getShuffleExchanges(int size, long seed) {
44+
int[] exchanges = new int[size - 1];
45+
Random rand = new Random(seed);
46+
for (int i = size - 1; i > 0; i--) {
47+
int n = rand.nextInt(i + 1);
48+
exchanges[size - 1 - i] = n;
49+
}
50+
return exchanges;
51+
}
52+
4353
public void playPause() {
4454
handlePlayPause();
4555
}
@@ -167,16 +177,6 @@ private int getPosition() {
167177
return state.getPositionMs() + diff;
168178
}
169179

170-
private static int[] getShuffleExchanges(int size, long seed) {
171-
int[] exchanges = new int[size - 1];
172-
Random rand = new Random(seed);
173-
for (int i = size - 1; i > 0; i--) {
174-
int n = rand.nextInt(i + 1);
175-
exchanges[size - 1 - i] = n;
176-
}
177-
return exchanges;
178-
}
179-
180180
private void shuffleTracks() {
181181
shuffleSeed = session.random().nextLong();
182182

@@ -188,9 +188,9 @@ private void shuffleTracks() {
188188

189189
int size = tracks.size() - 1;
190190
int[] exchanges = getShuffleExchanges(size, shuffleSeed);
191-
for (int i = size - 1; i > 0; i--) {
191+
for (int i = size - 1; i > 1; i--) {
192192
int n = exchanges[size - 1 - i];
193-
Collections.swap(tracks, i, n);
193+
Collections.swap(tracks, i, n + 1);
194194
}
195195

196196
state.clearTrack();
@@ -206,9 +206,9 @@ private void unshuffleTracks() {
206206

207207
int size = tracks.size() - 1;
208208
int[] exchanges = getShuffleExchanges(size, shuffleSeed);
209-
for (int i = 1; i < size; i++) {
209+
for (int i = 2; i < size; i++) {
210210
int n = exchanges[size - i - 1];
211-
Collections.swap(tracks, i, n);
211+
Collections.swap(tracks, i, n + 1);
212212
}
213213

214214
state.clearTrack();

0 commit comments

Comments
 (0)