diff --git a/.mapping.json b/.mapping.json index c330008fa..2e32a763f 100644 --- a/.mapping.json +++ b/.mapping.json @@ -13866,6 +13866,7 @@ "client/ios/DivKitExtensions/ExtensionHandlers/PinchToZoomExtensionHandler.swift":"divkit/public/client/ios/DivKitExtensions/ExtensionHandlers/PinchToZoomExtensionHandler.swift", "client/ios/DivKitExtensions/ExtensionHandlers/TextExtensionHandler.swift":"divkit/public/client/ios/DivKitExtensions/ExtensionHandlers/TextExtensionHandler.swift", "client/ios/DivKitExtensions/ExtensionHandlers/VideoDurationExtensionHandler.swift":"divkit/public/client/ios/DivKitExtensions/ExtensionHandlers/VideoDurationExtensionHandler.swift", + "client/ios/DivKitExtensions/Serialization+Extensions.swift":"divkit/public/client/ios/DivKitExtensions/Serialization+Extensions.swift", "client/ios/DivKitExtensions/Shimmers/Shimmer/ShimmerImagePreviewExtension.swift":"divkit/public/client/ios/DivKitExtensions/Shimmers/Shimmer/ShimmerImagePreviewExtension.swift", "client/ios/DivKitExtensions/Shimmers/Shimmer/ShimmerImagePreviewStyle.swift":"divkit/public/client/ios/DivKitExtensions/Shimmers/Shimmer/ShimmerImagePreviewStyle.swift", "client/ios/DivKitExtensions/Shimmers/Shimmer/ShimmerImagePreviewView.swift":"divkit/public/client/ios/DivKitExtensions/Shimmers/Shimmer/ShimmerImagePreviewView.swift", diff --git a/client/ios/DivKitExtensions/Serialization+Extensions.swift b/client/ios/DivKitExtensions/Serialization+Extensions.swift new file mode 100644 index 000000000..ca8038488 --- /dev/null +++ b/client/ios/DivKitExtensions/Serialization+Extensions.swift @@ -0,0 +1,36 @@ +import DivKit +import Foundation + +extension Dictionary where Key == String { + func getOptionalBool( + _ key: Key, + expressionResolver: ExpressionResolver + ) throws -> Bool? { + let result: Bool? + if let value = self[key] as? Bool { + result = value + } else if let expression: String = try getOptionalField(key) { + result = expressionResolver.resolve(expression) as? Bool + } else { + return nil + } + return result + } + + func getOptionalFloat( + _ key: Key, + expressionResolver: ExpressionResolver + ) throws -> CGFloat? { + let result: Double? + if let value = self[key] as? Double { + result = value + } else if let value = self[key] as? Int { + result = Double(value) + } else if let expression: String = try getOptionalField(key) { + result = expressionResolver.resolveNumeric(expression) + } else { + return nil + } + return result.map { CGFloat($0) } + } +} diff --git a/client/ios/DivKitExtensions/Shimmers/ShimmerStyle+Serialization.swift b/client/ios/DivKitExtensions/Shimmers/ShimmerStyle+Serialization.swift index 0fee0e638..7c96b0c13 100644 --- a/client/ios/DivKitExtensions/Shimmers/ShimmerStyle+Serialization.swift +++ b/client/ios/DivKitExtensions/Shimmers/ShimmerStyle+Serialization.swift @@ -41,38 +41,6 @@ extension DivBase { } extension Dictionary where Key == String { - func getOptionalBool( - _ key: Key, - expressionResolver: ExpressionResolver - ) throws -> Bool? { - let result: Bool? - if let value = self[key] as? Bool { - result = value - } else if let expression: String = try getOptionalField(key) { - result = expressionResolver.resolve(expression) as? Bool - } else { - return nil - } - return result - } - - func getOptionalFloat( - _ key: Key, - expressionResolver: ExpressionResolver - ) throws -> CGFloat? { - let result: Double? - if let value = self[key] as? Double { - result = value - } else if let value = self[key] as? Int { - result = Double(value) - } else if let expression: String = try getOptionalField(key) { - result = expressionResolver.resolveNumeric(expression) - } else { - return nil - } - return result.map { CGFloat($0) } - } - func getOptionalColorArray( _ key: Key, expressionResolver: ExpressionResolver diff --git a/client/ios/LayoutKit/LayoutKit/Tooltips/TooltipManager.swift b/client/ios/LayoutKit/LayoutKit/Tooltips/TooltipManager.swift index 40b7d2a72..a31501fc7 100644 --- a/client/ios/LayoutKit/LayoutKit/Tooltips/TooltipManager.swift +++ b/client/ios/LayoutKit/LayoutKit/Tooltips/TooltipManager.swift @@ -278,6 +278,20 @@ final class TooltipWindowManager { modalWindow.isHidden = true } } + +extension UIAccessibility { + fileprivate static func postDelayed( + notification: UIAccessibility.Notification, + argument: Any? + ) { + after(0.2) { + UIAccessibility.post( + notification: notification, + argument: argument + ) + } + } +} #else public protocol TooltipManager: AnyObject, TooltipActionPerformer, RenderingDelegate {} @@ -293,17 +307,3 @@ extension TooltipManager { public func mapView(_: BlockView, to _: BlockViewID) {} public func reset() {} } - -extension UIAccessibility { - fileprivate static func postDelayed( - notification: UIAccessibility.Notification, - argument: Any? - ) { - after(0.2) { - UIAccessibility.post( - notification: notification, - argument: argument - ) - } - } -}