Skip to content

Commit 9e70ac1

Browse files
committed
Fixed NPE when publishing event
1 parent 466e2de commit 9e70ac1

1 file changed

Lines changed: 5 additions & 9 deletions

File tree

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

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

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,6 @@ public void load(@NotNull String uri, boolean play) {
115115
}
116116

117117
events.dispatchContextChanged();
118-
events.dispatchTrackChanged();
119118
loadTrack(play, PushToMixerReason.None);
120119
}
121120

@@ -135,7 +134,6 @@ private void transferState(TransferStateOuterClass.@NotNull TransferState cmd) {
135134
}
136135

137136
events.dispatchContextChanged();
138-
events.dispatchTrackChanged();
139137
loadTrack(!cmd.getPlayback().getIsPaused(), PushToMixerReason.None);
140138
}
141139

@@ -155,7 +153,6 @@ private void handleLoad(@NotNull JsonObject obj) {
155153
}
156154

157155
events.dispatchContextChanged();
158-
events.dispatchTrackChanged();
159156

160157
Boolean play = PlayCommandHelper.isInitiallyPaused(obj);
161158
if (play == null) play = true;
@@ -422,6 +419,8 @@ private void loadTrack(boolean play, @NotNull PushToMixerReason reason) {
422419
state.updated();
423420
}
424421

422+
events.dispatchTrackChanged();
423+
425424
if (!play) {
426425
runner.pauseMixer();
427426
events.dispatchPlaybackPaused();
@@ -449,6 +448,8 @@ private void loadTrack(boolean play, @NotNull PushToMixerReason reason) {
449448
state.updated();
450449
}
451450

451+
events.dispatchTrackChanged();
452+
452453
if (play) {
453454
trackHandler.pushToMixer(reason);
454455
runner.playMixer();
@@ -530,7 +531,6 @@ private void handleNext(@Nullable JsonObject obj) {
530531

531532
if (track != null) {
532533
state.skipTo(track);
533-
events.dispatchTrackChanged();
534534
loadTrack(true, PushToMixerReason.Next);
535535
return;
536536
}
@@ -543,7 +543,6 @@ private void handleNext(@Nullable JsonObject obj) {
543543

544544
if (next.isOk()) {
545545
state.setPosition(0);
546-
events.dispatchTrackChanged();
547546
loadTrack(next == NextPlayable.OK_PLAY || next == NextPlayable.OK_REPEAT, PushToMixerReason.Next);
548547
} else {
549548
LOGGER.fatal("Failed loading next song: " + next);
@@ -569,7 +568,6 @@ private void loadAutoplay() {
569568
state.setContextMetadata("context_description", contextDesc);
570569

571570
events.dispatchContextChanged();
572-
events.dispatchTrackChanged();
573571
loadTrack(true, PushToMixerReason.None);
574572

575573
LOGGER.debug(String.format("Loading context for autoplay, uri: %s", newContext));
@@ -579,7 +577,6 @@ private void loadAutoplay() {
579577
state.setContextMetadata("context_description", contextDesc);
580578

581579
events.dispatchContextChanged();
582-
events.dispatchTrackChanged();
583580
loadTrack(true, PushToMixerReason.None);
584581

585582
LOGGER.debug(String.format("Loading context for autoplay (using radio-apollo), uri: %s", state.getContextUri()));
@@ -604,7 +601,6 @@ private void handlePrev() {
604601
StateWrapper.PreviousPlayable prev = state.previousPlayable();
605602
if (prev.isOk()) {
606603
state.setPosition(0);
607-
events.dispatchTrackChanged();
608604
loadTrack(true, PushToMixerReason.Prev);
609605
} else {
610606
LOGGER.fatal("Failed loading previous song: " + prev);
@@ -732,7 +728,7 @@ void dispatchTrackChanged() {
732728

733729
Metadata.Track track;
734730
Metadata.Episode episode;
735-
if (trackHandler.isPlayable(id)) {
731+
if (trackHandler != null && trackHandler.isPlayable(id)) {
736732
track = trackHandler.track();
737733
episode = trackHandler.episode();
738734
} else {

0 commit comments

Comments
 (0)