PlayerAndroid/app/src/main/java/code/name/monkey/retromusic/room/MusicQueueRepository.kt

33 lines
970 B
Kotlin

package code.name.monkey.retromusic.room
import androidx.room.Transaction
import code.name.monkey.retromusic.model.Song
class MusicQueueRepository(private val queueDao: QueueDao) {
fun getQueue(): List<Song> =
queueDao.getQueue().map { SongQueueEntity.toSong(it) }
fun getOriginalQueue(): List<Song> =
queueDao.getOriginalQueue().map { SongEntity.toSong(it) }
suspend fun insertQueue(queue: List<Song>) {
deleteAndSave(queue)
}
@Transaction
private suspend fun deleteAndSave(queue: List<Song>) {
queueDao.deleteQueue()
queueDao.saveQueue(queue.map { Song.toSongEntity(it) })
}
suspend fun insertOriginalQueue(queue: List<Song>) {
deleteAndSaveOriginalQueue(queue)
}
@Transaction
private suspend fun deleteAndSaveOriginalQueue(queue: List<Song>) {
queueDao.deleteOriginalQueue()
queueDao.saveOriginalQueue(queue.map { Song.toSongQueueEntity(it) })
}
}