Преглед на файлове

MediaCollectionViewCell: Handle Unknown and Various Artist

Soomin Lee преди 6 години
родител
ревизия
9a3698182e

+ 4 - 2
Resources/en.lproj/Localizable.strings

@@ -356,6 +356,8 @@
 
 "NO_SAVING_DATA" = "Nothing found";
 
-/* New strings */
+// MediaCollectionViewCell
+
 "UNKNOWN_ARTIST" = "Unknown Artist";
-"UNKNOWN_TITLE" = "Unknown Title";
+"VARIOUS_ARTIST" = "Various Artists";
+"UNKNOWN_ALBUM" = "Unknown Album";

+ 20 - 0
SharedSources/MediaLibraryModel/AlbumModel.swift

@@ -108,4 +108,24 @@ extension VLCMLAlbum {
         }
         return image
     }
+
+    func albumName() -> String {
+        return isUnknownAlbum() ? NSLocalizedString("UNKNOWN_ALBUM", comment: "") : title
+    }
+
+    func albumArtistName() -> String {
+        guard let artist = albumArtist else {
+            return NSLocalizedString("UNKNOWN_ARTIST", comment: "")
+        }
+        return artist.artistName()
+    }
+}
+
+extension VLCMLAlbumTrack {
+    func albumArtistName() -> String {
+        guard let artist = artist else {
+            return NSLocalizedString("UNKNOWN_ARTIST", comment: "")
+        }
+        return artist.artistName()
+    }
 }

+ 10 - 0
SharedSources/MediaLibraryModel/ArtistModel.swift

@@ -108,4 +108,14 @@ extension VLCMLArtist {
         }
         return image
     }
+
+    func artistName() -> String {
+        if identifier() == UnknownArtistID {
+            return NSLocalizedString("UNKNOWN_ARTIST", comment: "")
+        } else if identifier() == VariousArtistID {
+            return NSLocalizedString("VARIOUS_ARTIST", comment: "")
+        } else {
+            return name
+        }
+    }
 }

+ 9 - 0
SharedSources/MediaLibraryModel/MediaModel.swift

@@ -156,3 +156,12 @@ extension VLCMLMedia {
         }
     }
 }
+
+extension VLCMLMedia {
+    func albumTrackArtistName() -> String {
+        guard let albumTrack = albumTrack else {
+            return NSLocalizedString("UNKNOWN_ARTIST", comment: "")
+        }
+        return albumTrack.albumArtistName()
+    }
+}

+ 4 - 4
Sources/MediaCategoryCells/MediaCollectionViewCell.swift

@@ -60,21 +60,21 @@ class MediaCollectionViewCell: BaseCollectionViewCell {
         thumbnailView.layer.masksToBounds = true
         thumbnailView.layer.cornerRadius = thumbnailView.frame.size.width / 2.0
         titleLabel.text = audiotrack.title
-        descriptionLabel.text = audiotrack.albumTrack?.artist?.name ?? NSLocalizedString("UNKNOWN_ARTIST", comment: "")
+        descriptionLabel.text = audiotrack.albumTrackArtistName()
         newLabel.isHidden = !audiotrack.isNew
         thumbnailView.image = audiotrack.thumbnailImage()
     }
 
     func update(album: VLCMLAlbum) {
-        titleLabel.text = album.title != "" ? album.title : NSLocalizedString("UNKNOWN_TITLE", comment: "")
-        descriptionLabel.text = album.albumArtist?.name != "" ? album.albumArtist?.name : NSLocalizedString("UNKNOWN_ARTIST", comment: "")
+        titleLabel.text = album.albumName()
+        descriptionLabel.text = album.albumArtistName()
         thumbnailView.image = album.thumbnail()
     }
 
     func update(artist: VLCMLArtist) {
         thumbnailView.layer.masksToBounds = true
         thumbnailView.layer.cornerRadius = thumbnailView.frame.size.width / 2.0
-        titleLabel.text = artist.name
+        titleLabel.text = artist.artistName()
         descriptionLabel.text = artist.numberOfTracksString()
         thumbnailView.image = artist.thumbnail()
     }