File tree Expand file tree Collapse file tree 5 files changed +64
-6
lines changed
src/main/java/de/labystudio/spotifyapi Expand file tree Collapse file tree 5 files changed +64
-6
lines changed Original file line number Diff line number Diff line change @@ -14,7 +14,7 @@ repositories {
1414}
1515
1616dependencies {
17- implementation 'com.github.LabyStudio:java-spotify-api:1.0.1 :all'
17+ implementation 'com.github.LabyStudio:java-spotify-api:1.0.2 :all'
1818}
1919```
2020
Original file line number Diff line number Diff line change @@ -4,7 +4,7 @@ plugins {
44}
55
66group ' de.labystudio'
7- version ' 1.0.1 '
7+ version ' 1.0.2 '
88
99compileJava {
1010 sourceCompatibility = ' 1.8'
Original file line number Diff line number Diff line change 22
33import de .labystudio .spotifyapi .model .Track ;
44
5+ import java .util .concurrent .CompletableFuture ;
6+
57/**
68 * This is the main interface for the SpotifyAPI.
79 * It is used to get the current track and the current position of a song.
@@ -13,11 +15,21 @@ public interface SpotifyAPI {
1315
1416 /**
1517 * Initialize the SpotifyAPI and connect to the Spotify process.
18+ * Initializing the api will block the current thread until the connection is established.
1619 *
1720 * @return the initialized SpotifyAPI
1821 */
1922 SpotifyAPI initialize ();
2023
24+ /**
25+ * Initialize the SpotifyAPI and connect to the Spotify process asynchronously.
26+ *
27+ * @return a future that will contain the initialized SpotifyAPI
28+ */
29+ default CompletableFuture <SpotifyAPI > initializeAsync () {
30+ return CompletableFuture .supplyAsync (this ::initialize );
31+ }
32+
2133 /**
2234 * Returns the current track that is playing right now
2335 * It can be null if the api haven't received any playback changes yet.
Original file line number Diff line number Diff line change @@ -26,23 +26,33 @@ public static SpotifyAPI create() {
2626 String os = System .getProperty ("os.name" ).toLowerCase (Locale .ENGLISH );
2727
2828 if (os .contains ("win" )) {
29- return new WinSpotifyAPI (). initialize () ;
29+ return new WinSpotifyAPI ();
3030 }
3131 if (os .contains ("mac" )) {
32- return new OSXSpotifyApi (). initialize () ;
32+ return new OSXSpotifyApi ();
3333 }
3434
3535 throw new IllegalStateException ("Unsupported OS: " + os );
3636 }
3737
38+ /**
39+ * Create an initialized SpotifyAPI instance.
40+ * Initializing will block the current thread until the SpotifyAPI instance is ready.
41+ *
42+ * @return A new SpotifyAPI instance.
43+ */
44+ public static SpotifyAPI createInitialized () {
45+ return create ().initialize ();
46+ }
47+
3848 /**
3949 * Creates a new SpotifyAPI instance for the current platform asynchronously.
4050 * Currently, only Windows and OSX are supported.
4151 *
4252 * @return A future that will contain the SpotifyAPI instance.
4353 */
44- public static CompletableFuture <SpotifyAPI > createAsync () {
45- return CompletableFuture .supplyAsync (SpotifyAPIFactory ::create );
54+ public static CompletableFuture <SpotifyAPI > createInitializedAsync () {
55+ return CompletableFuture .supplyAsync (SpotifyAPIFactory ::createInitialized );
4656 }
4757
4858}
Original file line number Diff line number Diff line change 1+ package de .labystudio .spotifyapi ;
2+
3+ import de .labystudio .spotifyapi .model .Track ;
4+
5+ public class SpotifyListenerAdapter implements SpotifyListener {
6+
7+ @ Override
8+ public void onConnect () {
9+
10+ }
11+
12+ @ Override
13+ public void onTrackChanged (Track track ) {
14+
15+ }
16+
17+ @ Override
18+ public void onPositionChanged (int position ) {
19+
20+ }
21+
22+ @ Override
23+ public void onPlayBackChanged (boolean isPlaying ) {
24+
25+ }
26+
27+ @ Override
28+ public void onSync () {
29+
30+ }
31+
32+ @ Override
33+ public void onDisconnect (Exception exception ) {
34+
35+ }
36+ }
You can’t perform that action at this time.
0 commit comments