mirror of
https://github.com/divkit/divkit.git
synced 2026-06-06 20:07:59 +00:00
85e62bdd49
added lottie prefetching and combined video and images
42 lines
1.1 KiB
Swift
42 lines
1.1 KiB
Swift
import Foundation
|
|
|
|
import DivKit
|
|
|
|
extension Div {
|
|
public func makeImageURLs(with expressionResolver: ExpressionResolver) -> [URL] {
|
|
var urls: [URL] = value.background?.compactMap { $0.makeImageURL(with: expressionResolver) }
|
|
?? []
|
|
if let url = LottieExtensionHandler.getPreloadURL(div: value) {
|
|
urls.append(url)
|
|
}
|
|
switch self {
|
|
case let .divImage(divImage):
|
|
if let url = divImage.resolveImageUrl(expressionResolver) {
|
|
urls.append(url)
|
|
}
|
|
divImage.resolveDarkThemeImageURL(expressionResolver).map { urls.append($0) }
|
|
case let .divGifImage(divGifImage):
|
|
if let url = divGifImage.resolveGifUrl(expressionResolver) {
|
|
urls.append(url)
|
|
}
|
|
case let .divText(divText):
|
|
if let images = divText.images {
|
|
urls.append(contentsOf: images.compactMap { $0.resolveUrl(expressionResolver) })
|
|
}
|
|
case .divContainer,
|
|
.divGrid,
|
|
.divGallery,
|
|
.divPager,
|
|
.divTabs,
|
|
.divCustom,
|
|
.divState,
|
|
.divSlider,
|
|
.divIndicator,
|
|
.divSeparator,
|
|
.divInput:
|
|
break
|
|
}
|
|
return urls
|
|
}
|
|
}
|