diff --git a/submodules/SettingsUI/Sources/ThemeCarouselItem.swift b/submodules/SettingsUI/Sources/ThemeCarouselItem.swift index 80fb839bf8..7061318417 100644 --- a/submodules/SettingsUI/Sources/ThemeCarouselItem.swift +++ b/submodules/SettingsUI/Sources/ThemeCarouselItem.swift @@ -711,11 +711,10 @@ class ThemeCarouselThemeItemNode: ListViewItemNode, ItemListItemNode { strongSelf.item = item strongSelf.layoutParams = params - strongSelf.listNode.backgroundColor = item.theme.list.itemBlocksBackgroundColor strongSelf.backgroundNode.backgroundColor = item.theme.list.itemBlocksBackgroundColor strongSelf.topStripeNode.backgroundColor = item.theme.list.itemBlocksSeparatorColor strongSelf.bottomStripeNode.backgroundColor = item.theme.list.itemBlocksSeparatorColor - + if strongSelf.backgroundNode.supernode == nil { strongSelf.containerNode.insertSubnode(strongSelf.backgroundNode, at: 0) } @@ -828,10 +827,11 @@ class ThemeCarouselThemeItemNode: ListViewItemNode, ItemListItemNode { self.snapshotView = snapshotView } - self.listNode.forEachVisibleItemNode { node in + self.listNode.enumerateItemNodes { node in if let node = node as? ThemeCarouselThemeItemIconNode { node.prepareCrossfadeTransition() } + return true } } @@ -839,22 +839,23 @@ class ThemeCarouselThemeItemNode: ListViewItemNode, ItemListItemNode { guard self.snapshotView?.layer.animationKeys()?.isEmpty ?? true else { return } - + var views: [UIView] = [] if let snapshotView = self.snapshotView { views.append(snapshotView) self.snapshotView = nil } - - self.listNode.forEachVisibleItemNode { node in + + self.listNode.enumerateItemNodes { node in if let node = node as? ThemeCarouselThemeItemIconNode { if let snapshotView = node.snapshotView { views.append(snapshotView) node.snapshotView = nil } } + return true } - + UIView.animate(withDuration: 0.3, animations: { for view in views { view.alpha = 0.0 diff --git a/submodules/SettingsUI/Sources/Themes/ThemeSettingsController.swift b/submodules/SettingsUI/Sources/Themes/ThemeSettingsController.swift index 1009b43d5b..93eab9cfd5 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeSettingsController.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeSettingsController.swift @@ -1292,9 +1292,7 @@ public final class ThemeSettingsCrossfadeController: ViewController { public init(view: UIView? = nil, topOffset: CGFloat? = nil, bottomOffset: CGFloat? = nil, leftOffset: CGFloat? = nil, sideInset: CGFloat = 0.0) { if let view = view { - if var leftOffset = leftOffset { - leftOffset += UIScreenPixel - + if let leftOffset = leftOffset { if let view = view.snapshotView(afterScreenUpdates: false) { let clipView = UIView() clipView.clipsToBounds = true @@ -1306,13 +1304,13 @@ public final class ThemeSettingsCrossfadeController: ViewController { if let topOffset = topOffset, let bottomOffset = bottomOffset { var frame = view.frame frame.origin.y = topOffset - frame.size.width = leftOffset + frame.size.width = leftOffset + sideInset frame.size.height = bottomOffset - topOffset clipView.frame = frame frame = view.frame frame.origin.y = -topOffset - frame.size.width = leftOffset + frame.size.width = leftOffset + sideInset frame.size.height = bottomOffset view.frame = frame } @@ -1322,7 +1320,7 @@ public final class ThemeSettingsCrossfadeController: ViewController { } if sideInset > 0.0 { - if let view = view.snapshotView(afterScreenUpdates: false) { + if let view = view.snapshotView(afterScreenUpdates: false), leftOffset == nil { let clipView = UIView() clipView.clipsToBounds = true clipView.addSubview(view) diff --git a/submodules/WallpaperBackgroundNode/Sources/WallpaperBackgroundNode.swift b/submodules/WallpaperBackgroundNode/Sources/WallpaperBackgroundNode.swift index cdd22ea5f5..0095b1c454 100644 --- a/submodules/WallpaperBackgroundNode/Sources/WallpaperBackgroundNode.swift +++ b/submodules/WallpaperBackgroundNode/Sources/WallpaperBackgroundNode.swift @@ -154,6 +154,7 @@ private final class EffectImageLayer: SimpleLayer, GradientBackgroundPatternOver } private var isUsingSoftlight: Bool = false + private var useFilter: Bool = false var suspendCompositionUpdates: Bool = false private var needsCompositionUpdate: Bool = false @@ -172,10 +173,11 @@ private final class EffectImageLayer: SimpleLayer, GradientBackgroundPatternOver useSoftlight = true useFilter = false } - if self.isUsingSoftlight != useSoftlight { + if self.isUsingSoftlight != useSoftlight || self.useFilter != useFilter { self.isUsingSoftlight = useSoftlight + self.useFilter = useFilter - if self.isUsingSoftlight && useFilter { + if self.isUsingSoftlight && self.useFilter { self.compositingFilter = "softLightBlendMode" } else { self.compositingFilter = nil @@ -842,10 +844,6 @@ final class WallpaperBackgroundNodeImpl: ASDisplayNode, WallpaperBackgroundNode } private static var cachedSharedPattern: (PatternKey, UIImage)? - //private var inlineAnimationNodes: [(AnimatedStickerNode, CGPoint)] = [] - //private let hierarchyTrackingLayer = HierarchyTrackingLayer() - //private var activateInlineAnimationTimer: SwiftSignalKit.Timer? - private let _isReady = ValuePromise(false, ignoreRepeated: true) var isReady: Signal { return self._isReady.get() @@ -1308,13 +1306,6 @@ final class WallpaperBackgroundNodeImpl: ASDisplayNode, WallpaperBackgroundNode } self.loadPatternForSizeIfNeeded(size: size, displayMode: displayMode, transition: transition) - - /*for (animationNode, relativePosition) in self.inlineAnimationNodes { - let sizeNorm = CGSize(width: 1440, height: 2960) - let animationSize = CGSize(width: 512.0 / sizeNorm.width * size.width, height: 512.0 / sizeNorm.height * size.height) - animationNode.frame = CGRect(origin: CGPoint(x: relativePosition.x / sizeNorm.width * size.width, y: relativePosition.y / sizeNorm.height * size.height), size: animationSize) - animationNode.updateLayout(size: animationNode.frame.size) - }*/ if isFirstLayout && !self.frame.isEmpty { self.updateScale()