diff --git a/kplayer/photo/SPhotoAlbumView.swift b/kplayer/photo/SPhotoAlbumView.swift index e0cfc70..6d844f2 100644 --- a/kplayer/photo/SPhotoAlbumView.swift +++ b/kplayer/photo/SPhotoAlbumView.swift @@ -55,7 +55,7 @@ struct SPhotoAlbumView: View { KToggleButton(text: "embd", binding: $embedded) KToggleButton(text: "go", binding: $model.go) } - Text("\(model.selectedItem.name)").foregroundColor(.blue) + Text("\(model.selectedItem.name)").foregroundColor(model.preloading > 0 ? Color.yellow : Color.blue) } Spacer() SPhotoScrubber(model: model) diff --git a/kplayer/photo/SPhotoModel.swift b/kplayer/photo/SPhotoModel.swift index 04404d7..0604919 100644 --- a/kplayer/photo/SPhotoModel.swift +++ b/kplayer/photo/SPhotoModel.swift @@ -20,6 +20,7 @@ class SPhotoModel : ObservableObject { @Published var favorite = false @Published var dirty = false @Published var compilation = false + @Published var preloading = 0 @Published var go = false @Published var locked = false @Published var deadline = Date() @@ -194,6 +195,7 @@ class SPhotoModel : ObservableObject { NetworkManager.sharedInstance.loadPicDetails(items: selectedItem, result: { (im: [MediaItem]) in self.index = 0 self.update(allItems: im) + self.preload() let kitem = DatabaseManager.sharedInstance.getKItem(selectedItem) self.favorite = kitem.favorite @@ -205,15 +207,18 @@ class SPhotoModel : ObservableObject { } func preload() { + preloading = 0 for item in allItems { if item.thumbImage == nil && item.thumbUrlAbsolute.contains("/ren/thumbs/"){ if let URL = Foundation.URL(string: item.thumbUrlAbsolute) { //try! await Task.sleep(nanoseconds: UInt64(1 * Double(NSEC_PER_SEC))) print("preload \(item.thumbUrlAbsolute)") + preloading += 1 ImageLoader.shared.loadImageBackground(from: URL).sink { image in if let i = image { item.thumbImage = i } + self.preloading -= 1 } // break }