浏览代码

Revert "Revert "Medialibrary: Handle thumbnail status return values""

This reverts commit 8626384f32fa3619855795fabcbbc4e588d61cdc.
Alexandre Janniaux 5 年之前
父节点
当前提交
d0e879e654

+ 1 - 1
SharedSources/MediaLibraryModel/MediaLibraryBaseModel.swift

@@ -121,7 +121,7 @@ extension MediaCollectionModel {
     func thumbnail() -> UIImage? {
         var image: UIImage? = nil
         if image == nil {
-            for track in files() ?? [] where track.isThumbnailGenerated() {
+            for track in files() ?? [] where track.isThumbnailGenerated() == .available {
                 image = UIImage(contentsOfFile: track.thumbnail()?.path ?? "")
                 break
             }

+ 1 - 1
SharedSources/MediaLibraryModel/MediaModel.swift

@@ -92,7 +92,7 @@ extension VLCMLMedia {
         attributeSet.deliveryType = 0
         attributeSet.local = 1
         attributeSet.playCount = NSNumber(value: playCount())
-        if isThumbnailGenerated() {
+        if isThumbnailGenerated() == .available {
             let image = UIImage(contentsOfFile: thumbnail()?.path ?? "")
             attributeSet.thumbnailData = image?.jpegData(compressionQuality: 0.9)
         }

+ 8 - 1
SharedSources/MediaLibraryService.swift

@@ -452,8 +452,15 @@ extension MediaLibraryService {
 
 extension MediaLibraryService {
     func requestThumbnail(for media: VLCMLMedia) {
-        if media.isThumbnailGenerated() || media.thumbnail() != nil {
+        let thumbnailStatus = media.isThumbnailGenerated()
+
+        switch thumbnailStatus {
+        case .missing, .failure:
+            break
+        case .available, .persistentFailure, .crash:
             return
+        @unknown default:
+            assertionFailure("MediaLibraryService: requestThumbnail: Unknown thumbnail status.")
         }
 
         if !media.requestThumbnail(of: .thumbnail, desiredWidth: 320, desiredHeight: 200, atPosition: 0.03) {