mirror of
https://github.com/CappielloAntonio/tempo.git
synced 2026-02-01 23:13:36 +00:00
Implementation of song/album/artist page list
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package com.cappielloantonio.play.viewmodel;
|
||||
|
||||
import android.app.Application;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
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.Song;
|
||||
import com.cappielloantonio.play.repository.AlbumRepository;
|
||||
import com.cappielloantonio.play.repository.DownloadRepository;
|
||||
import com.cappielloantonio.play.repository.SongRepository;
|
||||
import com.cappielloantonio.play.util.MappingUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class AlbumListPageViewModel extends AndroidViewModel {
|
||||
private AlbumRepository albumRepository;
|
||||
|
||||
public String title;
|
||||
|
||||
private MutableLiveData<List<Album>> albumList;
|
||||
|
||||
public AlbumListPageViewModel(@NonNull Application application) {
|
||||
super(application);
|
||||
|
||||
albumRepository = new AlbumRepository(application);
|
||||
}
|
||||
|
||||
public LiveData<List<Album>> getAlbumList(FragmentActivity activity) {
|
||||
albumList = new MutableLiveData<>(new ArrayList<>());
|
||||
|
||||
switch (title) {
|
||||
case Song.RECENTLY_PLAYED:
|
||||
albumRepository.getAlbums("recent", 500).observe(activity, albums -> {
|
||||
albumList.setValue(albums);
|
||||
});
|
||||
break;
|
||||
case Song.MOST_PLAYED:
|
||||
albumRepository.getAlbums("frequent", 500).observe(activity, albums -> {
|
||||
albumList.setValue(albums);
|
||||
});
|
||||
break;
|
||||
case Song.RECENTLY_ADDED:
|
||||
albumRepository.getAlbums("newest", 500).observe(activity, albums -> {
|
||||
albumList.setValue(albums);
|
||||
});
|
||||
break;
|
||||
case Song.STARRED:
|
||||
albumList = albumRepository.getStarredAlbums();
|
||||
break;
|
||||
}
|
||||
|
||||
return albumList;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
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;
|
||||
|
||||
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 java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ArtistListPageViewModel extends AndroidViewModel {
|
||||
private ArtistRepository artistRepository;
|
||||
|
||||
public String title;
|
||||
|
||||
private MutableLiveData<List<Artist>> artistList;
|
||||
|
||||
public ArtistListPageViewModel(@NonNull Application application) {
|
||||
super(application);
|
||||
|
||||
artistRepository = new ArtistRepository(application);
|
||||
}
|
||||
|
||||
public LiveData<List<Artist>> getArtistList() {
|
||||
artistList = new MutableLiveData<>(new ArrayList<>());
|
||||
|
||||
switch (title) {
|
||||
case Song.STARRED:
|
||||
artistList = artistRepository.getStarredArtists();
|
||||
break;
|
||||
}
|
||||
|
||||
return artistList;
|
||||
}
|
||||
}
|
||||
@@ -1,37 +1,52 @@
|
||||
package com.cappielloantonio.play.viewmodel;
|
||||
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
|
||||
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.Artist;
|
||||
import com.cappielloantonio.play.model.Download;
|
||||
import com.cappielloantonio.play.model.Genre;
|
||||
import com.cappielloantonio.play.model.Song;
|
||||
import com.cappielloantonio.play.repository.DownloadRepository;
|
||||
import com.cappielloantonio.play.repository.SongRepository;
|
||||
import com.cappielloantonio.play.util.MappingUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class SongListPageViewModel extends AndroidViewModel {
|
||||
private SongRepository songRepository;
|
||||
private DownloadRepository downloadRepository;
|
||||
|
||||
public String title;
|
||||
public Genre genre;
|
||||
public Artist artist;
|
||||
|
||||
public ArrayList<String> filters = new ArrayList<>();
|
||||
public ArrayList<String> filterNames = new ArrayList<>();
|
||||
|
||||
public int year = 0;
|
||||
private SongRepository songRepository;
|
||||
private LiveData<List<Song>> songList;
|
||||
|
||||
private MutableLiveData<List<Song>> songList;
|
||||
|
||||
public SongListPageViewModel(@NonNull Application application) {
|
||||
super(application);
|
||||
|
||||
songRepository = new SongRepository(application);
|
||||
downloadRepository = new DownloadRepository(application);
|
||||
}
|
||||
|
||||
public LiveData<List<Song>> getSongList() {
|
||||
songList = new MutableLiveData<>(new ArrayList<>());
|
||||
|
||||
switch (title) {
|
||||
case Song.RECENTLY_PLAYED:
|
||||
// songList = songRepository.getListLiveRecentlyPlayedSampleSong(100);
|
||||
@@ -54,11 +69,11 @@ public class SongListPageViewModel extends AndroidViewModel {
|
||||
case Song.BY_YEAR:
|
||||
// songList = songRepository.getSongByYearListLive(year);
|
||||
break;
|
||||
case Song.IS_FAVORITE:
|
||||
// songList = songRepository.getListLiveFavoritesSong();
|
||||
case Song.STARRED:
|
||||
songList = songRepository.getStarredSongs();
|
||||
break;
|
||||
case Song.DOWNLOADED:
|
||||
// songList = songRepository.getListLiveDownloadedSong();
|
||||
songList.setValue(MappingUtil.mapDownload(downloadRepository.getLiveDownload()));
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user