Code refactor
This commit is contained in:
parent
5ebeb9c587
commit
0ef83c7136
23 changed files with 156 additions and 94 deletions
|
@ -185,7 +185,7 @@ class LibraryViewModel(
|
|||
}
|
||||
|
||||
fun deleteSongsFromPlaylist(playlists: List<PlaylistEntity>) = viewModelScope.launch(IO) {
|
||||
repository.deleteSongsFromPlaylist(playlists)
|
||||
repository.deletePlaylistSongs(playlists)
|
||||
}
|
||||
|
||||
fun deleteRoomPlaylist(playlists: List<PlaylistEntity>) = viewModelScope.launch(IO) {
|
||||
|
@ -209,7 +209,7 @@ class LibraryViewModel(
|
|||
fun importPlaylists() = viewModelScope.launch(IO) {
|
||||
val playlists = repository.fetchLegacyPlaylist()
|
||||
playlists.forEach { playlist ->
|
||||
val playlistEntity = repository.checkPlaylistExists(playlist.name).firstOrNull();
|
||||
val playlistEntity = repository.checkPlaylistExists(playlist.name).firstOrNull()
|
||||
if (playlistEntity != null) {
|
||||
val songEntities = playlist.getSongs().map {
|
||||
it.toSongEntity(playlistEntity.playListId)
|
||||
|
@ -228,8 +228,9 @@ class LibraryViewModel(
|
|||
|
||||
fun deleteTracks(songs: List<Song>) = viewModelScope.launch(IO) {
|
||||
repository.deleteSongs(songs)
|
||||
fetchPlaylists()
|
||||
loadLibraryContent()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
enum class ReloadType {
|
||||
|
|
|
@ -5,7 +5,6 @@ import android.view.Menu
|
|||
import android.view.MenuInflater
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
|
@ -13,6 +12,7 @@ import code.name.monkey.retromusic.R
|
|||
import code.name.monkey.retromusic.adapter.song.OrderablePlaylistSongAdapter
|
||||
import code.name.monkey.retromusic.adapter.song.SongAdapter
|
||||
import code.name.monkey.retromusic.db.PlaylistWithSongs
|
||||
import code.name.monkey.retromusic.db.toSongs
|
||||
import code.name.monkey.retromusic.extensions.dipToPix
|
||||
import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment
|
||||
import code.name.monkey.retromusic.helper.menu.PlaylistMenuHelper
|
||||
|
@ -49,17 +49,13 @@ class PlaylistDetailsFragment : AbsMainActivityFragment(R.layout.fragment_playli
|
|||
|
||||
setUpRecyclerView()
|
||||
|
||||
viewModel.getSongs().observe(viewLifecycleOwner, Observer {
|
||||
songs(it)
|
||||
viewModel.getSongs().observe(viewLifecycleOwner, {
|
||||
songs(it.toSongs())
|
||||
})
|
||||
}
|
||||
|
||||
private fun setUpRecyclerView() {
|
||||
recyclerView.layoutManager = LinearLayoutManager(requireContext())
|
||||
/*if (playlist is AbsCustomPlaylist) {
|
||||
adapter = SongAdapter(requireActivity(), ArrayList(), R.layout.item_list, null)
|
||||
recyclerView.adapter = adapter
|
||||
} else {*/
|
||||
recyclerViewDragDropManager = RecyclerViewDragDropManager()
|
||||
val animator = RefactoredDefaultItemAnimator()
|
||||
adapter =
|
||||
|
|
|
@ -3,16 +3,11 @@ package code.name.monkey.retromusic.fragments.playlists
|
|||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import code.name.monkey.retromusic.db.PlaylistWithSongs
|
||||
import code.name.monkey.retromusic.db.toSongs
|
||||
import code.name.monkey.retromusic.db.SongEntity
|
||||
import code.name.monkey.retromusic.interfaces.MusicServiceEventListener
|
||||
import code.name.monkey.retromusic.model.Song
|
||||
import code.name.monkey.retromusic.repository.RealRepository
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Dispatchers.Main
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
|
||||
class PlaylistDetailsViewModel(
|
||||
private val realRepository: RealRepository,
|
||||
|
@ -26,17 +21,8 @@ class PlaylistDetailsViewModel(
|
|||
|
||||
fun getPlaylist(): LiveData<PlaylistWithSongs> = _playlist
|
||||
|
||||
fun getSongs(): LiveData<List<Song>> = _playListSongs
|
||||
fun getSongs(): LiveData<List<SongEntity>> = realRepository.playlistSongs(playlist.playlistEntity)
|
||||
|
||||
init {
|
||||
loadPlaylistSongs(playlist)
|
||||
}
|
||||
|
||||
private fun loadPlaylistSongs(playlist: PlaylistWithSongs) =
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
val songs: List<Song> = playlist.songs.toSongs()
|
||||
withContext(Main) { _playListSongs.postValue(songs) }
|
||||
}
|
||||
|
||||
override fun onMediaStoreChanged() {
|
||||
/*if (playlist !is AbsCustomPlaylist) {
|
||||
|
@ -65,4 +51,4 @@ class PlaylistDetailsViewModel(
|
|||
override fun onPlayStateChanged() {}
|
||||
override fun onRepeatModeChanged() {}
|
||||
override fun onShuffleModeChanged() {}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue