Skip to content

Commit d1f1923

Browse files
committed
Fixed crash on adverts, Closes #34
1 parent cd4eddf commit d1f1923

File tree

4 files changed

+34
-10
lines changed

4 files changed

+34
-10
lines changed

SpotifyAPI.Example/LocalControl.Designer.cs

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

SpotifyAPI.Example/LocalControl.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,12 @@ public async void UpdateTrack(Track track)
7878
{
7979
_currentTrack = track;
8080

81+
advertLabel.Text = track.IsAd() ? "ADVERT" : "";
82+
timeProgressBar.Maximum = track.Length;
83+
84+
if (track.IsAd())
85+
return; //Don't process further, maybe null values
86+
8187
titleLinkLabel.Text = track.TrackResource.Name;
8288
titleLinkLabel.Tag = track.TrackResource.Uri;
8389

@@ -87,8 +93,6 @@ public async void UpdateTrack(Track track)
8793
albumLinkLabel.Text = track.AlbumResource.Name;
8894
albumLinkLabel.Tag = track.AlbumResource.Uri;
8995

90-
timeProgressBar.Maximum = track.Length;
91-
9296
bigAlbumPicture.Image = await track.GetAlbumArtAsync(AlbumArtSize.Size640);
9397
smallAlbumPicture.Image = await track.GetAlbumArtAsync(AlbumArtSize.Size160);
9498
}

SpotifyAPI/Local/Models/Track.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,15 @@ public class Track
2121
[JsonProperty("track_type")]
2222
public string TrackType { get; set; }
2323

24+
/// <summary>
25+
/// Checks if the track is an advert
26+
/// </summary>
27+
/// <returns>true if the track is an advert, fals otherwise</returns>
28+
public bool IsAd()
29+
{
30+
return TrackType == "ad";
31+
}
32+
2433
/// <summary>
2534
/// Returns a URL to the album cover in the provided size
2635
/// </summary>

SpotifyAPI/Local/SpotifyLocalAPI.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -95,33 +95,33 @@ private void ElapsedTick(object sender, ElapsedEventArgs e)
9595
}
9696
if (newStatusResponse.Track != null && _eventStatusResponse.Track != null)
9797
{
98-
if (newStatusResponse.Track.TrackResource.Name != _eventStatusResponse.Track.TrackResource.Name && OnTrackChange != null)
98+
if (newStatusResponse.Track.TrackResource?.Name != _eventStatusResponse.Track.TrackResource?.Name)
9999
{
100-
OnTrackChange(new TrackChangeEventArgs()
100+
OnTrackChange?.Invoke(new TrackChangeEventArgs()
101101
{
102102
OldTrack = _eventStatusResponse.Track,
103103
NewTrack = newStatusResponse.Track
104104
});
105105
}
106106
}
107-
if (newStatusResponse.Playing != _eventStatusResponse.Playing && OnPlayStateChange != null)
107+
if (newStatusResponse.Playing != _eventStatusResponse.Playing)
108108
{
109-
OnPlayStateChange(new PlayStateEventArgs()
109+
OnPlayStateChange?.Invoke(new PlayStateEventArgs()
110110
{
111111
Playing = newStatusResponse.Playing
112112
});
113113
}
114-
if (newStatusResponse.Volume != _eventStatusResponse.Volume && OnVolumeChange != null)
114+
if (newStatusResponse.Volume != _eventStatusResponse.Volume)
115115
{
116-
OnVolumeChange(new VolumeChangeEventArgs()
116+
OnVolumeChange?.Invoke(new VolumeChangeEventArgs()
117117
{
118118
OldVolume = _eventStatusResponse.Volume,
119119
NewVolume = newStatusResponse.Volume
120120
});
121121
}
122-
if (newStatusResponse.PlayingPosition != _eventStatusResponse.PlayingPosition && OnTrackTimeChange != null)
122+
if (newStatusResponse.PlayingPosition != _eventStatusResponse.PlayingPosition)
123123
{
124-
OnTrackTimeChange(new TrackTimeChangeEventArgs()
124+
OnTrackTimeChange?.Invoke(new TrackTimeChangeEventArgs()
125125
{
126126
TrackTime = newStatusResponse.PlayingPosition
127127
});

0 commit comments

Comments
 (0)