Implemented the saving and loading functionality of the queue from the server
This commit is contained in:
@@ -1,6 +1,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.mediaannotation.MediaAnnotationClient;
|
||||
import com.cappielloantonio.play.subsonic.api.medialibraryscanning.MediaLibraryScanningClient;
|
||||
@@ -29,6 +30,7 @@ public class Subsonic {
|
||||
private MediaAnnotationClient mediaAnnotationClient;
|
||||
private PodcastClient podcastClient;
|
||||
private MediaLibraryScanningClient mediaLibraryScanningClient;
|
||||
private BookmarksClient bookmarksClient;
|
||||
|
||||
public Subsonic(SubsonicPreferences preferences) {
|
||||
this.preferences = preferences;
|
||||
@@ -101,6 +103,13 @@ public class Subsonic {
|
||||
return mediaLibraryScanningClient;
|
||||
}
|
||||
|
||||
public BookmarksClient getBookmarksClient() {
|
||||
if (bookmarksClient == null) {
|
||||
bookmarksClient = new BookmarksClient(this);
|
||||
}
|
||||
return bookmarksClient;
|
||||
}
|
||||
|
||||
public String getUrl() {
|
||||
String url = preferences.getServerUrl() + "/rest/";
|
||||
return url.replace("//rest", "/rest");
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.cappielloantonio.play.subsonic.api.bookmarks;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import com.cappielloantonio.play.subsonic.RetrofitClient;
|
||||
import com.cappielloantonio.play.subsonic.Subsonic;
|
||||
import com.cappielloantonio.play.subsonic.base.ApiResponse;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import retrofit2.Call;
|
||||
|
||||
public class BookmarksClient {
|
||||
private static final String TAG = "BookmarksClient";
|
||||
|
||||
private final Subsonic subsonic;
|
||||
private final BookmarksService bookmarksService;
|
||||
|
||||
public BookmarksClient(Subsonic subsonic) {
|
||||
this.subsonic = subsonic;
|
||||
this.bookmarksService = new RetrofitClient(subsonic).getRetrofit().create(BookmarksService.class);
|
||||
}
|
||||
|
||||
public Call<ApiResponse> getPlayQueue() {
|
||||
Log.d(TAG, "getPlayQueue()");
|
||||
return bookmarksService.getPlayQueue(subsonic.getParams());
|
||||
}
|
||||
|
||||
public Call<ApiResponse> savePlayQueue(List<String> ids, String current, long position) {
|
||||
Log.d(TAG, "savePlayQueue()");
|
||||
return bookmarksService.savePlayQueue(subsonic.getParams(), ids, current, position);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.cappielloantonio.play.subsonic.api.bookmarks;
|
||||
|
||||
import com.cappielloantonio.play.subsonic.base.ApiResponse;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import retrofit2.Call;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Query;
|
||||
import retrofit2.http.QueryMap;
|
||||
|
||||
public interface BookmarksService {
|
||||
@GET("getPlayQueue")
|
||||
Call<ApiResponse> getPlayQueue(@QueryMap Map<String, String> params);
|
||||
|
||||
@GET("savePlayQueue")
|
||||
Call<ApiResponse> savePlayQueue(@QueryMap Map<String, String> params, @Query("id") List<String> ids, @Query("current") String current, @Query("position") long position);
|
||||
}
|
||||
@@ -1,12 +1,14 @@
|
||||
package com.cappielloantonio.play.subsonic.models
|
||||
|
||||
import java.time.LocalDateTime
|
||||
import com.google.gson.annotations.SerializedName
|
||||
import java.util.*
|
||||
|
||||
class PlayQueue {
|
||||
@SerializedName("entry")
|
||||
var entries: List<Child>? = null
|
||||
var current: Int? = null
|
||||
var current: String? = null
|
||||
var position: Long? = null
|
||||
var username: String? = null
|
||||
var changed: LocalDateTime? = null
|
||||
var changed: Date? = null
|
||||
var changedBy: String? = null
|
||||
}
|
||||
Reference in New Issue
Block a user