diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumBottomSheetViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumBottomSheetViewModel.java index fad33471..435e11f7 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumBottomSheetViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumBottomSheetViewModel.java @@ -16,8 +16,8 @@ import com.cappielloantonio.play.repository.ArtistRepository; import java.util.List; public class AlbumBottomSheetViewModel extends AndroidViewModel { - private AlbumRepository albumRepository; - private ArtistRepository artistRepository; + private final AlbumRepository albumRepository; + private final ArtistRepository artistRepository; private Album album; diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumCatalogueViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumCatalogueViewModel.java index a7c84e16..7e9415bb 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumCatalogueViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumCatalogueViewModel.java @@ -11,9 +11,7 @@ import androidx.lifecycle.MutableLiveData; import com.cappielloantonio.play.App; import com.cappielloantonio.play.interfaces.MediaCallback; import com.cappielloantonio.play.model.Album; -import com.cappielloantonio.play.repository.AlbumRepository; import com.cappielloantonio.play.subsonic.models.AlbumID3; -import com.cappielloantonio.play.subsonic.models.ResponseStatus; import com.cappielloantonio.play.subsonic.models.SubsonicResponse; import com.cappielloantonio.play.util.MappingUtil; @@ -24,7 +22,7 @@ import retrofit2.Call; import retrofit2.Callback; public class AlbumCatalogueViewModel extends AndroidViewModel { - private MutableLiveData> albumList = new MutableLiveData<>(new ArrayList<>()); + private final MutableLiveData> albumList = new MutableLiveData<>(new ArrayList<>()); private int page = 0; @@ -45,7 +43,7 @@ public class AlbumCatalogueViewModel extends AndroidViewModel { @Override public void onLoadMedia(List media) { List liveAlbum = albumList.getValue(); - if(liveAlbum == null) liveAlbum = new ArrayList<>(); + if (liveAlbum == null) liveAlbum = new ArrayList<>(); liveAlbum.addAll(MappingUtil.mapAlbum((List) media)); albumList.setValue(liveAlbum); @@ -63,8 +61,8 @@ public class AlbumCatalogueViewModel extends AndroidViewModel { .getAlbumList2("alphabeticalByName", size, offset, null, null) .enqueue(new Callback() { @Override - public void onResponse(Call call, retrofit2.Response response) { - if (response.body().getStatus().getValue().equals(ResponseStatus.OK)) { + public void onResponse(@NonNull Call call, @NonNull retrofit2.Response response) { + if (response.isSuccessful() && response.body() != null && response.body().getAlbumList2() != null) { List albumList = new ArrayList<>(); albumList.addAll(response.body().getAlbumList2().getAlbums()); callback.onLoadMedia(albumList); @@ -72,7 +70,7 @@ public class AlbumCatalogueViewModel extends AndroidViewModel { } @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(@NonNull Call call, @NonNull Throwable t) { callback.onError(new Exception(t.getMessage())); } }); diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumListPageViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumListPageViewModel.java index 33c72882..618971e0 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumListPageViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumListPageViewModel.java @@ -10,7 +10,6 @@ import androidx.lifecycle.MutableLiveData; import com.cappielloantonio.play.model.Album; import com.cappielloantonio.play.model.Artist; -import com.cappielloantonio.play.model.Song; import com.cappielloantonio.play.repository.AlbumRepository; import com.cappielloantonio.play.repository.DownloadRepository; import com.cappielloantonio.play.util.MappingUtil; @@ -19,8 +18,8 @@ import java.util.ArrayList; import java.util.List; public class AlbumListPageViewModel extends AndroidViewModel { - private AlbumRepository albumRepository; - private DownloadRepository downloadRepository; + private final AlbumRepository albumRepository; + private final DownloadRepository downloadRepository; public String title; public Artist artist; @@ -39,32 +38,22 @@ public class AlbumListPageViewModel extends AndroidViewModel { switch (title) { case Album.RECENTLY_PLAYED: - albumRepository.getAlbums("recent", 500, null, null).observe(activity, albums -> { - albumList.setValue(albums); - }); + albumRepository.getAlbums("recent", 500, null, null).observe(activity, albums -> albumList.setValue(albums)); break; case Album.MOST_PLAYED: - albumRepository.getAlbums("frequent", 500, null, null).observe(activity, albums -> { - albumList.setValue(albums); - }); + albumRepository.getAlbums("frequent", 500, null, null).observe(activity, albums -> albumList.setValue(albums)); break; case Album.RECENTLY_ADDED: - albumRepository.getAlbums("newest", 500, null, null).observe(activity, albums -> { - albumList.setValue(albums); - }); + albumRepository.getAlbums("newest", 500, null, null).observe(activity, albums -> albumList.setValue(albums)); break; case Album.STARRED: albumList = albumRepository.getStarredAlbums(); break; case Album.DOWNLOADED: - downloadRepository.getLiveDownload().observe(activity, downloads -> { - albumList.setValue(MappingUtil.mapDownloadToAlbum(downloads)); - }); + downloadRepository.getLiveDownload().observe(activity, downloads -> albumList.setValue(MappingUtil.mapDownloadToAlbum(downloads))); break; case Album.FROM_ARTIST: - downloadRepository.getLiveDownloadFromArtist(artist.getId()).observe(activity, downloads -> { - albumList.setValue(MappingUtil.mapDownloadToAlbum(downloads)); - }); + downloadRepository.getLiveDownloadFromArtist(artist.getId()).observe(activity, downloads -> albumList.setValue(MappingUtil.mapDownloadToAlbum(downloads))); break; } diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumPageViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumPageViewModel.java index e02a7782..34698862 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumPageViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumPageViewModel.java @@ -14,16 +14,14 @@ import com.cappielloantonio.play.model.Song; import com.cappielloantonio.play.repository.AlbumRepository; import com.cappielloantonio.play.repository.ArtistRepository; import com.cappielloantonio.play.repository.DownloadRepository; -import com.cappielloantonio.play.repository.SongRepository; import com.cappielloantonio.play.util.MappingUtil; -import com.cappielloantonio.play.util.MusicUtil; import java.util.List; public class AlbumPageViewModel extends AndroidViewModel { - private AlbumRepository albumRepository; - private ArtistRepository artistRepository; - private DownloadRepository downloadRepository; + private final AlbumRepository albumRepository; + private final ArtistRepository artistRepository; + private final DownloadRepository downloadRepository; private MutableLiveData> songLiveList = new MutableLiveData<>(); @@ -39,7 +37,7 @@ public class AlbumPageViewModel extends AndroidViewModel { } public LiveData> getAlbumSongLiveList(FragmentActivity activity) { - if(isOffline) { + if (isOffline) { downloadRepository.getLiveDownloadFromAlbum(album.getId()).observe(activity, downloads -> songLiveList.postValue(MappingUtil.mapDownloadToSong(downloads))); } else { songLiveList = albumRepository.getAlbumTracks(album.getId()); diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistBottomSheetViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistBottomSheetViewModel.java index 3fa7cf12..6f330fa2 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistBottomSheetViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistBottomSheetViewModel.java @@ -7,10 +7,9 @@ import androidx.lifecycle.AndroidViewModel; import com.cappielloantonio.play.model.Artist; import com.cappielloantonio.play.repository.AlbumRepository; -import com.cappielloantonio.play.repository.ArtistRepository; public class ArtistBottomSheetViewModel extends AndroidViewModel { - private AlbumRepository albumRepository; + private final AlbumRepository albumRepository; private Artist artist; diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistCatalogueViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistCatalogueViewModel.java index 87fee3f7..1781f59f 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistCatalogueViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistCatalogueViewModel.java @@ -10,10 +10,8 @@ import androidx.lifecycle.MutableLiveData; import com.cappielloantonio.play.App; import com.cappielloantonio.play.model.Artist; -import com.cappielloantonio.play.repository.ArtistRepository; import com.cappielloantonio.play.subsonic.models.ArtistID3; 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 +22,7 @@ import retrofit2.Call; import retrofit2.Callback; public class ArtistCatalogueViewModel extends AndroidViewModel { - private MutableLiveData> artistList = new MutableLiveData<>(new ArrayList<>()); + private final MutableLiveData> artistList = new MutableLiveData<>(new ArrayList<>()); public ArtistCatalogueViewModel(@NonNull Application application) { super(application); @@ -40,8 +38,8 @@ public class ArtistCatalogueViewModel extends AndroidViewModel { .getArtists() .enqueue(new Callback() { @Override - public void onResponse(Call call, retrofit2.Response response) { - if (response.body().getStatus().getValue().equals(ResponseStatus.OK)) { + public void onResponse(@NonNull Call call, @NonNull retrofit2.Response response) { + if (response.isSuccessful() && response.body() != null && response.body().getArtists() != null) { List artists = new ArrayList<>(); for (IndexID3 index : response.body().getArtists().getIndices()) { @@ -53,7 +51,7 @@ public class ArtistCatalogueViewModel extends AndroidViewModel { } @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(@NonNull Call call, @NonNull Throwable t) { } }); diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistListPageViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistListPageViewModel.java index a208a7fb..07e0d313 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistListPageViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistListPageViewModel.java @@ -21,8 +21,8 @@ import java.util.TreeSet; import java.util.stream.Collectors; public class ArtistListPageViewModel extends AndroidViewModel { - private ArtistRepository artistRepository; - private DownloadRepository downloadRepository; + private final ArtistRepository artistRepository; + private final DownloadRepository downloadRepository; public String title; diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistPageViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistPageViewModel.java index 27410231..ed94823e 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistPageViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistPageViewModel.java @@ -5,25 +5,18 @@ import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; -import androidx.lifecycle.MutableLiveData; import com.cappielloantonio.play.model.Album; import com.cappielloantonio.play.model.Artist; import com.cappielloantonio.play.model.Song; import com.cappielloantonio.play.repository.AlbumRepository; import com.cappielloantonio.play.repository.ArtistRepository; -import com.cappielloantonio.play.repository.SongRepository; -import java.util.ArrayList; import java.util.List; public class ArtistPageViewModel extends AndroidViewModel { - private AlbumRepository albumRepository; - private ArtistRepository artistRepository; - - private LiveData> songList = new MutableLiveData<>(); - private LiveData> albumList = new MutableLiveData<>(); - private LiveData artistInfo = new MutableLiveData<>(); + private final AlbumRepository albumRepository; + private final ArtistRepository artistRepository; private Artist artist; @@ -35,18 +28,15 @@ public class ArtistPageViewModel extends AndroidViewModel { } public LiveData> getAlbumList() { - albumList = albumRepository.getArtistAlbums(artist.getId()); - return albumList; + return albumRepository.getArtistAlbums(artist.getId()); } public LiveData getArtistInfo(String id) { - artistInfo = artistRepository.getArtistFullInfo(id); - return artistInfo; + return artistRepository.getArtistFullInfo(id); } public LiveData> getArtistTopSongList(int count) { - songList = artistRepository.getTopSongs(artist.getName(), count); - return songList; + return artistRepository.getTopSongs(artist.getName(), count); } public Artist getArtist() { diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/DownloadViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/DownloadViewModel.java index 53900f86..de4ea641 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/DownloadViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/DownloadViewModel.java @@ -32,9 +32,7 @@ public class DownloadViewModel extends AndroidViewModel { } public LiveData> getDownloadedArtists(LifecycleOwner owner, int size) { - downloadRepository.getLiveDownloadSample(size, true, false, false).observe(owner, downloads -> { - downloadedArtistSample.postValue(MappingUtil.mapDownloadToArtist(downloads)); - }); + downloadRepository.getLiveDownloadSample(size, true, false, false).observe(owner, downloads -> downloadedArtistSample.postValue(MappingUtil.mapDownloadToArtist(downloads))); return downloadedArtistSample; } diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/FilterViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/FilterViewModel.java index 79c50abd..70b740fe 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/FilterViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/FilterViewModel.java @@ -13,10 +13,10 @@ import java.util.ArrayList; import java.util.List; public class FilterViewModel extends AndroidViewModel { - private GenreRepository genreRepository; + private final GenreRepository genreRepository; - private ArrayList selectedFiltersID = new ArrayList<>(); - private ArrayList selectedFilters = new ArrayList<>(); + private final ArrayList selectedFiltersID = new ArrayList<>(); + private final ArrayList selectedFilters = new ArrayList<>(); public FilterViewModel(@NonNull Application application) { super(application); diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/GenreCatalogueViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/GenreCatalogueViewModel.java index bf17b31b..cc449d37 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/GenreCatalogueViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/GenreCatalogueViewModel.java @@ -12,9 +12,7 @@ import com.cappielloantonio.play.repository.GenreRepository; import java.util.List; public class GenreCatalogueViewModel extends AndroidViewModel { - private GenreRepository genreRepository; - - private LiveData> genreList; + private final GenreRepository genreRepository; public GenreCatalogueViewModel(@NonNull Application application) { super(application); diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/HomeViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/HomeViewModel.java index c2b99573..63f3148c 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/HomeViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/HomeViewModel.java @@ -10,11 +10,9 @@ import androidx.lifecycle.MutableLiveData; import com.cappielloantonio.play.model.Album; import com.cappielloantonio.play.model.Artist; -import com.cappielloantonio.play.model.Download; import com.cappielloantonio.play.model.Song; import com.cappielloantonio.play.repository.AlbumRepository; import com.cappielloantonio.play.repository.ArtistRepository; -import com.cappielloantonio.play.repository.DownloadRepository; import com.cappielloantonio.play.repository.SongRepository; import java.util.List; diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/LibraryViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/LibraryViewModel.java index 9c3460b3..7e2fd26c 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/LibraryViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/LibraryViewModel.java @@ -18,7 +18,6 @@ import com.cappielloantonio.play.repository.GenreRepository; import com.cappielloantonio.play.repository.PlaylistRepository; import java.util.Calendar; -import java.util.Collections; import java.util.Comparator; import java.util.List; diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/LoginViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/LoginViewModel.java index 2cdef0c3..6fdd7973 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/LoginViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/LoginViewModel.java @@ -1,33 +1,19 @@ package com.cappielloantonio.play.viewmodel; import android.app.Application; -import android.content.Context; import androidx.annotation.NonNull; import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; -import androidx.lifecycle.MutableLiveData; -import com.cappielloantonio.play.App; -import com.cappielloantonio.play.interfaces.MediaCallback; -import com.cappielloantonio.play.model.Album; import com.cappielloantonio.play.model.Server; -import com.cappielloantonio.play.model.Song; -import com.cappielloantonio.play.repository.AlbumRepository; import com.cappielloantonio.play.repository.ServerRepository; -import com.cappielloantonio.play.subsonic.models.AlbumID3; -import com.cappielloantonio.play.subsonic.models.ResponseStatus; -import com.cappielloantonio.play.subsonic.models.SubsonicResponse; -import com.cappielloantonio.play.util.MappingUtil; -import java.util.ArrayList; import java.util.List; -import retrofit2.Call; -import retrofit2.Callback; - public class LoginViewModel extends AndroidViewModel { - private ServerRepository serverRepository; + private final ServerRepository serverRepository; + private Server toEdit = null; public LoginViewModel(@NonNull Application application) { @@ -45,10 +31,9 @@ public class LoginViewModel extends AndroidViewModel { } public void deleteServer(Server server) { - if(server != null) { + if (server != null) { serverRepository.delete(server); - } - else if(toEdit != null) { + } else if (toEdit != null) { serverRepository.delete(toEdit); } } diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/MainViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/MainViewModel.java index 0e3a2a7f..93d4fc3e 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/MainViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/MainViewModel.java @@ -10,7 +10,7 @@ import com.cappielloantonio.play.repository.QueueRepository; public class MainViewModel extends AndroidViewModel { private static final String TAG = "SearchViewModel"; - private Application application; + private final Application application; public MainViewModel(@NonNull Application application) { super(application); diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlayerBottomSheetViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlayerBottomSheetViewModel.java index ad48295c..a4fb344c 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlayerBottomSheetViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlayerBottomSheetViewModel.java @@ -17,10 +17,10 @@ import java.util.List; public class PlayerBottomSheetViewModel extends AndroidViewModel { private static final String TAG = "PlayerBottomSheetViewModel"; - private SongRepository songRepository; - private QueueRepository queueRepository; + private final SongRepository songRepository; + private final QueueRepository queueRepository; - private LiveData> queueSong; + private final LiveData> queueSong; public PlayerBottomSheetViewModel(@NonNull Application application) { super(application); @@ -43,12 +43,14 @@ public class PlayerBottomSheetViewModel extends AndroidViewModel { public void setFavorite() { Song song = MusicPlayerRemote.getCurrentSong(); - if (song.isFavorite()) { - songRepository.unstar(song.getId()); - song.setFavorite(false); - } else { - songRepository.star(song.getId()); - song.setFavorite(true); + if (song != null) { + if (song.isFavorite()) { + songRepository.unstar(song.getId()); + song.setFavorite(false); + } else { + songRepository.star(song.getId()); + song.setFavorite(true); + } } } diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistCatalogueViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistCatalogueViewModel.java index 2d39d5ba..eac3554e 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistCatalogueViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistCatalogueViewModel.java @@ -1,31 +1,18 @@ package com.cappielloantonio.play.viewmodel; import android.app.Application; -import android.content.Context; import androidx.annotation.NonNull; import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; -import androidx.lifecycle.MutableLiveData; -import com.cappielloantonio.play.App; import com.cappielloantonio.play.model.Playlist; import com.cappielloantonio.play.repository.PlaylistRepository; -import com.cappielloantonio.play.subsonic.models.ResponseStatus; -import com.cappielloantonio.play.subsonic.models.SubsonicResponse; -import com.cappielloantonio.play.util.MappingUtil; -import java.util.ArrayList; import java.util.List; -import retrofit2.Call; -import retrofit2.Callback; - public class PlaylistCatalogueViewModel extends AndroidViewModel { - private MutableLiveData> playlists; - - private PlaylistRepository playlistRepository; - private String query = ""; + private final PlaylistRepository playlistRepository; public PlaylistCatalogueViewModel(@NonNull Application application) { super(application); diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistChooserViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistChooserViewModel.java index eaeb3574..302c7bb5 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistChooserViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistChooserViewModel.java @@ -16,9 +16,9 @@ import java.util.Collections; import java.util.List; public class PlaylistChooserViewModel extends AndroidViewModel { - private PlaylistRepository playlistRepository; + private final PlaylistRepository playlistRepository; - private MutableLiveData> playlists; + private final MutableLiveData> playlists = new MutableLiveData<>(null); private Song toAdd; public PlaylistChooserViewModel(@NonNull Application application) { @@ -26,7 +26,8 @@ public class PlaylistChooserViewModel extends AndroidViewModel { playlistRepository = new PlaylistRepository(application); - playlists = playlistRepository.getPlaylists(false, -1); + playlistRepository.getPlaylists(false, -1).observeForever(playlists::postValue); + } public LiveData> getPlaylistList() { diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistEditorViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistEditorViewModel.java index b2a5efda..f70d1a79 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistEditorViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistEditorViewModel.java @@ -20,7 +20,7 @@ import java.util.Objects; public class PlaylistEditorViewModel extends AndroidViewModel { private static final String TAG = "PlaylistEditorViewModel"; - private PlaylistRepository playlistRepository; + private final PlaylistRepository playlistRepository; private Song toAdd; private Playlist toEdit; @@ -88,8 +88,10 @@ public class PlaylistEditorViewModel extends AndroidViewModel { List songs = songLiveList.getValue(); ArrayList ids = new ArrayList<>(); - for (Song song : songs) { - ids.add(song.getId()); + if (songs != null && !songs.isEmpty()) { + for (Song song : songs) { + ids.add(song.getId()); + } } return ids; diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistPageViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistPageViewModel.java index f8259069..0193cdef 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistPageViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistPageViewModel.java @@ -13,7 +13,7 @@ import com.cappielloantonio.play.repository.PlaylistRepository; import java.util.List; public class PlaylistPageViewModel extends AndroidViewModel { - private PlaylistRepository playlistRepository; + private final PlaylistRepository playlistRepository; private Playlist playlist; diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/RatingViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/RatingViewModel.java index f2330a98..80635b83 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/RatingViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/RatingViewModel.java @@ -14,9 +14,9 @@ import com.cappielloantonio.play.repository.ArtistRepository; import com.cappielloantonio.play.repository.SongRepository; public class RatingViewModel extends AndroidViewModel { - private SongRepository songRepository; - private AlbumRepository albumRepository; - private ArtistRepository artistRepository; + private final SongRepository songRepository; + private final AlbumRepository albumRepository; + private final ArtistRepository artistRepository; private Song song; private Album album; diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/SearchViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/SearchViewModel.java index a0ba311b..d1ca9d77 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/SearchViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/SearchViewModel.java @@ -5,18 +5,12 @@ import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; -import androidx.lifecycle.MutableLiveData; import com.cappielloantonio.play.model.Album; import com.cappielloantonio.play.model.Artist; -import com.cappielloantonio.play.model.Genre; import com.cappielloantonio.play.model.RecentSearch; import com.cappielloantonio.play.model.Song; -import com.cappielloantonio.play.repository.AlbumRepository; -import com.cappielloantonio.play.repository.ArtistRepository; -import com.cappielloantonio.play.repository.GenreRepository; import com.cappielloantonio.play.repository.SearchingRepository; -import com.cappielloantonio.play.repository.SongRepository; import java.util.ArrayList; import java.util.List; @@ -26,11 +20,7 @@ public class SearchViewModel extends AndroidViewModel { private String query = ""; - private SearchingRepository searchingRepository; - - private LiveData> searchSong = new MutableLiveData<>(new ArrayList<>()); - private LiveData> searchAlbum = new MutableLiveData<>(new ArrayList<>()); - private LiveData> searchArtist = new MutableLiveData<>(new ArrayList<>()); + private final SearchingRepository searchingRepository; public SearchViewModel(@NonNull Application application) { super(application); @@ -51,18 +41,15 @@ public class SearchViewModel extends AndroidViewModel { } public LiveData> searchSong(String title) { - searchSong = searchingRepository.getSearchedSongs(title); - return searchSong; + return searchingRepository.getSearchedSongs(title); } public LiveData> searchAlbum(String name) { - searchAlbum = searchingRepository.getSearchedAlbums(name); - return searchAlbum; + return searchingRepository.getSearchedAlbums(name); } public LiveData> searchArtist(String name) { - searchArtist = searchingRepository.getSearchedArtists(name); - return searchArtist; + return searchingRepository.getSearchedArtists(name); } public void insertNewSearch(String search) { diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/SettingViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/SettingViewModel.java index e28be490..23e1c4f0 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/SettingViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/SettingViewModel.java @@ -6,14 +6,12 @@ import androidx.annotation.NonNull; import androidx.lifecycle.AndroidViewModel; import com.cappielloantonio.play.interfaces.ScanCallback; -import com.cappielloantonio.play.repository.QueueRepository; import com.cappielloantonio.play.repository.ScanRepository; -import com.cappielloantonio.play.repository.SongRepository; public class SettingViewModel extends AndroidViewModel { private static final String TAG = "SettingViewModel"; - private ScanRepository scanRepository; + private final ScanRepository scanRepository; public SettingViewModel(@NonNull Application application) { super(application); diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/SongBottomSheetViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/SongBottomSheetViewModel.java index 977aa708..9e7ee2b3 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/SongBottomSheetViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/SongBottomSheetViewModel.java @@ -14,9 +14,9 @@ import com.cappielloantonio.play.repository.ArtistRepository; import com.cappielloantonio.play.repository.SongRepository; public class SongBottomSheetViewModel extends AndroidViewModel { - private SongRepository songRepository; - private AlbumRepository albumRepository; - private ArtistRepository artistRepository; + private final SongRepository songRepository; + private final AlbumRepository albumRepository; + private final ArtistRepository artistRepository; private Song song; diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/SongListPageViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/SongListPageViewModel.java index eb08d417..74d75bd4 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/SongListPageViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/SongListPageViewModel.java @@ -22,9 +22,9 @@ import java.util.ArrayList; import java.util.List; public class SongListPageViewModel extends AndroidViewModel { - private SongRepository songRepository; - private ArtistRepository artistRepository; - private DownloadRepository downloadRepository; + private final SongRepository songRepository; + private final ArtistRepository artistRepository; + private final DownloadRepository downloadRepository; public String title; public Genre genre;