diff --git a/app/src/main/java/com/cappielloantonio/play/repository/ArtistRepository.java b/app/src/main/java/com/cappielloantonio/play/repository/ArtistRepository.java index 4fa27220..7b69b174 100644 --- a/app/src/main/java/com/cappielloantonio/play/repository/ArtistRepository.java +++ b/app/src/main/java/com/cappielloantonio/play/repository/ArtistRepository.java @@ -2,6 +2,7 @@ package com.cappielloantonio.play.repository; import android.app.Application; +import androidx.annotation.NonNull; import androidx.fragment.app.FragmentActivity; import androidx.lifecycle.MutableLiveData; @@ -11,7 +12,6 @@ import com.cappielloantonio.play.model.Album; import com.cappielloantonio.play.model.Artist; import com.cappielloantonio.play.model.Song; import com.cappielloantonio.play.subsonic.models.IndexID3; -import com.cappielloantonio.play.subsonic.models.ResponseStatus; import com.cappielloantonio.play.subsonic.models.SubsonicResponse; import com.cappielloantonio.play.util.MappingUtil; @@ -24,7 +24,7 @@ import retrofit2.Callback; import retrofit2.Response; public class ArtistRepository { - private Application application; + private final Application application; public ArtistRepository(Application application) { this.application = application; @@ -38,15 +38,16 @@ public class ArtistRepository { .getStarred2() .enqueue(new Callback() { @Override - public void onResponse(Call call, Response response) { - if (response.body().getStatus().getValue().equals(ResponseStatus.OK)) { + public void onResponse(@NonNull Call call, @NonNull Response response) { + if(response.isSuccessful() && response.body() != null && response.body().getStarred2() != null) { List artists = new ArrayList<>(MappingUtil.mapArtist(response.body().getStarred2().getArtists())); getArtistInfo(artists, starredArtists); } } @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(@NonNull Call call, @NonNull Throwable t) { + } }); @@ -61,8 +62,8 @@ public class ArtistRepository { .getArtists() .enqueue(new Callback() { @Override - public void onResponse(Call call, Response response) { - if (response.body().getStatus().getValue().equals(ResponseStatus.OK)) { + public void onResponse(@NonNull Call call, @NonNull Response response) { + if (response.isSuccessful() && response.body() != null) { List artists = new ArrayList<>(); for (IndexID3 index : response.body().getArtists().getIndices()) { @@ -79,7 +80,7 @@ public class ArtistRepository { } @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(@NonNull Call call, @NonNull Throwable t) { } }); @@ -100,12 +101,14 @@ public class ArtistRepository { .getArtist(artist.getId()) .enqueue(new Callback() { @Override - public void onResponse(Call call, Response response) { - addToMutableLiveData(list, MappingUtil.mapArtistWithAlbum(response.body().getArtist())); + public void onResponse(@NonNull Call call, @NonNull Response response) { + if(response.isSuccessful() && response.body() != null && response.body().getArtist() != null) { + addToMutableLiveData(list, MappingUtil.mapArtistWithAlbum(response.body().getArtist())); + } } @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(@NonNull Call call, @NonNull Throwable t) { } }); @@ -120,12 +123,14 @@ public class ArtistRepository { .getArtist(id) .enqueue(new Callback() { @Override - public void onResponse(Call call, Response response) { - artist.setValue(MappingUtil.mapArtistWithAlbum(response.body().getArtist())); + public void onResponse(@NonNull Call call, @NonNull Response response) { + if(response.isSuccessful() && response.body() != null && response.body().getArtist() != null) { + artist.setValue(MappingUtil.mapArtistWithAlbum(response.body().getArtist())); + } } @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(@NonNull Call call, @NonNull Throwable t) { } }); @@ -144,12 +149,14 @@ public class ArtistRepository { .getArtistInfo2(id) .enqueue(new Callback() { @Override - public void onResponse(Call call, Response response) { - if (response.body().getArtistInfo2() != null) artistFullInfo.setValue(MappingUtil.mapArtist(response.body().getArtistInfo2())); + public void onResponse(@NonNull Call call, @NonNull Response response) { + if(response.isSuccessful() && response.body() != null && response.body().getArtistInfo2() != null) { + artistFullInfo.setValue(MappingUtil.mapArtist(response.body().getArtistInfo2())); + } } @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(@NonNull Call call, @NonNull Throwable t) { } }); @@ -163,12 +170,12 @@ public class ArtistRepository { .star(null, null, id) .enqueue(new Callback() { @Override - public void onResponse(Call call, Response response) { + public void onResponse(@NonNull Call call, @NonNull Response response) { } @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(@NonNull Call call, @NonNull Throwable t) { } }); @@ -180,12 +187,12 @@ public class ArtistRepository { .unstar(null, null, id) .enqueue(new Callback() { @Override - public void onResponse(Call call, Response response) { + public void onResponse(@NonNull Call call, @NonNull Response response) { } @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(@NonNull Call call, @NonNull Throwable t) { } }); @@ -197,12 +204,12 @@ public class ArtistRepository { .setRating(id, rating) .enqueue(new Callback() { @Override - public void onResponse(Call call, Response response) { + public void onResponse(@NonNull Call call, @NonNull Response response) { } @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(@NonNull Call call, @NonNull Throwable t) { } }); @@ -216,14 +223,14 @@ public class ArtistRepository { .getArtist(id) .enqueue(new Callback() { @Override - public void onResponse(Call call, Response response) { - if (response.body().getStatus().getValue().equals(ResponseStatus.OK)) { + public void onResponse(@NonNull Call call, @NonNull Response response) { + if(response.isSuccessful() && response.body() != null && response.body().getArtist() != null) { artist.setValue(MappingUtil.mapArtist(response.body().getArtist())); } } @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(@NonNull Call call, @NonNull Throwable t) { } }); @@ -237,15 +244,18 @@ public class ArtistRepository { .getSimilarSongs2(artist.getId(), count) .enqueue(new Callback() { @Override - public void onResponse(Call call, Response response) { - if (response.body().getStatus().getValue().equals(ResponseStatus.OK)) { - List songs = new ArrayList<>(MappingUtil.mapSong(response.body().getSimilarSongs2().getSongs())); - callback.onLoadMedia(songs); + public void onResponse(@NonNull Call call, @NonNull Response response) { + List songs = new ArrayList<>(); + + if(response.isSuccessful() && response.body() != null && response.body().getSimilarSongs2() != null) { + songs.addAll(MappingUtil.mapSong(response.body().getSimilarSongs2().getSongs())); } + + callback.onLoadMedia(songs); } @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(@NonNull Call call, @NonNull Throwable t) { callback.onLoadMedia(new ArrayList<>()); } }); @@ -259,8 +269,8 @@ public class ArtistRepository { .getArtist(artist.getId()) .enqueue(new Callback() { @Override - public void onResponse(Call call, Response response) { - if (response.body().getStatus().getValue().equals(ResponseStatus.OK)) { + public void onResponse(@NonNull Call call, @NonNull Response response) { + if (response.isSuccessful() && response.body() != null && response.body().getArtist() != null && response.body().getArtist().getAlbums() != null) { List albums = new ArrayList<>(MappingUtil.mapAlbum(response.body().getArtist().getAlbums())); if (albums.size() > 0) { @@ -280,7 +290,7 @@ public class ArtistRepository { } @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(@NonNull Call call, @NonNull Throwable t) { } }); @@ -296,14 +306,14 @@ public class ArtistRepository { .getTopSongs(artistName, count) .enqueue(new Callback() { @Override - public void onResponse(Call call, Response response) { - if (response.body().getTopSongs() != null) { + public void onResponse(@NonNull Call call, @NonNull Response response) { + if (response.isSuccessful() && response.body() != null && response.body().getTopSongs() != null) { topSongs.setValue(MappingUtil.mapSong(response.body().getTopSongs().getSongs())); } } @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(@NonNull Call call, @NonNull Throwable t) { } }); @@ -313,7 +323,7 @@ public class ArtistRepository { private void addToMutableLiveData(MutableLiveData> liveData, Artist artist) { List liveArtists = liveData.getValue(); - liveArtists.add(artist); + if(liveArtists != null) liveArtists.add(artist); liveData.setValue(liveArtists); } }