@@ -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