feat: radio
This commit is contained in:
@@ -3,6 +3,7 @@ package com.cappielloantonio.play.subsonic;
|
||||
import com.cappielloantonio.play.subsonic.api.albumsonglist.AlbumSongListClient;
|
||||
import com.cappielloantonio.play.subsonic.api.bookmarks.BookmarksClient;
|
||||
import com.cappielloantonio.play.subsonic.api.browsing.BrowsingClient;
|
||||
import com.cappielloantonio.play.subsonic.api.internetradio.InternetRadioClient;
|
||||
import com.cappielloantonio.play.subsonic.api.mediaannotation.MediaAnnotationClient;
|
||||
import com.cappielloantonio.play.subsonic.api.medialibraryscanning.MediaLibraryScanningClient;
|
||||
import com.cappielloantonio.play.subsonic.api.mediaretrieval.MediaRetrievalClient;
|
||||
@@ -31,6 +32,7 @@ public class Subsonic {
|
||||
private PodcastClient podcastClient;
|
||||
private MediaLibraryScanningClient mediaLibraryScanningClient;
|
||||
private BookmarksClient bookmarksClient;
|
||||
private InternetRadioClient internetRadioClient;
|
||||
|
||||
public Subsonic(SubsonicPreferences preferences) {
|
||||
this.preferences = preferences;
|
||||
@@ -110,6 +112,13 @@ public class Subsonic {
|
||||
return bookmarksClient;
|
||||
}
|
||||
|
||||
public InternetRadioClient getInternetRadioClient() {
|
||||
if (internetRadioClient == null) {
|
||||
internetRadioClient = new InternetRadioClient(this);
|
||||
}
|
||||
return internetRadioClient;
|
||||
}
|
||||
|
||||
public String getUrl() {
|
||||
String url = preferences.getServerUrl() + "/rest/";
|
||||
return url.replace("//rest", "/rest");
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.cappielloantonio.play.subsonic.api.internetradio;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import com.cappielloantonio.play.subsonic.RetrofitClient;
|
||||
import com.cappielloantonio.play.subsonic.Subsonic;
|
||||
import com.cappielloantonio.play.subsonic.base.ApiResponse;
|
||||
|
||||
import retrofit2.Call;
|
||||
|
||||
public class InternetRadioClient {
|
||||
private static final String TAG = "InternetRadioClient";
|
||||
|
||||
private final Subsonic subsonic;
|
||||
private final InternetRadioService internetRadioService;
|
||||
|
||||
public InternetRadioClient(Subsonic subsonic) {
|
||||
this.subsonic = subsonic;
|
||||
this.internetRadioService = new RetrofitClient(subsonic).getRetrofit().create(InternetRadioService.class);
|
||||
}
|
||||
|
||||
public Call<ApiResponse> getInternetRadioStations() {
|
||||
Log.d(TAG, "getInternetRadioStations()");
|
||||
return internetRadioService.getInternetRadioStations(subsonic.getParams());
|
||||
}
|
||||
|
||||
public Call<ApiResponse> createInternetRadioStation(String streamUrl, String name, String homepageUrl) {
|
||||
Log.d(TAG, "createInternetRadioStation()");
|
||||
return internetRadioService.createInternetRadioStation(subsonic.getParams(), streamUrl, name, homepageUrl);
|
||||
}
|
||||
|
||||
public Call<ApiResponse> updateInternetRadioStation(String id, String streamUrl, String name, String homepageUrl) {
|
||||
Log.d(TAG, "updateInternetRadioStation()");
|
||||
return internetRadioService.updateInternetRadioStation(subsonic.getParams(), id, streamUrl, name, homepageUrl);
|
||||
}
|
||||
|
||||
public Call<ApiResponse> deleteInternetRadioStation(String id) {
|
||||
Log.d(TAG, "deleteInternetRadioStation()");
|
||||
return internetRadioService.deleteInternetRadioStation(subsonic.getParams(), id);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.cappielloantonio.play.subsonic.api.internetradio;
|
||||
|
||||
import com.cappielloantonio.play.subsonic.base.ApiResponse;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import retrofit2.Call;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Query;
|
||||
import retrofit2.http.QueryMap;
|
||||
|
||||
public interface InternetRadioService {
|
||||
@GET("getInternetRadioStations")
|
||||
Call<ApiResponse> getInternetRadioStations(@QueryMap Map<String, String> params);
|
||||
|
||||
@GET("createInternetRadioStation")
|
||||
Call<ApiResponse> createInternetRadioStation(@QueryMap Map<String, String> params, @Query("streamUrl") String streamUrl, @Query("name") String name, @Query("homepageUrl") String homepageUrl);
|
||||
|
||||
@GET("updateInternetRadioStation")
|
||||
Call<ApiResponse> updateInternetRadioStation(@QueryMap Map<String, String> params, @Query("id") String id, @Query("streamUrl") String streamUrl, @Query("name") String name, @Query("homepageUrl") String homepageUrl);
|
||||
|
||||
@GET("deleteInternetRadioStation")
|
||||
Call<ApiResponse> deleteInternetRadioStation(@QueryMap Map<String, String> params, @Query("id") String id);
|
||||
}
|
||||
@@ -1,6 +1,10 @@
|
||||
package com.cappielloantonio.play.subsonic.models
|
||||
|
||||
class InternetRadioStation {
|
||||
import android.os.Parcelable
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
||||
@Parcelize
|
||||
class InternetRadioStation : Parcelable {
|
||||
var id: String? = null
|
||||
var name: String? = null
|
||||
var streamUrl: String? = null
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
package com.cappielloantonio.play.subsonic.models
|
||||
|
||||
import com.google.gson.annotations.SerializedName
|
||||
|
||||
class InternetRadioStations {
|
||||
@SerializedName("internetRadioStation")
|
||||
var internetRadioStations: List<InternetRadioStation>? = null
|
||||
}
|
||||
Reference in New Issue
Block a user