1
1
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:
Daniel Barber 2020-02-16 12:51:11 -05:00
parent a663315013
commit cd2e5efc95
Signed by: danbarber
GPG Key ID: 931D8112E0103DD8
2 changed files with 28 additions and 14 deletions

View File

@ -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) {

View File

@ -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() {