mirror of
https://github.com/danbee/persephone
synced 2025-03-04 08:39:11 +00:00
Cache the small image when we get the browser art
We use the RawImageDataProvider here to pass the already downloaded image onto this transform, to avoid fetching it from MPD again. The 180x180 size artwork is plenty big enough to use as source for the 32x32 queue/dragged song artwork.
This commit is contained in:
parent
a663315013
commit
cd2e5efc95
@ -71,7 +71,34 @@ class AlbumViewItem: NSCollectionViewItem {
|
||||
.processor(DownsamplingImageProcessor(size: .albumListCoverSize)),
|
||||
.scaleFactor(2),
|
||||
]
|
||||
)
|
||||
) { result in
|
||||
switch result {
|
||||
case .success(let imageResult):
|
||||
guard let imageData = imageResult.image.tiffRepresentation
|
||||
else { return }
|
||||
|
||||
let rawProvider = RawImageDataProvider(
|
||||
data: imageData,
|
||||
cacheKey: album.hash
|
||||
)
|
||||
|
||||
self.cacheSmallCover(provider: rawProvider)
|
||||
|
||||
case .failure(_):
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func cacheSmallCover(provider: ImageDataProvider) {
|
||||
_ = KingfisherManager.shared.retrieveImage(
|
||||
with: .provider(provider),
|
||||
options: [
|
||||
.memoryCacheExpiration(.never),
|
||||
.processor(DownsamplingImageProcessor(size: .queueSongCoverSize)),
|
||||
.scaleFactor(2),
|
||||
]
|
||||
) { result in }
|
||||
}
|
||||
|
||||
func setAppearance(selected isSelected: Bool) {
|
||||
|
||||
@ -145,19 +145,6 @@ class AlbumDetailView: NSViewController {
|
||||
.scaleFactor(2),
|
||||
]
|
||||
)
|
||||
|
||||
cacheSmallCover(provider: provider)
|
||||
}
|
||||
|
||||
func cacheSmallCover(provider: MPDAlbumArtImageDataProvider) {
|
||||
_ = KingfisherManager.shared.retrieveImage(
|
||||
with: .provider(provider),
|
||||
options: [
|
||||
.memoryCacheExpiration(.never),
|
||||
.processor(DownsamplingImageProcessor(size: .queueSongCoverSize)),
|
||||
.scaleFactor(2),
|
||||
]
|
||||
) { result in }
|
||||
}
|
||||
|
||||
func setAppearance() {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user