package com.qrmusic.spotify;
import android.content.Context;
import com.spotify.android.appremote.api.ConnectionParams;
import com.spotify.android.appremote.api.Connector;
import com.spotify.android.appremote.api.SpotifyAppRemote;
/**
* Wrapperklasse voor het verbinden met Spotify en afspelen van muziek.
*/
public class SpotifyWrapper {
private SpotifyAppRemote mSpotifyAppRemote = null;
/**
* Verbindt met Spotify via Spotify App Remote SDK.
*
* @param context Android context
* @param clientId Spotify API client ID
* @param redirectUri Redirect URI van Spotify ontwikkelaarsdashboard
*/
public void Connect(Context context, String clientId, String redirectUri) {
ConnectionParams connectionParams = new ConnectionParams.Builder(clientId)
.setRedirectUri(redirectUri)
.showAuthView(false)
.build();
SpotifyAppRemote.connect(context, connectionParams, new Connector.ConnectionListener() {
@Override
public void onConnected(SpotifyAppRemote remote) {
mSpotifyAppRemote = remote;
}
@Override
public void onFailure(Throwable throwable) {
// Verbindingsfout afhandelen (optioneel)
}
});
}
/**
* Speelt een track af op Spotify.
*
* @param uri Spotify track URI (bijv. "spotify:track:...")
*/
public void Play(String uri) {
if (mSpotifyAppRemote != null) {
mSpotifyAppRemote.getPlayerApi().play(uri);
}
}
/**
* Pauzeert de huidige track.
*/
public void Pause() {
if (mSpotifyAppRemote != null) {
mSpotifyAppRemote.getPlayerApi().pause();
}
}
/**
* Stopt de muziekweergave (werkt als pauze, Spotify heeft geen echte stop).
*/
public void Stop() {
Pause(); // Spotify kent geen aparte 'stop'
}
/**
* Verbreekt de Spotify-verbinding.
*/
public void Disconnect() {
if (mSpotifyAppRemote != null) {
SpotifyAppRemote.disconnect(mSpotifyAppRemote);
mSpotifyAppRemote = null;
}
}
/**
* Controleert of er verbinding is met Spotify.
*
* @return true als verbonden, false als niet verbonden
*/
public boolean IsConnected() {
return mSpotifyAppRemote != null;
}
}