remove text selecting and metal rendering flags.

This commit is contained in:
morevsavva
2023-05-04 21:03:34 +03:00
parent 21057af6ce
commit d982e4e25e
17 changed files with 20 additions and 60 deletions
+2 -18
View File
@@ -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
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 122 KiB