tempus/app/src/main/java/com/cappielloantonio/tempo/viewmodel/AlbumPageViewModel.java

60 lines
1.9 KiB
Java
Raw Normal View History

2023-06-17 15:30:23 +02:00
package com.cappielloantonio.tempo.viewmodel;
2020-11-23 09:28:20 +01:00
import android.app.Application;
import androidx.annotation.NonNull;
import androidx.lifecycle.AndroidViewModel;
import androidx.lifecycle.LifecycleOwner;
2020-11-23 09:28:20 +01:00
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
2020-11-23 09:28:20 +01:00
2023-06-17 15:30:23 +02:00
import com.cappielloantonio.tempo.repository.AlbumRepository;
import com.cappielloantonio.tempo.repository.ArtistRepository;
import com.cappielloantonio.tempo.subsonic.models.AlbumID3;
import com.cappielloantonio.tempo.subsonic.models.AlbumInfo;
2023-06-17 15:30:23 +02:00
import com.cappielloantonio.tempo.subsonic.models.ArtistID3;
import com.cappielloantonio.tempo.subsonic.models.Child;
2020-11-23 09:28:20 +01:00
import java.util.List;
public class AlbumPageViewModel extends AndroidViewModel {
2021-09-02 14:12:13 +02:00
private final AlbumRepository albumRepository;
private final ArtistRepository artistRepository;
private String albumId;
private String artistId;
private final MutableLiveData<AlbumID3> album = new MutableLiveData<>(null);
2020-11-23 09:28:20 +01:00
public AlbumPageViewModel(@NonNull Application application) {
super(application);
2023-03-10 15:21:02 +01:00
albumRepository = new AlbumRepository();
artistRepository = new ArtistRepository();
2020-11-23 09:28:20 +01:00
}
2023-03-10 16:20:33 +01:00
public LiveData<List<Child>> getAlbumSongLiveList() {
return albumRepository.getAlbumTracks(albumId);
2021-04-26 19:50:23 +02:00
}
public MutableLiveData<AlbumID3> getAlbum() {
2020-11-23 09:28:20 +01:00
return album;
}
public void setAlbum(LifecycleOwner owner, AlbumID3 album) {
this.albumId = album.getId();
this.album.postValue(album);
this.artistId = album.getArtistId();
albumRepository.getAlbum(album.getId()).observe(owner, albums -> {
if (albums != null) this.album.setValue(albums);
});
2020-11-23 09:28:20 +01:00
}
public LiveData<ArtistID3> getArtist() {
return artistRepository.getArtistInfo(artistId);
}
public LiveData<AlbumInfo> getAlbumInfo() {
return albumRepository.getAlbumInfo(albumId);
}
2020-11-23 09:28:20 +01:00
}