package com.cappielloantonio.play.viewmodel; import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; 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.RecentSearchRepository; import com.cappielloantonio.play.repository.SongRepository; import java.util.List; public class SearchViewModel extends AndroidViewModel { private SongRepository songRepository; private AlbumRepository albumRepository; private ArtistRepository artistRepository; private RecentSearchRepository recentSearchRepository; private LiveData> searchSong; private LiveData> searchAlbum; private LiveData> searchArtist; private LiveData> recentSearches; public SearchViewModel(@NonNull Application application) { super(application); songRepository = new SongRepository(application); albumRepository = new AlbumRepository(application); artistRepository = new ArtistRepository(application); recentSearchRepository = new RecentSearchRepository(application); } public LiveData> searchSong(String title) { searchSong = songRepository.searchListLiveSong(title); return searchSong; } public LiveData> searchAlbum(String name) { searchAlbum = albumRepository.searchListLiveAlbum(name); return searchAlbum; } public LiveData> searchArtist(String name) { searchArtist = artistRepository.searchListLiveArtist(name); return searchArtist; } public LiveData> getSearchList() { recentSearches = recentSearchRepository.getListLiveRecentSearches(); return recentSearches; } public void insertNewSearch(String search) { recentSearchRepository.insert(new RecentSearch(search)); } public void deleteAllRecentSearch() { recentSearchRepository.deleteAll(); } }