mirror of
https://github.com/antebudimir/tempus.git
synced 2026-01-01 01:53:31 +00:00
AlbumPageFragment now correctly retrieves information locally or from the server
This commit is contained in:
parent
eeae6bbce5
commit
589c3289d4
10 changed files with 37 additions and 12 deletions
|
|
@ -3,6 +3,7 @@ package com.cappielloantonio.play.viewmodel;
|
|||
import android.app.Application;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.lifecycle.AndroidViewModel;
|
||||
import androidx.lifecycle.LiveData;
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
|
|
@ -12,28 +13,38 @@ 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.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 LiveData<List<Song>> songLiveList = new MutableLiveData<>();
|
||||
private LiveData<Album> albumInfo = new MutableLiveData<>();
|
||||
private MutableLiveData<List<Song>> songLiveList = new MutableLiveData<>();
|
||||
|
||||
private Album album;
|
||||
private boolean isOffline;
|
||||
|
||||
public AlbumPageViewModel(@NonNull Application application) {
|
||||
super(application);
|
||||
|
||||
albumRepository = new AlbumRepository(application);
|
||||
artistRepository = new ArtistRepository(application);
|
||||
downloadRepository = new DownloadRepository(application);
|
||||
}
|
||||
|
||||
public LiveData<List<Song>> getAlbumSongLiveList() {
|
||||
songLiveList = albumRepository.getAlbumTracks(album.getId());
|
||||
public LiveData<List<Song>> getAlbumSongLiveList(FragmentActivity activity) {
|
||||
if(isOffline) {
|
||||
downloadRepository.getLiveDownloadFromAlbum(album.getId()).observe(activity, downloads -> songLiveList.postValue(MappingUtil.mapDownloadToSong(downloads)));
|
||||
} else {
|
||||
songLiveList = albumRepository.getAlbumTracks(album.getId());
|
||||
}
|
||||
|
||||
return songLiveList;
|
||||
}
|
||||
|
||||
|
|
@ -45,6 +56,10 @@ public class AlbumPageViewModel extends AndroidViewModel {
|
|||
this.album = album;
|
||||
}
|
||||
|
||||
public void setOffline(boolean offline) {
|
||||
isOffline = offline;
|
||||
}
|
||||
|
||||
public LiveData<Artist> getArtist() {
|
||||
return artistRepository.getArtistInfo(album.getArtistId());
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue