⬇️ Import legacy playlists
This commit is contained in:
parent
51d2c17ad7
commit
45b93ed3aa
13 changed files with 175 additions and 65 deletions
|
@ -24,6 +24,7 @@ class LibraryViewModel(
|
|||
private val songs = MutableLiveData<List<Song>>()
|
||||
private val artists = MutableLiveData<List<Artist>>()
|
||||
private val playlists = MutableLiveData<List<PlaylistWithSongs>>()
|
||||
private val legacyPlaylists = MutableLiveData<List<Playlist>>()
|
||||
private val genres = MutableLiveData<List<Genre>>()
|
||||
private val home = MutableLiveData<List<Home>>()
|
||||
|
||||
|
@ -58,6 +59,11 @@ class LibraryViewModel(
|
|||
return playlists
|
||||
}
|
||||
|
||||
fun getLegacyPlaylist(): LiveData<List<Playlist>> {
|
||||
fetchLegacyPlaylist()
|
||||
return legacyPlaylists
|
||||
}
|
||||
|
||||
fun getGenre(): LiveData<List<Genre>> {
|
||||
fetchGenres()
|
||||
return genres
|
||||
|
@ -92,6 +98,12 @@ class LibraryViewModel(
|
|||
}
|
||||
}
|
||||
|
||||
private fun fetchLegacyPlaylist() {
|
||||
viewModelScope.launch(IO) {
|
||||
legacyPlaylists.postValue(repository.fetchLegacyPlaylist())
|
||||
}
|
||||
}
|
||||
|
||||
private fun fetchGenres() {
|
||||
viewModelScope.launch(IO) {
|
||||
genres.postValue(repository.fetchGenres())
|
||||
|
@ -186,6 +198,12 @@ class LibraryViewModel(
|
|||
suspend fun removeSongFromPlaylist(songEntity: SongEntity) =
|
||||
repository.removeSongFromPlaylist(songEntity)
|
||||
|
||||
suspend fun checkPlaylistExists(playlistName: String): List<PlaylistEntity> =
|
||||
repository.checkPlaylistExists(playlistName)
|
||||
|
||||
suspend fun createPlaylist(playlistEntity: PlaylistEntity): Long =
|
||||
repository.createPlaylist(playlistEntity)
|
||||
|
||||
}
|
||||
|
||||
enum class ReloadType {
|
||||
|
|
|
@ -61,7 +61,8 @@ class LibraryFragment : AbsMainActivityFragment(R.layout.fragment_library) {
|
|||
null,
|
||||
navOptions
|
||||
)
|
||||
R.id.action_add_to_playlist -> CreatePlaylistDialog().show(
|
||||
R.id.action_import_playlist -> findNavController(R.id.fragment_container).navigate(R.id.action_import_playlist)
|
||||
R.id.action_add_to_playlist -> CreatePlaylistDialog.create(emptyList()).show(
|
||||
childFragmentManager,
|
||||
"ShowCreatePlaylistDialog"
|
||||
)
|
||||
|
|
|
@ -6,14 +6,14 @@ import android.view.MenuInflater
|
|||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.adapter.playlist.PlaylistAdapter
|
||||
import code.name.monkey.retromusic.fragments.base.AbsRecyclerViewFragment
|
||||
import kotlinx.android.synthetic.main.fragment_library.*
|
||||
|
||||
class PlaylistsFragment : AbsRecyclerViewFragment<PlaylistAdapter, GridLayoutManager>() {
|
||||
class PlaylistsFragment : AbsRecyclerViewFragment<PlaylistAdapter, LinearLayoutManager>() {
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
@ -28,8 +28,8 @@ class PlaylistsFragment : AbsRecyclerViewFragment<PlaylistAdapter, GridLayoutMan
|
|||
override val emptyMessage: Int
|
||||
get() = R.string.no_playlists
|
||||
|
||||
override fun createLayoutManager(): GridLayoutManager {
|
||||
return GridLayoutManager(requireContext(), 1)
|
||||
override fun createLayoutManager(): LinearLayoutManager {
|
||||
return LinearLayoutManager(requireContext())
|
||||
}
|
||||
|
||||
override fun createAdapter(): PlaylistAdapter {
|
||||
|
@ -51,7 +51,7 @@ class PlaylistsFragment : AbsRecyclerViewFragment<PlaylistAdapter, GridLayoutMan
|
|||
menu.removeItem(R.id.action_layout_type)
|
||||
menu.removeItem(R.id.action_sort_order)
|
||||
menu.add(0, R.id.action_add_to_playlist, 0, R.string.new_playlist_title)
|
||||
.setIcon(R.drawable.ic_playlist_add)
|
||||
menu.add(0, R.id.action_import_playlist, 0, R.string.import_playlist)
|
||||
menu.findItem(R.id.action_settings).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER)
|
||||
super.onCreateOptionsMenu(menu, inflater)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue