diff --git a/app/src/main/java/com/github/libretube/db/obj/LocalPlaylist.kt b/app/src/main/java/com/github/libretube/db/obj/LocalPlaylist.kt index 259bd7699..63d67db77 100644 --- a/app/src/main/java/com/github/libretube/db/obj/LocalPlaylist.kt +++ b/app/src/main/java/com/github/libretube/db/obj/LocalPlaylist.kt @@ -8,7 +8,7 @@ import kotlinx.serialization.Serializable @Entity data class LocalPlaylist( @PrimaryKey(autoGenerate = true) - val id: Int = 0, + var id: Int = 0, var name: String = "", var thumbnailUrl: String = "", var description: String? = "" diff --git a/app/src/main/java/com/github/libretube/db/obj/LocalPlaylistItem.kt b/app/src/main/java/com/github/libretube/db/obj/LocalPlaylistItem.kt index d5b138a44..cda8ee26c 100644 --- a/app/src/main/java/com/github/libretube/db/obj/LocalPlaylistItem.kt +++ b/app/src/main/java/com/github/libretube/db/obj/LocalPlaylistItem.kt @@ -10,7 +10,7 @@ import kotlinx.serialization.Serializable @Serializable @Entity data class LocalPlaylistItem( - @PrimaryKey(autoGenerate = true) val id: Int = 0, + @PrimaryKey(autoGenerate = true) var id: Int = 0, @ColumnInfo var playlistId: Int = 0, @ColumnInfo val videoId: String = "", @ColumnInfo val title: String? = null, diff --git a/app/src/main/java/com/github/libretube/helpers/BackupHelper.kt b/app/src/main/java/com/github/libretube/helpers/BackupHelper.kt index 54bbf90aa..fb6b2c492 100644 --- a/app/src/main/java/com/github/libretube/helpers/BackupHelper.kt +++ b/app/src/main/java/com/github/libretube/helpers/BackupHelper.kt @@ -55,11 +55,12 @@ object BackupHelper { Database.subscriptionGroupsDao().insertAll(backupFile.channelGroups.orEmpty()) backupFile.localPlaylists?.forEach { - Database.localPlaylistsDao().createPlaylist(it.playlist) - val playlistId = Database.localPlaylistsDao().getAll().last().playlist.id + // the playlist will be created with an id of 0, so that Room will auto generate a + // new playlist id to avoid conflicts with existing local playlists + val playlistId = Database.localPlaylistsDao().createPlaylist(it.playlist.copy(id = 0)) it.videos.forEach { playlistItem -> - playlistItem.playlistId = playlistId - Database.localPlaylistsDao().addPlaylistVideo(playlistItem) + playlistItem.playlistId = playlistId.toInt() + Database.localPlaylistsDao().addPlaylistVideo(playlistItem.copy(id = 0)) } }