Browse Source

Collectionmodels: Delete object in file when deletion was observed

Carola Nitz 6 years ago
parent
commit
322826d73a

+ 7 - 0
SharedSources/MediaLibraryModel/AlbumModel.swift

@@ -64,6 +64,13 @@ extension AlbumModel: MediaLibraryObserver {
         albums.forEach({ append($0) })
         updateView?()
     }
+
+    func medialibrary(_ medialibrary: MediaLibraryService, didDeleteAlbumsWithIds albumsIds: [NSNumber]) {
+        files.removeAll {
+            albumsIds.contains(NSNumber(value: $0.identifier()))
+        }
+        updateView?()
+    }
 }
 
 extension VLCMLAlbum: MediaCollectionModel {

+ 8 - 0
SharedSources/MediaLibraryModel/ArtistModel.swift

@@ -63,6 +63,14 @@ extension ArtistModel: MediaLibraryObserver {
         artists.forEach({ append($0) })
         updateView?()
     }
+
+    func medialibrary(_ medialibrary: MediaLibraryService, didDeleteArtistsWithIds artistsIds: [NSNumber]) {
+        files.removeAll {
+            artistsIds.contains(NSNumber(value: $0.identifier()))
+        }
+        updateView?()
+    }
+
 }
 
 extension VLCMLArtist: MediaCollectionModel {

+ 8 - 0
SharedSources/MediaLibraryModel/GenreModel.swift

@@ -56,6 +56,14 @@ extension GenreModel: MediaLibraryObserver {
         genres.forEach({ append($0) })
         updateView?()
     }
+
+    func medialibrary(_ medialibrary: MediaLibraryService, didDeleteGenresWithIds genreIds: [NSNumber]) {
+        files.removeAll {
+            genreIds.contains(NSNumber(value: $0.identifier()))
+        }
+        updateView?()
+    }
+
 }
 
 // MARK: - Edit

+ 3 - 0
SharedSources/MediaLibraryService.swift

@@ -62,6 +62,9 @@ extension NSNotification {
     @objc optional func medialibrary(_ medialibrary: MediaLibraryService,
                                      didAddGenres genres: [VLCMLGenre])
 
+    @objc optional func medialibrary(_ medialibrary: MediaLibraryService,
+                                     didDeleteGenresWithIds genreIds: [NSNumber])
+
     // Playlist
     @objc optional func medialibrary(_ medialibrary: MediaLibraryService,
                                      didAddPlaylists playlists: [VLCMLPlaylist])