remove text selecting and metal rendering flags.
@@ -1,21 +1,5 @@
|
||||
public struct DivFlagsInfo {
|
||||
public let isTextSelectingEnabled: Bool
|
||||
public let appendVariablesEnabled: Bool
|
||||
public let metalImageRenderingEnabled: Bool
|
||||
public init() {}
|
||||
|
||||
public init(
|
||||
isTextSelectingEnabled: Bool,
|
||||
appendVariablesEnabled: Bool,
|
||||
metalImageRenderingEnabled: Bool
|
||||
) {
|
||||
self.isTextSelectingEnabled = isTextSelectingEnabled
|
||||
self.appendVariablesEnabled = appendVariablesEnabled
|
||||
self.metalImageRenderingEnabled = metalImageRenderingEnabled
|
||||
}
|
||||
|
||||
public static let `default` = DivFlagsInfo(
|
||||
isTextSelectingEnabled: false,
|
||||
appendVariablesEnabled: true,
|
||||
metalImageRenderingEnabled: false
|
||||
)
|
||||
public static let `default` = DivFlagsInfo()
|
||||
}
|
||||
|
||||
@@ -9,8 +9,7 @@ import NetworkingPublic
|
||||
extension DivBackground {
|
||||
func makeBlockBackground(
|
||||
with imageHolderFactory: ImageHolderFactory,
|
||||
expressionResolver: ExpressionResolver,
|
||||
metalImageRenderingEnabled: Bool
|
||||
expressionResolver: ExpressionResolver
|
||||
) -> LayoutKit.Background? {
|
||||
switch self {
|
||||
case let .divLinearGradient(gradient):
|
||||
@@ -32,8 +31,7 @@ extension DivBackground {
|
||||
),
|
||||
contentMode: imageBackground.resolveContentMode(expressionResolver),
|
||||
alpha: imageBackground.resolveAlpha(expressionResolver),
|
||||
effects: imageBackground.makeEffects(with: expressionResolver),
|
||||
metalImageRenderingEnabled: metalImageRenderingEnabled
|
||||
effects: imageBackground.makeEffects(with: expressionResolver)
|
||||
)
|
||||
return .image(image)
|
||||
case let .divSolidBackground(solidBackground):
|
||||
|
||||
@@ -64,8 +64,7 @@ extension DivBase {
|
||||
background,
|
||||
to: block,
|
||||
imageHolderFactory: context.imageHolderFactory,
|
||||
expressionResolver: expressionResolver,
|
||||
metalImageRenderingEnabled: context.flagsInfo.metalImageRenderingEnabled
|
||||
expressionResolver: expressionResolver
|
||||
)
|
||||
.addingDecorations(
|
||||
boundary: border.makeBoundaryTrait(with: expressionResolver),
|
||||
@@ -223,8 +222,7 @@ extension DivBase {
|
||||
_ backgrounds: [DivBackground]?,
|
||||
to block: Block,
|
||||
imageHolderFactory: ImageHolderFactory,
|
||||
expressionResolver: ExpressionResolver,
|
||||
metalImageRenderingEnabled: Bool
|
||||
expressionResolver: ExpressionResolver
|
||||
) -> Block {
|
||||
guard let backgrounds = backgrounds else {
|
||||
return block
|
||||
@@ -234,8 +232,7 @@ extension DivBase {
|
||||
if backgrounds.count == 1 {
|
||||
guard let background = backgrounds[0].makeBlockBackground(
|
||||
with: imageHolderFactory,
|
||||
expressionResolver: expressionResolver,
|
||||
metalImageRenderingEnabled: metalImageRenderingEnabled
|
||||
expressionResolver: expressionResolver
|
||||
) else {
|
||||
return block
|
||||
}
|
||||
@@ -248,8 +245,7 @@ extension DivBase {
|
||||
let blockBackgrounds = backgrounds.compactMap {
|
||||
$0.makeBlockBackground(
|
||||
with: imageHolderFactory,
|
||||
expressionResolver: expressionResolver,
|
||||
metalImageRenderingEnabled: metalImageRenderingEnabled
|
||||
expressionResolver: expressionResolver
|
||||
)
|
||||
}
|
||||
guard let background = blockBackgrounds.composite() else {
|
||||
|
||||
@@ -41,7 +41,6 @@ extension DivImage: DivBlockModeling, DivImageProtocol {
|
||||
tintColor: resolveTintColor(expressionResolver),
|
||||
tintMode: resolveTintMode(expressionResolver).tintMode,
|
||||
effects: makeEffects(with: expressionResolver),
|
||||
metalImageRenderingEnabled: context.flagsInfo.metalImageRenderingEnabled,
|
||||
appearanceAnimation: appearanceAnimation?.makeAppearanceAnimation(with: expressionResolver)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -100,8 +100,7 @@ extension DivText: DivBlockModeling {
|
||||
images: images,
|
||||
truncationToken: truncationToken,
|
||||
truncationImages: truncationImages,
|
||||
canSelect: resolveSelectable(context.expressionResolver) && context.flagsInfo
|
||||
.isTextSelectingEnabled
|
||||
canSelect: resolveSelectable(context.expressionResolver)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -28,11 +28,7 @@ enum AppComponents {
|
||||
sizeProviderExtensionHandler,
|
||||
ShimmerImagePreviewExtension(),
|
||||
],
|
||||
flagsInfo: DivFlagsInfo(
|
||||
isTextSelectingEnabled: true,
|
||||
appendVariablesEnabled: true,
|
||||
metalImageRenderingEnabled: true
|
||||
),
|
||||
flagsInfo: DivFlagsInfo(),
|
||||
patchProvider: DemoPatchProvider(),
|
||||
updateCardAction: updateCardAction,
|
||||
playerFactory: DefaultPlayerFactory(),
|
||||
|
||||
@@ -24,16 +24,19 @@ open class DivKitSnapshotTestCase: XCTestCase {
|
||||
rootDirectory: String
|
||||
) -> Bool {
|
||||
guard
|
||||
let jsonDict = jsonDict(fileName: file.name, subdirectory: rootDirectory + "/" + file.subdirectory)
|
||||
let jsonDict = jsonDict(
|
||||
fileName: file.name,
|
||||
subdirectory: rootDirectory + "/" + file.subdirectory
|
||||
)
|
||||
else {
|
||||
// json is invalid, test should be added into the test suite
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
guard let platforms = jsonDict.getArray("platforms").value else {
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
return platforms.contains { $0 as? String == "ios" }
|
||||
}
|
||||
|
||||
@@ -54,11 +57,7 @@ open class DivKitSnapshotTestCase: XCTestCase {
|
||||
|
||||
let divKitComponents = DivKitComponents(
|
||||
extensionHandlers: extensions,
|
||||
flagsInfo: .init(
|
||||
isTextSelectingEnabled: false,
|
||||
appendVariablesEnabled: true,
|
||||
metalImageRenderingEnabled: true
|
||||
),
|
||||
flagsInfo: DivFlagsInfo(),
|
||||
imageHolderFactory: imageHolderFactory ?? makeImageHolderFactory(),
|
||||
updateCardAction: nil,
|
||||
urlOpener: { _ in }
|
||||
|
||||
@@ -10,7 +10,6 @@ extension ImageBlock {
|
||||
tintColor: tintColor,
|
||||
tintMode: tintMode,
|
||||
effects: effects,
|
||||
metalImageRenderingEnabled: metalImageRenderingEnabled,
|
||||
accessibilityElement: accessibilityElement
|
||||
)
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ public final class ImageBlock: ImageBaseBlock {
|
||||
public let effects: [ImageEffect]
|
||||
public let accessibilityElement: AccessibilityElement?
|
||||
public let appearanceAnimation: TransitioningAnimation?
|
||||
public let metalImageRenderingEnabled: Bool
|
||||
|
||||
public init(
|
||||
imageHolder: ImageHolder,
|
||||
@@ -24,7 +23,6 @@ public final class ImageBlock: ImageBaseBlock {
|
||||
tintColor: Color?,
|
||||
tintMode: TintMode?,
|
||||
effects: [ImageEffect] = [],
|
||||
metalImageRenderingEnabled: Bool = false,
|
||||
accessibilityElement: AccessibilityElement? = nil,
|
||||
appearanceAnimation: TransitioningAnimation? = nil
|
||||
) {
|
||||
@@ -35,7 +33,6 @@ public final class ImageBlock: ImageBaseBlock {
|
||||
self.tintColor = tintColor
|
||||
self.tintMode = tintMode
|
||||
self.effects = effects
|
||||
self.metalImageRenderingEnabled = metalImageRenderingEnabled
|
||||
self.accessibilityElement = accessibilityElement
|
||||
self.appearanceAnimation = appearanceAnimation
|
||||
}
|
||||
@@ -48,7 +45,6 @@ public final class ImageBlock: ImageBaseBlock {
|
||||
tintColor: Color? = nil,
|
||||
tintMode: TintMode? = nil,
|
||||
effects: [ImageEffect] = [],
|
||||
metalImageRenderingEnabled: Bool = false,
|
||||
accessibilityElement: AccessibilityElement? = nil,
|
||||
appearanceAnimation: TransitioningAnimation? = nil
|
||||
) {
|
||||
@@ -60,7 +56,6 @@ public final class ImageBlock: ImageBaseBlock {
|
||||
tintColor: tintColor,
|
||||
tintMode: tintMode,
|
||||
effects: effects,
|
||||
metalImageRenderingEnabled: metalImageRenderingEnabled,
|
||||
accessibilityElement: accessibilityElement,
|
||||
appearanceAnimation: appearanceAnimation
|
||||
)
|
||||
@@ -73,7 +68,6 @@ public final class ImageBlock: ImageBaseBlock {
|
||||
tintColor: Color? = nil,
|
||||
tintMode: TintMode? = nil,
|
||||
effects: [ImageEffect] = [],
|
||||
metalImageRenderingEnabled: Bool = false,
|
||||
accessibilityElement: AccessibilityElement? = nil,
|
||||
appearanceAnimation: TransitioningAnimation? = nil
|
||||
) {
|
||||
@@ -85,7 +79,6 @@ public final class ImageBlock: ImageBaseBlock {
|
||||
tintColor: tintColor,
|
||||
tintMode: tintMode,
|
||||
effects: effects,
|
||||
metalImageRenderingEnabled: metalImageRenderingEnabled,
|
||||
accessibilityElement: accessibilityElement,
|
||||
appearanceAnimation: appearanceAnimation
|
||||
)
|
||||
|
||||
@@ -13,7 +13,7 @@ extension ImageBlock {
|
||||
renderingDelegate _: RenderingDelegate?
|
||||
) {
|
||||
let remoteImageViewContainer = view as! RemoteImageViewContainer
|
||||
if metalImageRenderingEnabled && !remoteImageViewContainer.contentView
|
||||
if (!effects.isEmpty || tintMode != nil) && !remoteImageViewContainer.contentView
|
||||
.isKind(of: MetalImageView.self) {
|
||||
remoteImageViewContainer.contentView = MetalImageView()
|
||||
}
|
||||
|
||||
@@ -89,7 +89,7 @@ extension BackgroundView {
|
||||
view = ColoredView()
|
||||
|
||||
case let .image(backgroundImage):
|
||||
if backgroundImage.metalImageRenderingEnabled {
|
||||
if !backgroundImage.effects.isEmpty {
|
||||
view = RemoteImageViewContainer(contentView: MetalImageView())
|
||||
} else {
|
||||
view = RemoteImageViewContainer(contentView: RemoteImageView())
|
||||
|
||||
@@ -6,20 +6,17 @@ public struct BackgroundImage {
|
||||
let contentMode: ImageContentMode
|
||||
let alpha: Double
|
||||
let effects: [ImageEffect]
|
||||
let metalImageRenderingEnabled: Bool
|
||||
|
||||
public init(
|
||||
imageHolder: ImageHolder,
|
||||
contentMode: ImageContentMode = .default,
|
||||
alpha: Double = 1.0,
|
||||
effects: [ImageEffect] = [],
|
||||
metalImageRenderingEnabled: Bool = false
|
||||
effects: [ImageEffect] = []
|
||||
) {
|
||||
self.imageHolder = imageHolder
|
||||
self.contentMode = contentMode
|
||||
self.alpha = alpha
|
||||
self.effects = effects
|
||||
self.metalImageRenderingEnabled = metalImageRenderingEnabled
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 122 KiB |