Add Room for playlist

Added DAO Queries and Able insert songs to playlist
This commit is contained in:
Hemanth S 2020-08-20 12:19:08 +05:30
parent 6ace96708b
commit b5e07a31d8
16 changed files with 140 additions and 66 deletions

View file

@ -6,8 +6,8 @@ import androidx.core.os.bundleOf
import androidx.fragment.app.DialogFragment
import androidx.lifecycle.lifecycleScope
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.db.PlaylistDatabase
import code.name.monkey.retromusic.db.PlaylistEntity
import code.name.monkey.retromusic.db.RoomPlaylistRepository
import code.name.monkey.retromusic.db.SongEntity
import code.name.monkey.retromusic.extensions.colorButtons
import code.name.monkey.retromusic.extensions.extraNotNull
@ -37,15 +37,13 @@ class AddToRetroPlaylist : DialogFragment() {
return materialDialog(R.string.add_playlist_title)
.setItems(playlistNames.toTypedArray()) { _, which ->
val songs = RealSongRepository(requireContext()).songs()
println(songs.size)
if (which == 0) {
CreateRetroPlaylist().show(requireActivity().supportFragmentManager, "Dialog")
} else {
lifecycleScope.launch(Dispatchers.IO) {
println(Thread.currentThread().name)
val database: PlaylistDatabase = get()
val playlistRepository = get<RoomPlaylistRepository>()
val songEntities = songs.withPlaylistIds(playlistEntities[which - 1])
database.playlistDao().insertSongs(songEntities)
playlistRepository.insertSongs(songEntities)
}
}
dismiss()
@ -56,7 +54,7 @@ class AddToRetroPlaylist : DialogFragment() {
private fun List<Song>.withPlaylistIds(playlistEntity: PlaylistEntity): List<SongEntity> {
val songEntities = map {
SongEntity(it.id, playlistEntity.playlistName)
SongEntity(it.id, playlistEntity.playListId)
}
println(songEntities.size)
return songEntities

View file

@ -7,8 +7,8 @@ import android.view.LayoutInflater
import androidx.fragment.app.DialogFragment
import androidx.lifecycle.lifecycleScope
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.db.PlaylistDatabase
import code.name.monkey.retromusic.db.PlaylistEntity
import code.name.monkey.retromusic.db.RoomPlaylistRepository
import code.name.monkey.retromusic.extensions.colorButtons
import code.name.monkey.retromusic.extensions.materialDialog
import com.google.android.material.textfield.TextInputEditText
@ -29,9 +29,13 @@ class CreateRetroPlaylist : DialogFragment() {
) { _, _ ->
val playlistName = playlistView.text.toString()
if (!TextUtils.isEmpty(playlistName)) {
val database: PlaylistDatabase = get()
val playlistRepository: RoomPlaylistRepository = get()
lifecycleScope.launch {
database.playlistDao().createPlaylist(PlaylistEntity(playlistName))
if (playlistRepository.checkPlaylistExists(playlistName).isEmpty()) {
playlistRepository.createPlaylist(PlaylistEntity(playlistName))
} else {
println("Playlist exists")
}
}
} else {
playlistContainer.error = "Playlist is can't be empty"