diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c0f8e01..c7e0393 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -15,8 +15,8 @@ android { applicationId = "com.rada" minSdk = 26 targetSdk = 35 - versionCode = 5 - versionName = "0.1.3" + versionCode = 7 + versionName = "0.1.5" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/com/rada/data/local/dao/PlaylistDao.kt b/app/src/main/java/com/rada/data/local/dao/PlaylistDao.kt index 5d3ed84..4fbc280 100644 --- a/app/src/main/java/com/rada/data/local/dao/PlaylistDao.kt +++ b/app/src/main/java/com/rada/data/local/dao/PlaylistDao.kt @@ -3,6 +3,7 @@ package com.rada.data.local.dao import androidx.room.Dao import androidx.room.Delete import androidx.room.Insert +import androidx.room.OnConflictStrategy import androidx.room.Query import com.rada.data.local.entity.PlaylistEntity import com.rada.data.local.entity.PlaylistSongEntity @@ -30,7 +31,9 @@ interface PlaylistDao { @Query("DELETE FROM playlists WHERE id = :playlistId") suspend fun deletePlaylistById(playlistId: Long) - @Insert + // IGNORE: (playlistId, songId) is the PK — re-adding a song that is + // already in the playlist must be a no-op, not a crash. + @Insert(onConflict = OnConflictStrategy.IGNORE) suspend fun addSongToPlaylist(playlistSong: PlaylistSongEntity) @Query("DELETE FROM playlist_songs WHERE playlistId = :playlistId AND songId = :songId")