diff --git a/submodules/AccountContext/Sources/AccountContext.swift b/submodules/AccountContext/Sources/AccountContext.swift index a589d54f23..8c2977f738 100644 --- a/submodules/AccountContext/Sources/AccountContext.swift +++ b/submodules/AccountContext/Sources/AccountContext.swift @@ -1,10 +1,12 @@ import Foundation +import UIKit import Postbox import TelegramCore import SyncCore import TelegramPresentationData import TelegramUIPreferences import SwiftSignalKit +import AsyncDisplayKit import Display import DeviceLocationManager import TemporaryCachedPeerDataManager diff --git a/submodules/AccountContext/Sources/ChatController.swift b/submodules/AccountContext/Sources/ChatController.swift index da9d89bc63..4ecd45faa4 100644 --- a/submodules/AccountContext/Sources/ChatController.swift +++ b/submodules/AccountContext/Sources/ChatController.swift @@ -1,8 +1,10 @@ import Foundation +import UIKit import Postbox import TelegramCore import SyncCore import TextFormat +import AsyncDisplayKit import Display import SwiftSignalKit import TelegramPresentationData diff --git a/submodules/AccountContext/Sources/ChatListController.swift b/submodules/AccountContext/Sources/ChatListController.swift index f0e4304440..ad9ac4ee69 100644 --- a/submodules/AccountContext/Sources/ChatListController.swift +++ b/submodules/AccountContext/Sources/ChatListController.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import Postbox import Display diff --git a/submodules/AccountContext/Sources/OpenChatMessage.swift b/submodules/AccountContext/Sources/OpenChatMessage.swift index 4ff4350a6f..39bf422b69 100644 --- a/submodules/AccountContext/Sources/OpenChatMessage.swift +++ b/submodules/AccountContext/Sources/OpenChatMessage.swift @@ -5,6 +5,7 @@ import TelegramCore import SyncCore import SwiftSignalKit import Display +import AsyncDisplayKit public enum ChatControllerInteractionOpenMessageMode { case `default` diff --git a/submodules/ActivityIndicator/BUILD b/submodules/ActivityIndicator/BUILD index 08c019b637..86e9f555e5 100644 --- a/submodules/ActivityIndicator/BUILD +++ b/submodules/ActivityIndicator/BUILD @@ -7,8 +7,8 @@ swift_library( "Sources/**/*.swift", ]), deps = [ - "//submodules/Display:Display", - "//submodules/AsyncDisplayKit:AsyncDisplayKit", + "//submodules/Display:Display#shared", + "//submodules/AsyncDisplayKit:AsyncDisplayKit#shared", ], visibility = [ "//visibility:public", diff --git a/submodules/AuthorizationUI/Sources/AuthorizationOptionText.swift b/submodules/AuthorizationUI/Sources/AuthorizationOptionText.swift index 218d8017c9..e9d2cadc8d 100644 --- a/submodules/AuthorizationUI/Sources/AuthorizationOptionText.swift +++ b/submodules/AuthorizationUI/Sources/AuthorizationOptionText.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import TelegramCore import SyncCore import Display diff --git a/submodules/ChatListUI/Sources/ChatListController.swift b/submodules/ChatListUI/Sources/ChatListController.swift index ce8ab94f0b..5cfbbe5a93 100644 --- a/submodules/ChatListUI/Sources/ChatListController.swift +++ b/submodules/ChatListUI/Sources/ChatListController.swift @@ -2,6 +2,7 @@ import Foundation import UIKit import Postbox import SwiftSignalKit +import AsyncDisplayKit import Display import TelegramCore import SyncCore diff --git a/submodules/Display/Source/ImmediateTextNode.swift b/submodules/Display/Source/ImmediateTextNode.swift index f7e8dfc340..1f6c52f350 100644 --- a/submodules/Display/Source/ImmediateTextNode.swift +++ b/submodules/Display/Source/ImmediateTextNode.swift @@ -16,6 +16,30 @@ public class ImmediateTextNode: TextNode { public var textShadowColor: UIColor? public var textStroke: (UIColor, CGFloat)? public var cutout: TextNodeCutout? + + public var truncationMode: NSLineBreakMode { + get { + switch self.truncationType { + case .start: + return .byTruncatingHead + case .middle: + return .byTruncatingMiddle + case .end: + return .byTruncatingTail + } + } set(value) { + switch value { + case .byTruncatingHead: + self.truncationType = .start + case .byTruncatingMiddle: + self.truncationType = .middle + case .byTruncatingTail: + self.truncationType = .end + default: + self.truncationType = .end + } + } + } private var tapRecognizer: TapLongTapOrDoubleTapGestureRecognizer? private var linkHighlightingNode: LinkHighlightingNode? @@ -157,3 +181,9 @@ public class ImmediateTextNode: TextNode { } } } + +public class ASTextNode: ImmediateTextNode { + override public func calculateSizeThatFits(_ constrainedSize: CGSize) -> CGSize { + return self.updateLayout(constrainedSize) + } +} \ No newline at end of file diff --git a/submodules/Display/Source/NavigationBar.swift b/submodules/Display/Source/NavigationBar.swift index 95edf961c8..5b715421e5 100644 --- a/submodules/Display/Source/NavigationBar.swift +++ b/submodules/Display/Source/NavigationBar.swift @@ -788,6 +788,8 @@ open class NavigationBar: ASDisplayNode { self.stripeNode.backgroundColor = self.presentationData.theme.separatorColor self.badgeNode.updateTheme(fillColor: self.presentationData.theme.badgeBackgroundColor, strokeColor: self.presentationData.theme.badgeStrokeColor, textColor: self.presentationData.theme.badgeTextColor) + + self.requestLayout() } } diff --git a/submodules/Display/Source/NavigationButtonNode.swift b/submodules/Display/Source/NavigationButtonNode.swift index ffbaef8df0..35109c82bb 100644 --- a/submodules/Display/Source/NavigationButtonNode.swift +++ b/submodules/Display/Source/NavigationButtonNode.swift @@ -273,15 +273,7 @@ private final class NavigationButtonItemNode: ImmediateTextNode { } if shouldChangeHighlight { - if let imageNode = self.imageNode { - let previousAlpha = self.imageRippleNode.alpha - self.imageRippleNode.alpha = highlighted ? 1.0 : 0.0 - if !highlighted { - self.imageRippleNode.layer.animateAlpha(from: previousAlpha, to: self.imageRippleNode.alpha, duration: 0.25) - } - } else { - self.alpha = !self.isEnabled ? 1.0 : (highlighted ? 0.4 : 1.0) - } + self.alpha = !self.isEnabled ? 1.0 : (highlighted ? 0.4 : 1.0) self.highlightChanged(highlighted) } } diff --git a/submodules/Display/Source/UIKitUtils.swift b/submodules/Display/Source/UIKitUtils.swift index a8ad19277a..19ad82264e 100644 --- a/submodules/Display/Source/UIKitUtils.swift +++ b/submodules/Display/Source/UIKitUtils.swift @@ -1,4 +1,31 @@ import UIKit +import UIKitRuntimeUtils + +public extension UIView { + static func animationDurationFactor() -> Double { + return animationDurationFactorImpl() + } +} + +public func makeSpringAnimation(_ keyPath: String) -> CABasicAnimation { + return makeSpringAnimationImpl(keyPath) +} + +public func makeSpringBounceAnimation(_ keyPath: String, _ initialVelocity: CGFloat, _ damping: CGFloat) -> CABasicAnimation { + return makeSpringBounceAnimationImpl(keyPath, initialVelocity, damping) +} + +public func springAnimationValueAt(_ animation: CABasicAnimation, _ t: CGFloat) -> CGFloat { + return springAnimationValueAtImpl(animation, t) +} + +public func makeCustomZoomBlurEffect() -> UIBlurEffect? { + return makeCustomZoomBlurEffectImpl() +} + +public func applySmoothRoundedCorners(_ layer: CALayer) { + applySmoothRoundedCornersImpl(layer) +} public func dumpViews(_ view: UIView) { dumpViews(view, indent: "") diff --git a/submodules/ItemListUI/Sources/ItemListMaskAccessory.swift b/submodules/ItemListUI/Sources/ItemListMaskAccessory.swift index 8d6f0c3862..11300794df 100644 --- a/submodules/ItemListUI/Sources/ItemListMaskAccessory.swift +++ b/submodules/ItemListUI/Sources/ItemListMaskAccessory.swift @@ -1,6 +1,7 @@ import Foundation import UIKit import Display +import AsyncDisplayKit final class ItemListMaskAccessoryItem: ListViewAccessoryItem { private let sectionId: Int32 diff --git a/submodules/LocationUI/Sources/LocationMapHeaderNode.swift b/submodules/LocationUI/Sources/LocationMapHeaderNode.swift index 817b6fa7a7..d2eaff4440 100644 --- a/submodules/LocationUI/Sources/LocationMapHeaderNode.swift +++ b/submodules/LocationUI/Sources/LocationMapHeaderNode.swift @@ -1,4 +1,6 @@ import Foundation +import UIKit +import AsyncDisplayKit import Display import TelegramPresentationData import AppBundle diff --git a/submodules/LocationUI/Sources/LocationMapNode.swift b/submodules/LocationUI/Sources/LocationMapNode.swift index eebbdaa76c..0576883bb4 100644 --- a/submodules/LocationUI/Sources/LocationMapNode.swift +++ b/submodules/LocationUI/Sources/LocationMapNode.swift @@ -1,4 +1,6 @@ import Foundation +import UIKit +import AsyncDisplayKit import Display import SwiftSignalKit import MapKit diff --git a/submodules/LocationUI/Sources/LocationPickerControllerNode.swift b/submodules/LocationUI/Sources/LocationPickerControllerNode.swift index 64a1d42783..03b0ebcdb3 100644 --- a/submodules/LocationUI/Sources/LocationPickerControllerNode.swift +++ b/submodules/LocationUI/Sources/LocationPickerControllerNode.swift @@ -1,5 +1,6 @@ import Foundation import UIKit +import AsyncDisplayKit import Display import LegacyComponents import TelegramCore diff --git a/submodules/MessageReactionListUI/Sources/MessageReactionListController.swift b/submodules/MessageReactionListUI/Sources/MessageReactionListController.swift index ff0b9951fe..ba17ca607f 100644 --- a/submodules/MessageReactionListUI/Sources/MessageReactionListController.swift +++ b/submodules/MessageReactionListUI/Sources/MessageReactionListController.swift @@ -1,4 +1,6 @@ import Foundation +import UIKit +import AsyncDisplayKit import Display import AccountContext import TelegramPresentationData diff --git a/submodules/PeerInfoUI/Sources/GroupsInCommonController.swift b/submodules/PeerInfoUI/Sources/GroupsInCommonController.swift index 3cd3935cc2..70c6a25db9 100644 --- a/submodules/PeerInfoUI/Sources/GroupsInCommonController.swift +++ b/submodules/PeerInfoUI/Sources/GroupsInCommonController.swift @@ -1,5 +1,6 @@ import Foundation import UIKit +import AsyncDisplayKit import Display import SwiftSignalKit import Postbox diff --git a/submodules/PeersNearbyUI/Sources/PeersNearbyController.swift b/submodules/PeersNearbyUI/Sources/PeersNearbyController.swift index 5a9890b840..82976ffe00 100644 --- a/submodules/PeersNearbyUI/Sources/PeersNearbyController.swift +++ b/submodules/PeersNearbyUI/Sources/PeersNearbyController.swift @@ -1,5 +1,6 @@ import Foundation import UIKit +import AsyncDisplayKit import Display import SwiftSignalKit import Postbox diff --git a/submodules/ReactionSelectionNode/Sources/ReactionSwipeGestureRecognizer.swift b/submodules/ReactionSelectionNode/Sources/ReactionSwipeGestureRecognizer.swift index 1380aad26f..025a52ce2a 100644 --- a/submodules/ReactionSelectionNode/Sources/ReactionSwipeGestureRecognizer.swift +++ b/submodules/ReactionSelectionNode/Sources/ReactionSwipeGestureRecognizer.swift @@ -1,6 +1,7 @@ import Foundation import UIKit import Display +import AsyncDisplayKit public final class ReactionSwipeGestureRecognizer: UIPanGestureRecognizer { private var validatedGesture = false diff --git a/submodules/SelectablePeerNode/Sources/SelectablePeerNode.swift b/submodules/SelectablePeerNode/Sources/SelectablePeerNode.swift index 56c29fcdf6..6289e28c39 100644 --- a/submodules/SelectablePeerNode/Sources/SelectablePeerNode.swift +++ b/submodules/SelectablePeerNode/Sources/SelectablePeerNode.swift @@ -155,7 +155,7 @@ public final class SelectablePeerNode: ASDisplayNode { overrideImage = .deletedIcon } } - self.textNode.maximumNumberOfLines = UInt(numberOfLines) + self.textNode.maximumNumberOfLines = numberOfLines self.textNode.attributedText = NSAttributedString(string: text, font: textFont, textColor: self.currentSelected ? self.theme.selectedTextColor : defaultColor, paragraphAlignment: .center) self.avatarNode.setPeer(context: context, theme: theme, peer: mainPeer, overrideImage: overrideImage, emptyColor: self.theme.avatarPlaceholderColor, synchronousLoad: synchronousLoad) diff --git a/submodules/SettingsUI/Sources/Themes/ThemeSettingsController.swift b/submodules/SettingsUI/Sources/Themes/ThemeSettingsController.swift index 6f8357dfba..c881fe3321 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeSettingsController.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeSettingsController.swift @@ -1,5 +1,6 @@ import Foundation import UIKit +import AsyncDisplayKit import Display import SwiftSignalKit import Postbox diff --git a/submodules/TelegramStringFormatting/Sources/ServiceMessageStrings.swift b/submodules/TelegramStringFormatting/Sources/ServiceMessageStrings.swift index d634e990e1..a431e8a0e7 100644 --- a/submodules/TelegramStringFormatting/Sources/ServiceMessageStrings.swift +++ b/submodules/TelegramStringFormatting/Sources/ServiceMessageStrings.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import Postbox import TelegramCore import SyncCore diff --git a/submodules/TelegramUI/TelegramUI/AppDelegate.swift b/submodules/TelegramUI/TelegramUI/AppDelegate.swift index 6b6d402bb3..4ffe9ebd9c 100644 --- a/submodules/TelegramUI/TelegramUI/AppDelegate.swift +++ b/submodules/TelegramUI/TelegramUI/AppDelegate.swift @@ -455,7 +455,7 @@ final class SharedApplicationContext { } } - ASDisableLogging() + //ASDisableLogging() initializeLegacyComponents(application: application, currentSizeClassGetter: { return UIUserInterfaceSizeClass.compact diff --git a/submodules/TelegramUI/TelegramUI/ChatPanelInterfaceInteraction.swift b/submodules/TelegramUI/TelegramUI/ChatPanelInterfaceInteraction.swift index 7aa8bd50b5..4a5406524c 100644 --- a/submodules/TelegramUI/TelegramUI/ChatPanelInterfaceInteraction.swift +++ b/submodules/TelegramUI/TelegramUI/ChatPanelInterfaceInteraction.swift @@ -1,5 +1,6 @@ import Foundation import UIKit +import AsyncDisplayKit import Postbox import SwiftSignalKit import TelegramCore diff --git a/submodules/TelegramUI/TelegramUI/ChatTextInputSlowmodePlaceholderNode.swift b/submodules/TelegramUI/TelegramUI/ChatTextInputSlowmodePlaceholderNode.swift index 8249baab92..61ecdd6962 100644 --- a/submodules/TelegramUI/TelegramUI/ChatTextInputSlowmodePlaceholderNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatTextInputSlowmodePlaceholderNode.swift @@ -1,4 +1,6 @@ import Foundation +import UIKit +import AsyncDisplayKit import Display import SwiftSignalKit import TelegramPresentationData diff --git a/submodules/TelegramUI/TelegramUI/LegacyInstantVideoController.swift b/submodules/TelegramUI/TelegramUI/LegacyInstantVideoController.swift index 39da4e104f..6c7f420b3c 100644 --- a/submodules/TelegramUI/TelegramUI/LegacyInstantVideoController.swift +++ b/submodules/TelegramUI/TelegramUI/LegacyInstantVideoController.swift @@ -1,5 +1,6 @@ import Foundation import UIKit +import AsyncDisplayKit import Display import TelegramCore import SyncCore diff --git a/submodules/TelegramUI/TelegramUI/OpenResolvedUrl.swift b/submodules/TelegramUI/TelegramUI/OpenResolvedUrl.swift index 3ac3a2bf4f..989bbcc9c5 100644 --- a/submodules/TelegramUI/TelegramUI/OpenResolvedUrl.swift +++ b/submodules/TelegramUI/TelegramUI/OpenResolvedUrl.swift @@ -1,5 +1,6 @@ import Foundation import UIKit +import AsyncDisplayKit import TelegramCore import SyncCore import Postbox diff --git a/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift b/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift index 57e6012d9f..590a686e8b 100644 --- a/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift +++ b/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift @@ -1,4 +1,6 @@ import Foundation +import UIKit +import AsyncDisplayKit import Postbox import TelegramCore import SyncCore diff --git a/submodules/TelegramUI/TelegramUI/SpotlightContacts.swift b/submodules/TelegramUI/TelegramUI/SpotlightContacts.swift index 0904964e64..6f8bf4dd59 100644 --- a/submodules/TelegramUI/TelegramUI/SpotlightContacts.swift +++ b/submodules/TelegramUI/TelegramUI/SpotlightContacts.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import SwiftSignalKit import Postbox import SyncCore diff --git a/submodules/TelegramUIPreferences/Sources/PresentationThemeSettings.swift b/submodules/TelegramUIPreferences/Sources/PresentationThemeSettings.swift index ab9d7e7291..57f98c02d8 100644 --- a/submodules/TelegramUIPreferences/Sources/PresentationThemeSettings.swift +++ b/submodules/TelegramUIPreferences/Sources/PresentationThemeSettings.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import Postbox import TelegramCore import SyncCore diff --git a/submodules/UIKitRuntimeUtils/BUCK b/submodules/UIKitRuntimeUtils/BUCK index 54027145ed..5438bad157 100644 --- a/submodules/UIKitRuntimeUtils/BUCK +++ b/submodules/UIKitRuntimeUtils/BUCK @@ -9,7 +9,7 @@ static_library( "Source/UIKitRuntimeUtils/*.h", ]), deps = [ - "//submodules/AsyncDisplayKit:AsyncDisplayKit", + "//submodules/AsyncDisplayKit:AsyncDisplayKit#shared", "//submodules/ObjCRuntimeUtils:ObjCRuntimeUtils", ], frameworks = [ diff --git a/submodules/UIKitRuntimeUtils/Source/UIKitRuntimeUtils/UIKitUtils.h b/submodules/UIKitRuntimeUtils/Source/UIKitRuntimeUtils/UIKitUtils.h index 71c6a986d7..746f56d6c7 100644 --- a/submodules/UIKitRuntimeUtils/Source/UIKitRuntimeUtils/UIKitUtils.h +++ b/submodules/UIKitRuntimeUtils/Source/UIKitRuntimeUtils/UIKitUtils.h @@ -1,16 +1,11 @@ #import #import -@interface UIView (AnimationUtils) +double animationDurationFactorImpl(); -+ (double)animationDurationFactor; +CABasicAnimation * _Nonnull makeSpringAnimationImpl(NSString * _Nonnull keyPath); +CABasicAnimation * _Nonnull makeSpringBounceAnimationImpl(NSString * _Nonnull keyPath, CGFloat initialVelocity, CGFloat damping); +CGFloat springAnimationValueAtImpl(CABasicAnimation * _Nonnull animation, CGFloat t); -@end - -CABasicAnimation * _Nonnull makeSpringAnimation(NSString * _Nonnull keyPath); -CABasicAnimation * _Nonnull makeSpringBounceAnimation(NSString * _Nonnull keyPath, CGFloat initialVelocity, CGFloat damping); -CGFloat springAnimationValueAt(CABasicAnimation * _Nonnull animation, CGFloat t); - -void testZoomBlurEffect(UIVisualEffect *effect); -UIBlurEffect *makeCustomZoomBlurEffect(); -void applySmoothRoundedCorners(CALayer * _Nonnull layer); +UIBlurEffect *makeCustomZoomBlurEffectImpl(); +void applySmoothRoundedCornersImpl(CALayer * _Nonnull layer); diff --git a/submodules/UIKitRuntimeUtils/Source/UIKitRuntimeUtils/UIKitUtils.m b/submodules/UIKitRuntimeUtils/Source/UIKitRuntimeUtils/UIKitUtils.m index acd7194ccf..267fd0d26c 100644 --- a/submodules/UIKitRuntimeUtils/Source/UIKitRuntimeUtils/UIKitUtils.m +++ b/submodules/UIKitRuntimeUtils/Source/UIKitRuntimeUtils/UIKitUtils.m @@ -3,22 +3,16 @@ #import #if TARGET_IPHONE_SIMULATOR -UIKIT_EXTERN float UIAnimationDragCoefficient(); // UIKit private drag coeffient, use judiciously +UIKIT_EXTERN float UIAnimationDragCoefficient(); #endif -@implementation UIView (AnimationUtils) - -+ (double)animationDurationFactor -{ +double animationDurationFactorImpl() { #if TARGET_IPHONE_SIMULATOR return (double)UIAnimationDragCoefficient(); -#endif - +#endif return 1.0f; } -@end - @interface CASpringAnimation () @end @@ -54,7 +48,7 @@ UIKIT_EXTERN float UIAnimationDragCoefficient(); // UIKit private drag coeffient @end -CABasicAnimation * _Nonnull makeSpringAnimation(NSString * _Nonnull keyPath) { +CABasicAnimation * _Nonnull makeSpringAnimationImpl(NSString * _Nonnull keyPath) { CASpringAnimation *springAnimation = [CASpringAnimation animationWithKeyPath:keyPath]; springAnimation.mass = 3.0f; springAnimation.stiffness = 1000.0f; @@ -64,7 +58,7 @@ CABasicAnimation * _Nonnull makeSpringAnimation(NSString * _Nonnull keyPath) { return springAnimation; } -CABasicAnimation * _Nonnull makeSpringBounceAnimation(NSString * _Nonnull keyPath, CGFloat initialVelocity, CGFloat damping) { +CABasicAnimation * _Nonnull makeSpringBounceAnimationImpl(NSString * _Nonnull keyPath, CGFloat initialVelocity, CGFloat damping) { CASpringAnimation *springAnimation = [CASpringAnimation animationWithKeyPath:keyPath]; springAnimation.mass = 5.0f; springAnimation.stiffness = 900.0f; @@ -84,7 +78,7 @@ CABasicAnimation * _Nonnull makeSpringBounceAnimation(NSString * _Nonnull keyPat return springAnimation; } -CGFloat springAnimationValueAt(CABasicAnimation * _Nonnull animation, CGFloat t) { +CGFloat springAnimationValueAtImpl(CABasicAnimation * _Nonnull animation, CGFloat t) { return [(CASpringAnimation *)animation valueAt:t]; } @@ -110,9 +104,6 @@ CGFloat springAnimationValueAt(CABasicAnimation * _Nonnull animation, CGFloat t) @end -void testZoomBlurEffect(UIVisualEffect *effect) { -} - static NSString *encodeText(NSString *string, int key) { NSMutableString *result = [[NSMutableString alloc] init]; @@ -168,7 +159,7 @@ static void setBoolField(CustomBlurEffect *object, NSString *name, BOOL value) { [inv invoke]; } -UIBlurEffect *makeCustomZoomBlurEffect() { +UIBlurEffect *makeCustomZoomBlurEffectImpl() { if (@available(iOS 11.0, *)) { NSString *string = [@[@"_", @"UI", @"Custom", @"BlurEffect"] componentsJoinedByString:@""]; CustomBlurEffect *result = (CustomBlurEffect *)[NSClassFromString(string) effectWithStyle:0]; @@ -193,7 +184,7 @@ UIBlurEffect *makeCustomZoomBlurEffect() { } } -void applySmoothRoundedCorners(CALayer * _Nonnull layer) { +void applySmoothRoundedCornersImpl(CALayer * _Nonnull layer) { if (@available(iOS 11.0, *)) { setBoolField(layer, encodeText(@"tfuDpoujovpvtDpsofst;", -1), true); }