NetNewsWire/Shared/Favicons/FaviconGenerator.swift

35 lines
871 B
Swift
Raw Normal View History

//
// FaviconGenerator.swift
// NetNewsWire-iOS
//
// Created by Maurice Parker on 4/29/19.
// Copyright © 2019 Ranchero Software. All rights reserved.
//
import Foundation
import RSCore
import Account
final class FaviconGenerator {
private static var faviconGeneratorCache = [String: IconImage]() // feedURL: RSImage
2024-11-02 11:08:58 -07:00
static func favicon(_ feed: Feed) -> IconImage {
2024-11-02 11:08:58 -07:00
if let favicon = FaviconGenerator.faviconGeneratorCache[feed.url] {
return favicon
}
2024-11-02 11:08:58 -07:00
let colorHash = ColorHash(feed.url)
if let favicon = AppAssets.faviconTemplateImage.maskWithColor(color: colorHash.color.cgColor) {
2024-12-06 18:06:27 +02:00
let iconImage = IconImage(favicon, isBackgroundSuppressed: true)
2024-11-02 11:08:58 -07:00
FaviconGenerator.faviconGeneratorCache[feed.url] = iconImage
return iconImage
} else {
2024-12-06 18:06:27 +02:00
return IconImage(AppAssets.faviconTemplateImage, isBackgroundSuppressed: true)
}
}
}