Skip to content

Commit a0f07e1

Browse files
committed
Clean up
1 parent f3c5310 commit a0f07e1

4 files changed

Lines changed: 16 additions & 15 deletions

File tree

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
import xyz.gianlu.librespot.common.proto.Spirc;
77
import xyz.gianlu.librespot.core.Session;
88
import xyz.gianlu.librespot.mercury.model.TrackId;
9+
import xyz.gianlu.librespot.player.tracks.PlaylistProvider;
10+
import xyz.gianlu.librespot.player.tracks.StationProvider;
11+
import xyz.gianlu.librespot.player.tracks.TracksProvider;
912
import xyz.gianlu.librespot.spirc.FrameListener;
1013
import xyz.gianlu.librespot.spirc.SpotifyIrc;
1114

core/src/main/java/xyz/gianlu/librespot/player/PlaylistProvider.java renamed to core/src/main/java/xyz/gianlu/librespot/player/tracks/PlaylistProvider.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package xyz.gianlu.librespot.player;
1+
package xyz.gianlu.librespot.player.tracks;
22

33
import org.jetbrains.annotations.NotNull;
44
import xyz.gianlu.librespot.common.proto.Spirc;
@@ -31,7 +31,7 @@ private static int[] getShuffleExchanges(int size, long seed) {
3131
return exchanges;
3232
}
3333

34-
void shuffleTracks(@NotNull Random random) {
34+
public void shuffleTracks(@NotNull Random random) {
3535
shuffleSeed = random.nextLong();
3636

3737
List<Spirc.TrackRef> tracks = new ArrayList<>(state.getTrackList());
@@ -51,7 +51,7 @@ void shuffleTracks(@NotNull Random random) {
5151
state.addAllTrack(tracks);
5252
}
5353

54-
void unshuffleTracks() {
54+
public void unshuffleTracks() {
5555
List<Spirc.TrackRef> tracks = new ArrayList<>(state.getTrackList());
5656
if (state.getPlayingTrackIndex() != 0) {
5757
Collections.swap(tracks, 0, state.getPlayingTrackIndex());

core/src/main/java/xyz/gianlu/librespot/player/StationProvider.java renamed to core/src/main/java/xyz/gianlu/librespot/player/tracks/StationProvider.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package xyz.gianlu.librespot.player;
1+
package xyz.gianlu.librespot.player.tracks;
22

33
import com.google.gson.JsonArray;
44
import com.google.gson.JsonElement;
@@ -22,6 +22,7 @@
2222
*/
2323
public class StationProvider implements TracksProvider {
2424
private static final Logger LOGGER = Logger.getLogger(StationProvider.class);
25+
private static final int LOAD_NEXT_PAGE_THRESHOLD = 3;
2526
private final MercuryClient mercury;
2627
private final Spirc.State.Builder state;
2728
private String nextPageUri;
@@ -38,7 +39,7 @@ public StationProvider(@NotNull Session session, @NotNull Spirc.State.Builder st
3839
@Override
3940
public int getNextTrackIndex(boolean consume) {
4041
int next = state.getPlayingTrackIndex() + 1;
41-
if (next >= state.getTrackCount()) {
42+
if (next >= state.getTrackCount() - LOAD_NEXT_PAGE_THRESHOLD) {
4243
try {
4344
requestMore();
4445
} catch (IOException | MercuryClient.MercuryException ex) {
@@ -51,9 +52,7 @@ public int getNextTrackIndex(boolean consume) {
5152
}
5253

5354
private void requestMore() throws IOException, MercuryClient.MercuryException {
54-
if (nextPageUri == null)
55-
resolveContext();
56-
55+
if (nextPageUri == null) resolveContext();
5756
getNextPage();
5857
}
5958

@@ -70,18 +69,17 @@ private void getNextPage() throws IOException {
7069
JsonArray tracks = obj.getAsJsonArray("tracks");
7170
for (JsonElement elm : tracks) {
7271
JsonObject track = elm.getAsJsonObject();
72+
String uri = track.get("uri").getAsString();
7373
state.addTrack(Spirc.TrackRef.newBuilder()
74-
.setUri(track.get("uri").getAsString())
75-
.setGid(ByteString.copyFrom(TrackId.fromUri(track.get("uri").getAsString()).getGid()))
74+
.setUri(uri)
75+
.setGid(ByteString.copyFrom(TrackId.fromUri(uri).getGid()))
7676
.build());
7777
}
7878
}
7979

8080
private void resolveContext() throws IOException, MercuryClient.MercuryException {
81-
if (!state.hasContextUri()) {
82-
LOGGER.fatal("Missing context URI!");
83-
return;
84-
}
81+
if (!state.hasContextUri())
82+
throw new IOException("Missing context URI!");
8583

8684
MercuryRequests.ResolvedContextWrapper json = mercury.sendSync(MercuryRequests.resolveContext(state.getContextUri()));
8785
JsonObject firstPage = json.pages().get(0).getAsJsonObject();

core/src/main/java/xyz/gianlu/librespot/player/TracksProvider.java renamed to core/src/main/java/xyz/gianlu/librespot/player/tracks/TracksProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package xyz.gianlu.librespot.player;
1+
package xyz.gianlu.librespot.player.tracks;
22

33
import org.jetbrains.annotations.NotNull;
44
import xyz.gianlu.librespot.mercury.model.TrackId;

0 commit comments

Comments
 (0)