@@ -110,31 +110,40 @@ class LocalPlaylistRepository(
110110 override suspend fun addToPlaylist (
111111 playlist : Playlist ,
112112 songs : List <Song >
113- ) = playlistSongJoinDao.insert(
114- songs.mapIndexed { i, song ->
115- PlaylistSongJoin (
116- playlistId = playlist.id,
117- songId = song.id,
118- sortOrder = (playlist.songCount + i).toLong()
119- )
120- }
121- )
113+ ) {
114+ playlistSongJoinDao.insert(
115+ songs.mapIndexed { i, song ->
116+ PlaylistSongJoin (
117+ playlistId = playlist.id,
118+ songId = song.id,
119+ sortOrder = (playlist.songCount + i).toLong()
120+ )
121+ }
122+ )
123+ updateM3uFile(playlist)
124+ }
122125
123126 override suspend fun removeFromPlaylist (
124127 playlist : Playlist ,
125128 playlistSongs : List <PlaylistSong >
126- ) = playlistSongJoinDao.delete(
127- playlistId = playlist.id,
128- playlistSongIds = playlistSongs.map { playlistSong -> playlistSong.id }.toTypedArray()
129- )
129+ ) {
130+ playlistSongJoinDao.delete(
131+ playlistId = playlist.id,
132+ playlistSongIds = playlistSongs.map { playlistSong -> playlistSong.id }.toTypedArray()
133+ )
134+ updateM3uFile(playlist)
135+ }
130136
131137 override suspend fun removeSongsFromPlaylist (
132138 playlist : Playlist ,
133139 songs : List <Song >
134- ) = playlistSongJoinDao.deleteSongs(
135- playlistId = playlist.id,
136- songIds = songs.map { it.id }.toTypedArray()
137- )
140+ ) {
141+ playlistSongJoinDao.deleteSongs(
142+ playlistId = playlist.id,
143+ songIds = songs.map { it.id }.toTypedArray()
144+ )
145+ updateM3uFile(playlist)
146+ }
138147
139148 override fun getSongsForPlaylist (playlist : Playlist ): Flow <List <PlaylistSong >> = playlistSongJoinDao.getSongsForPlaylist(playlist.id)
140149 .map { playlistSong ->
@@ -145,7 +154,10 @@ class LocalPlaylistRepository(
145154
146155 override suspend fun deleteAll (mediaProviderType : MediaProviderType ) = playlistDataDao.deleteAll(mediaProviderType)
147156
148- override suspend fun clearPlaylist (playlist : Playlist ) = playlistDataDao.clear(playlist.id)
157+ override suspend fun clearPlaylist (playlist : Playlist ) {
158+ playlistDataDao.clear(playlist.id)
159+ updateM3uFile(playlist)
160+ }
149161
150162 override suspend fun renamePlaylist (
151163 playlist : Playlist ,
@@ -216,6 +228,7 @@ class LocalPlaylistRepository(
216228 }
217229 }
218230 )
231+ updateM3uFile(playlist)
219232 }
220233
221234 override suspend fun updatePlaylistMediaProviderType (
0 commit comments