From 305d6c80c508ca66c60fa2f9ca82ef8df0d6af1e Mon Sep 17 00:00:00 2001 From: vfsfitvnm Date: Fri, 26 Aug 2022 10:30:02 +0200 Subject: [PATCH] Make Room models @Immutable --- app/src/main/kotlin/it/vfsfitvnm/vimusic/models/Album.kt | 2 ++ app/src/main/kotlin/it/vfsfitvnm/vimusic/models/Artist.kt | 2 ++ app/src/main/kotlin/it/vfsfitvnm/vimusic/models/DetailedSong.kt | 2 ++ .../vfsfitvnm/vimusic/models/DetailedSongWithContentLength.kt | 2 ++ app/src/main/kotlin/it/vfsfitvnm/vimusic/models/Playlist.kt | 2 ++ .../main/kotlin/it/vfsfitvnm/vimusic/models/PlaylistPreview.kt | 2 ++ .../kotlin/it/vfsfitvnm/vimusic/models/PlaylistWithSongs.kt | 2 ++ .../main/kotlin/it/vfsfitvnm/vimusic/models/QueuedMediaItem.kt | 2 ++ app/src/main/kotlin/it/vfsfitvnm/vimusic/models/Song.kt | 2 ++ .../main/kotlin/it/vfsfitvnm/vimusic/models/SongArtistMap.kt | 2 ++ .../main/kotlin/it/vfsfitvnm/vimusic/models/SongPlaylistMap.kt | 2 ++ .../kotlin/it/vfsfitvnm/vimusic/models/SortedSongPlaylistMap.kt | 2 ++ 12 files changed, 24 insertions(+) diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/Album.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/Album.kt index 1e2bc74..e07b81f 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/Album.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/Album.kt @@ -1,8 +1,10 @@ package it.vfsfitvnm.vimusic.models +import androidx.compose.runtime.Immutable import androidx.room.Entity import androidx.room.PrimaryKey +@Immutable @Entity data class Album( @PrimaryKey val id: String, diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/Artist.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/Artist.kt index 84cd35d..bca49ff 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/Artist.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/Artist.kt @@ -1,8 +1,10 @@ package it.vfsfitvnm.vimusic.models +import androidx.compose.runtime.Immutable import androidx.room.Entity import androidx.room.PrimaryKey +@Immutable @Entity data class Artist( @PrimaryKey val id: String, diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/DetailedSong.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/DetailedSong.kt index ba89edb..31c12aa 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/DetailedSong.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/DetailedSong.kt @@ -1,8 +1,10 @@ package it.vfsfitvnm.vimusic.models +import androidx.compose.runtime.Immutable import androidx.room.Junction import androidx.room.Relation +@Immutable open class DetailedSong( val id: String, val title: String, diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/DetailedSongWithContentLength.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/DetailedSongWithContentLength.kt index 4f9e5ee..706b2e1 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/DetailedSongWithContentLength.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/DetailedSongWithContentLength.kt @@ -1,7 +1,9 @@ package it.vfsfitvnm.vimusic.models +import androidx.compose.runtime.Immutable import androidx.room.Relation +@Immutable class DetailedSongWithContentLength( id: String, title: String, diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/Playlist.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/Playlist.kt index f428263..bd7d4ba 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/Playlist.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/Playlist.kt @@ -1,8 +1,10 @@ package it.vfsfitvnm.vimusic.models +import androidx.compose.runtime.Immutable import androidx.room.Entity import androidx.room.PrimaryKey +@Immutable @Entity data class Playlist( @PrimaryKey(autoGenerate = true) val id: Long = 0, diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/PlaylistPreview.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/PlaylistPreview.kt index 1ea25d0..8caab6b 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/PlaylistPreview.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/PlaylistPreview.kt @@ -1,7 +1,9 @@ package it.vfsfitvnm.vimusic.models +import androidx.compose.runtime.Immutable import androidx.room.Embedded +@Immutable data class PlaylistPreview( @Embedded val playlist: Playlist, val songCount: Int diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/PlaylistWithSongs.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/PlaylistWithSongs.kt index 2b8ad5c..cb3f47e 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/PlaylistWithSongs.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/PlaylistWithSongs.kt @@ -1,9 +1,11 @@ package it.vfsfitvnm.vimusic.models +import androidx.compose.runtime.Immutable import androidx.room.Embedded import androidx.room.Junction import androidx.room.Relation +@Immutable data class PlaylistWithSongs( @Embedded val playlist: Playlist, @Relation( diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/QueuedMediaItem.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/QueuedMediaItem.kt index bfb95df..27cde9a 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/QueuedMediaItem.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/QueuedMediaItem.kt @@ -1,10 +1,12 @@ package it.vfsfitvnm.vimusic.models +import androidx.compose.runtime.Immutable import androidx.media3.common.MediaItem import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.PrimaryKey +@Immutable @Entity class QueuedMediaItem( @PrimaryKey(autoGenerate = true) val id: Long = 0, diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/Song.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/Song.kt index 2972865..8c44aa7 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/Song.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/Song.kt @@ -1,8 +1,10 @@ package it.vfsfitvnm.vimusic.models +import androidx.compose.runtime.Immutable import androidx.room.Entity import androidx.room.PrimaryKey +@Immutable @Entity data class Song( @PrimaryKey val id: String, diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/SongArtistMap.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/SongArtistMap.kt index e8d3d8f..d250954 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/SongArtistMap.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/SongArtistMap.kt @@ -1,9 +1,11 @@ package it.vfsfitvnm.vimusic.models +import androidx.compose.runtime.Immutable import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.ForeignKey +@Immutable @Entity( primaryKeys = ["songId", "artistId"], foreignKeys = [ diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/SongPlaylistMap.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/SongPlaylistMap.kt index cb1f804..21507b9 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/SongPlaylistMap.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/SongPlaylistMap.kt @@ -1,9 +1,11 @@ package it.vfsfitvnm.vimusic.models +import androidx.compose.runtime.Immutable import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.ForeignKey +@Immutable @Entity( primaryKeys = ["songId", "playlistId"], foreignKeys = [ diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/SortedSongPlaylistMap.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/SortedSongPlaylistMap.kt index eed3332..0e34710 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/SortedSongPlaylistMap.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/models/SortedSongPlaylistMap.kt @@ -1,8 +1,10 @@ package it.vfsfitvnm.vimusic.models +import androidx.compose.runtime.Immutable import androidx.room.ColumnInfo import androidx.room.DatabaseView +@Immutable @DatabaseView("SELECT * FROM SongPlaylistMap ORDER BY position") data class SortedSongPlaylistMap( @ColumnInfo(index = true) val songId: String,