Skip to content

Commit 9b07443

Browse files
committed
Merge remote-tracking branch 'origin/1.5.0' into 1.5.0
2 parents bea88bb + d92fe3b commit 9b07443

File tree

17 files changed

+289
-9
lines changed

17 files changed

+289
-9
lines changed

src/main/java/dev/gruncan/spotify/objects/episodes/EpisodePage.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,23 @@
33
import dev.gruncan.spotify.objects.SpotifyField;
44
import dev.gruncan.spotify.objects.SpotifyObject;
55
import dev.gruncan.spotify.objects.search.AbstractSearchItems;
6+
import dev.gruncan.spotify.requests.me.episodes.MyEpisodesGet;
67
import lombok.Getter;
78

9+
/**
10+
* Represents a page of episodes
11+
*
12+
* @see MyEpisodesGet
13+
* @see SavedEpisode
14+
* @see AbstractSearchItems
15+
* @see SpotifyObject
16+
*/
817
@Getter
918
public class EpisodePage extends AbstractSearchItems implements SpotifyObject {
1019

20+
/**
21+
* An array of SavedEpisodes
22+
*/
1123
@SpotifyField
1224
private SavedEpisode[] items;
1325

src/main/java/dev/gruncan/spotify/objects/episodes/SavedEpisode.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,25 @@
44
import dev.gruncan.spotify.objects.SpotifyObject;
55
import lombok.Getter;
66

7+
/**
8+
* Represents a saved episode
9+
*
10+
* @see EpisodePage
11+
* @see Episode
12+
* @see SpotifyObject
13+
*/
714
@Getter
815
public class SavedEpisode implements SpotifyObject {
916

10-
17+
/**
18+
* The date and time the episode was saved. Timestamps are returned in ISO 8601 format as Coordinated Universal Time (UTC) with a zero offset: YYYY-MM-DDTHH:MM:SSZ.
19+
*/
1120
@SpotifyField("added_at")
1221
private String addedAt;
1322

23+
/**
24+
* Information about the episode.
25+
*/
1426
@SpotifyField
1527
private Episode episode;
1628

src/main/java/dev/gruncan/spotify/objects/player/PlayTrackHistory.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,36 @@
33
import dev.gruncan.spotify.objects.SpotifyField;
44
import dev.gruncan.spotify.objects.SpotifyObject;
55
import dev.gruncan.spotify.objects.tracks.Track;
6+
import dev.gruncan.spotify.objects.tracks.TrackPage;
67
import lombok.Getter;
78

9+
10+
/**
11+
* Represents a history of a track that was played
12+
*
13+
* @see TrackPage
14+
* @see Track
15+
* @see PlayerContext
16+
* @see SpotifyObject
17+
*/
818
@Getter
919
public class PlayTrackHistory implements SpotifyObject {
1020

11-
21+
/**
22+
* The track the user listened to.
23+
*/
1224
@SpotifyField
1325
private Track track;
1426

27+
/**
28+
* The date and time the track was played.
29+
*/
1530
@SpotifyField("played_at")
1631
private String playedAt;
1732

33+
/**
34+
* The context the track was played from.
35+
*/
1836
@SpotifyField
1937
private PlayerContext context;
2038

src/main/java/dev/gruncan/spotify/objects/player/PlaybackState.java

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,41 +5,85 @@
55
import dev.gruncan.spotify.objects.SpotifyOptional;
66
import dev.gruncan.spotify.objects.episodes.Episode;
77
import dev.gruncan.spotify.objects.tracks.Track;
8+
import dev.gruncan.spotify.requests.me.player.MyPlayerCurrentlyPlayingGet;
9+
import dev.gruncan.spotify.requests.me.player.MyPlayerGet;
810
import lombok.Getter;
911

12+
/**
13+
* Represents information about playback
14+
*
15+
* @see MyPlayerGet
16+
* @see MyPlayerCurrentlyPlayingGet
17+
* @see SpotifyDevice
18+
* @see PlayerContext
19+
* @see Track
20+
* @see Episode
21+
* @see PlayerActions
22+
* @see SpotifyObject
23+
*/
1024
@Getter
1125
public class PlaybackState implements SpotifyObject {
1226

27+
/**
28+
* The device that is currently active.
29+
*/
1330
@SpotifyField
1431
private SpotifyDevice device;
1532

33+
/**
34+
* off, track, context
35+
*/
1636
@SpotifyField("repeat_state")
1737
private String repeatState;
1838

39+
/**
40+
* If shuffle is on or off.
41+
*/
1942
@SpotifyField("shuffle_state")
2043
private boolean isShuffled;
2144

45+
/**
46+
* A Context Object. Can be null.
47+
*/
2248
@SpotifyOptional
2349
@SpotifyField
2450
private PlayerContext context;
2551

52+
/**
53+
* Unix Millisecond Timestamp when data was fetched.
54+
*/
2655
@SpotifyField
2756
private int timestamp;
2857

58+
/**
59+
* Progress into the currently playing track or episode. Can be null.
60+
*/
2961
@SpotifyField("progress_ms")
3062
private int progress;
3163

64+
/**
65+
* The currently playing track if present
66+
*/
3267
@SpotifyOptional
33-
@SpotifyField("item")
68+
@SpotifyField(value = "item", canSkip = true)
3469
private Track track;
3570

71+
/**
72+
* The currently playing episode if present
73+
*/
3674
@SpotifyOptional
37-
@SpotifyField("item")
75+
@SpotifyField(value = "item", canSkip = true)
3876
private Episode episode;
3977

78+
/**
79+
* The object type of the currently playing item. Can be one of track, episode, ad or unknown.
80+
*/
4081
@SpotifyField("currently_playing_type")
4182
private String currentlyPlayingType;
4283

84+
/**
85+
* Allows to update the user interface based on which playback actions are available within the current context.
86+
*/
4387
@SpotifyField
4488
private PlayerActions actions;
4589

src/main/java/dev/gruncan/spotify/objects/player/PlayerActions.java

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,39 +2,76 @@
22

33
import dev.gruncan.spotify.objects.SpotifyField;
44
import dev.gruncan.spotify.objects.SpotifyObject;
5+
import dev.gruncan.spotify.objects.SpotifyOptional;
56
import lombok.Getter;
67

8+
/**
9+
* Represents the action available within the current context
10+
*
11+
* @see PlaybackState
12+
* @see SpotifyObject
13+
*/
714
@Getter
15+
@SpotifyOptional
816
public class PlayerActions implements SpotifyObject {
917

10-
18+
/**
19+
* Interrupting playback
20+
*/
1121
@SpotifyField("interrupting_playback")
1222
private boolean isInterruptingPlayback;
1323

24+
/**
25+
* Pausing
26+
*/
1427
@SpotifyField("pausing")
1528
private boolean isPausing;
1629

30+
/**
31+
* Resuming
32+
*/
1733
@SpotifyField("resuming")
1834
private boolean isResuming;
1935

36+
/**
37+
* Seeking playback location
38+
*/
2039
@SpotifyField("seeking")
2140
private boolean isSeeking;
2241

42+
/**
43+
* Skipping to the next context
44+
*/
2345
@SpotifyField("skipping_next")
2446
private boolean isSkippingNext;
2547

48+
/**
49+
* Skipping to the previous context
50+
*/
2651
@SpotifyField("skipping_prev")
2752
private boolean isSkippingPrev;
2853

54+
/**
55+
* Toggling repeat context flag
56+
*/
2957
@SpotifyField("toggling_repeat_context")
3058
private boolean isTogglingRepeatContext;
3159

60+
/**
61+
* Toggling shuffle flag
62+
*/
3263
@SpotifyField("toggling_shuffle")
3364
private boolean isTogglingShuffle;
3465

66+
/**
67+
* Toggling repeat track flag
68+
*/
3569
@SpotifyField("toggling_repeat_track")
3670
private boolean isTogglingRepeatTrack;
3771

72+
/**
73+
* Transferring playback between devices
74+
*/
3875
@SpotifyField("transferring_playback")
3976
private boolean isTransferringPlayback;
4077

src/main/java/dev/gruncan/spotify/objects/player/PlayerContext.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,38 @@
44
import dev.gruncan.spotify.objects.SpotifyObject;
55
import lombok.Getter;
66

7+
/**
8+
* Represents the current player context
9+
*
10+
* @see PlaybackState
11+
* @see SpotifyObject
12+
*
13+
*/
714
@Getter
815
public class PlayerContext implements SpotifyObject {
916

10-
17+
/**
18+
* The object type, e.g. "artist", "playlist", "album", "show".
19+
*/
1120
@SpotifyField
1221
private String type;
1322

23+
/**
24+
* A link to the Web API endpoint providing full details of the track.
25+
*/
1426
@SpotifyField
1527
private String href;
1628

29+
/**
30+
* External URLs for this context.
31+
* The Spotify URL for the object.
32+
*/
1733
@SpotifyField(value = "spotify", path = "external_urls")
1834
private String externalUrls;
1935

36+
/**
37+
* The Spotify URI for the context.
38+
*/
2039
@SpotifyField
2140
private String uri;
2241

src/main/java/dev/gruncan/spotify/objects/player/SpotifyDevice.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,56 @@
55
import dev.gruncan.spotify.objects.SpotifyOptional;
66
import lombok.Getter;
77

8+
9+
/**
10+
* Represents a spotify device
11+
*
12+
* @see SpotifyDeviceArray
13+
* @see SpotifyObject
14+
*/
815
@Getter
916
public class SpotifyDevice implements SpotifyObject {
1017

18+
/**
19+
* The device ID.
20+
*/
1121
@SpotifyOptional
1222
@SpotifyField
1323
private String id;
1424

25+
/**
26+
* If this device is the currently active device.
27+
*/
1528
@SpotifyField("is_active")
1629
private boolean isActive;
1730

31+
/**
32+
* If this device is currently in a private session.
33+
*/
1834
@SpotifyField("is_private_session")
1935
private boolean isPrivateSession;
2036

37+
/**
38+
* Whether controlling this device is restricted. At present if this is "true" then no Web API commands will be accepted by this device.
39+
*/
2140
@SpotifyField("is_restricted")
2241
private boolean isRestricted;
2342

43+
/**
44+
* A human-readable name for the device. Some devices have a name that the user can configure (e.g. "Loudest speaker") and some devices have a generic name associated with the manufacturer or device model.
45+
*/
2446
@SpotifyField
2547
private String name;
2648

49+
/**
50+
* Device type, such as "computer", "smartphone" or "speaker".
51+
*/
2752
@SpotifyField
2853
private String type;
2954

55+
/**
56+
* The current volume in percent.
57+
*/
3058
@SpotifyOptional
3159
@SpotifyField("volume_percent")
3260
private int volume;

src/main/java/dev/gruncan/spotify/objects/player/SpotifyDeviceArray.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,22 @@
22

33
import dev.gruncan.spotify.objects.SpotifyField;
44
import dev.gruncan.spotify.objects.SpotifyObject;
5+
import dev.gruncan.spotify.requests.me.player.MyPlayerDevicesGet;
56
import lombok.Getter;
67

8+
/**
9+
* Represents a set of devices
10+
*
11+
* @see MyPlayerDevicesGet
12+
* @see SpotifyDevice
13+
* @see SpotifyObject
14+
*/
715
@Getter
816
public class SpotifyDeviceArray implements SpotifyObject {
917

10-
18+
/**
19+
* The set of spotify devices
20+
*/
1121
@SpotifyField
1222
private SpotifyDevice[] devices;
1323

src/main/java/dev/gruncan/spotify/objects/playlists/Playlist.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import dev.gruncan.spotify.objects.search.items.SearchItemsPlaylists;
66
import dev.gruncan.spotify.objects.wrappers.SpotifyFollowers;
77
import dev.gruncan.spotify.requests.playlists.PlaylistGet;
8+
import dev.gruncan.spotify.requests.users.UserPlaylistCreatePost;
89
import lombok.Getter;
910

1011

@@ -13,7 +14,10 @@
1314
* Serialized from <a href="https://developer.spotify.com/documentation/web-api/reference/get-playlist">PlaylistGet</a>
1415
*
1516
* @see PlaylistGet
17+
* @see UserPlaylistCreatePost
1618
* @see SearchItemsPlaylists
19+
* @see SimplifiedPlaylist
20+
* @see SpotifyFollowers
1721
* @see SpotifyObject
1822
*/
1923
@Getter

0 commit comments

Comments
 (0)