Removed Jellyfin dependencies

This commit is contained in:
CappielloAntonio 2021-07-27 14:53:03 +02:00
parent 737eaa1822
commit 9495fbd83d
16 changed files with 62 additions and 310 deletions

View file

@ -1,64 +1,34 @@
package com.cappielloantonio.play.util;
import android.content.Context;
import android.util.Log;
import com.cappielloantonio.play.App;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.glide.CustomGlideRequest;
import com.cappielloantonio.play.model.DirectPlayCodec;
import com.cappielloantonio.play.model.Song;
import com.google.android.exoplayer2.MediaItem;
import org.jellyfin.apiclient.interaction.ApiClient;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Random;
public class MusicUtil {
private static final String TAG = "MusicUtil";
public static String getSongFileUri(Song song) {
ApiClient apiClient = App.getApiClientInstance(App.getInstance());
PreferenceUtil preferenceUtil = PreferenceUtil.getInstance(App.getInstance());
String url = App.getSubsonicClientInstance(App.getInstance(), false).getUrl();
StringBuilder builder = new StringBuilder(256);
builder.append(apiClient.getApiUrl());
builder.append("/Audio/");
builder.append(song.getId());
builder.append("/universal");
builder.append("?UserId=").append(apiClient.getCurrentUserId());
builder.append("&DeviceId=").append(apiClient.getDeviceId());
Map<String, String> params = App.getSubsonicClientInstance(App.getInstance(), false).getParams();
// web client maximum is 12444445 and 320kbps is 320000
builder.append("&MaxStreamingBitrate=").append(preferenceUtil.getMaximumBitrate());
boolean containerAdded = false;
for (DirectPlayCodec directPlayCodec : preferenceUtil.getDirectPlayCodecs()) {
if (directPlayCodec.selected) {
if (!containerAdded) {
builder.append("&Container=");
containerAdded = true;
}
builder.append(directPlayCodec.codec.value).append(',');
}
}
if (containerAdded) {
// remove last comma
builder.deleteCharAt(builder.length() - 1);
}
builder.append("&TranscodingContainer=ts");
builder.append("&TranscodingProtocol=hls");
// preferred codec when transcoding
builder.append("&AudioCodec=").append(preferenceUtil.getTranscodeCodec());
builder.append("&api_key=").append(apiClient.getAccessToken());
Log.i(MusicUtil.class.getName(), "playing audio: " + builder);
return builder.toString();
return url + "stream" +
"?u=" + params.get("u") +
"&s=" + params.get("s") +
"&t=" + params.get("t") +
"&v=" + params.get("v") +
"&c=" + params.get("c") +
"&id=" + song.getId();
}
public static String getReadableDurationString(long songDurationMillis) {

View file

@ -5,22 +5,14 @@ import android.os.Bundle;
import com.cappielloantonio.play.App;
import com.cappielloantonio.play.interfaces.MediaCallback;
import com.cappielloantonio.play.model.PlaylistSongCross;
import com.cappielloantonio.play.model.Song;
import com.cappielloantonio.play.subsonic.models.AlbumID3;
import com.cappielloantonio.play.subsonic.models.ArtistID3;
import com.cappielloantonio.play.subsonic.models.Child;
import com.cappielloantonio.play.subsonic.models.IndexID3;
import com.cappielloantonio.play.subsonic.models.MusicFolder;
import com.cappielloantonio.play.subsonic.models.ResponseStatus;
import com.cappielloantonio.play.subsonic.models.SubsonicResponse;
import org.jellyfin.apiclient.interaction.Response;
import org.jellyfin.apiclient.model.dto.BaseItemDto;
import org.jellyfin.apiclient.model.playlists.PlaylistItemQuery;
import org.jellyfin.apiclient.model.querying.ItemFields;
import org.jellyfin.apiclient.model.querying.ItemsResult;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -203,7 +195,7 @@ public class SyncUtil {
}
public static void getSongsPerPlaylist(Context context, MediaCallback callback, String playlistId) {
PlaylistItemQuery query = new PlaylistItemQuery();
/*PlaylistItemQuery query = new PlaylistItemQuery();
query.setId(playlistId);
query.setUserId(App.getApiClientInstance(context).getCurrentUserId());
@ -227,7 +219,7 @@ public class SyncUtil {
public void onError(Exception exception) {
callback.onError(exception);
}
});
});*/
}
public static void getInstantMix(Context context, MediaCallback callback, String resultType, String itemID, int limit) {
@ -308,7 +300,7 @@ public class SyncUtil {
}
private static void updateSongData(Map<Integer, Song> library, List<Song> songs) {
for (Song song: songs) {
for (Song song : songs) {
if (library.containsKey(song.hashCode())) {
Song oldSong = library.get(song.hashCode());
song.setFavorite(oldSong.isFavorite());