Skip to content

Commit ae68b83

Browse files
committed
Go to next track if user clicks on an unsupported track (#332)
1 parent efc2744 commit ae68b83

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

player/src/main/java/xyz/gianlu/librespot/player/StateWrapper.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1068,6 +1068,12 @@ synchronized void initializeStart() throws IOException, MercuryClient.MercuryExc
10681068
else state.getOptionsBuilder().setShufflingContext(false); // Must do this directly!
10691069

10701070
setCurrentTrackIndex(0);
1071+
if (getCurrentPlayable() instanceof UnsupportedId) {
1072+
boolean repeatTrack = isRepeatingTrack();
1073+
if (repeatTrack) state.getOptionsBuilder().setRepeatingTrack(false);
1074+
nextPlayable(false);
1075+
state.getOptionsBuilder().setRepeatingTrack(repeatTrack);
1076+
}
10711077
}
10721078

10731079
synchronized void initializeFrom(@NotNull Function<List<ContextTrack>, Integer> finder, @Nullable ContextTrack track, @Nullable QueueOuterClass.Queue contextQueue) throws IOException, MercuryClient.MercuryException, AbsSpotifyContext.UnsupportedContextException {
@@ -1112,6 +1118,13 @@ synchronized void initializeFrom(@NotNull Function<List<ContextTrack>, Integer>
11121118
} catch (IllegalArgumentException ex) {
11131119
LOGGER.warn("Failed updating current track metadata.", ex);
11141120
}
1121+
1122+
if (getCurrentPlayable() instanceof UnsupportedId) {
1123+
boolean repeatTrack = isRepeatingTrack();
1124+
if (repeatTrack) state.getOptionsBuilder().setRepeatingTrack(false);
1125+
nextPlayable(false);
1126+
state.getOptionsBuilder().setRepeatingTrack(repeatTrack);
1127+
}
11151128
}
11161129

11171130
private void enrichCurrentTrack(@NotNull ContextTrack track) {

0 commit comments

Comments
 (0)