mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 14:45:21 +00:00
Support Dynamic Type
This commit is contained in:
@@ -4,6 +4,7 @@ import SwiftSignalKit
|
||||
|
||||
private final class PresentationsResourceCacheHolder {
|
||||
var images: [Int32: UIImage] = [:]
|
||||
var parameterImages: [PresentationResourceParameterKey: UIImage] = [:]
|
||||
}
|
||||
|
||||
private final class PresentationsResourceAnyCacheHolder {
|
||||
@@ -32,6 +33,24 @@ public final class PresentationsResourceCache {
|
||||
}
|
||||
}
|
||||
|
||||
public func parameterImage(_ key: PresentationResourceParameterKey, _ theme: PresentationTheme, _ generate: (PresentationTheme) -> UIImage?) -> UIImage? {
|
||||
let result = self.imageCache.with { holder -> UIImage? in
|
||||
return holder.parameterImages[key]
|
||||
}
|
||||
if let result = result {
|
||||
return result
|
||||
} else {
|
||||
if let image = generate(theme) {
|
||||
self.imageCache.with { holder -> Void in
|
||||
holder.parameterImages[key] = image
|
||||
}
|
||||
return image
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public func object(_ key: Int32, _ theme: PresentationTheme, _ generate: (PresentationTheme) -> AnyObject?) -> AnyObject? {
|
||||
let result = self.objectCache.with { holder -> AnyObject? in
|
||||
return holder.objects[key]
|
||||
|
||||
Reference in New Issue
Block a user