mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-07-04 10:30:42 +00:00
Merge branch 'master' of gitlab.com:peter-iakovlev/telegram-ios
This commit is contained in:
commit
57d334ea83
@ -42,12 +42,14 @@ final class SettingsThemeWallpaperNode: ASDisplayNode {
|
||||
|
||||
var pressed: (() -> Void)?
|
||||
|
||||
private let displayLoading: Bool
|
||||
private var isSelected: Bool = false
|
||||
private var isLoaded: Bool = false
|
||||
|
||||
private let isLoadedDisposable = MetaDisposable()
|
||||
|
||||
init(overlayBackgroundColor: UIColor = UIColor(white: 0.0, alpha: 0.3)) {
|
||||
init(displayLoading: Bool = false, overlayBackgroundColor: UIColor = UIColor(white: 0.0, alpha: 0.3)) {
|
||||
self.displayLoading = displayLoading
|
||||
self.imageNode.contentAnimations = [.subsequentUpdates]
|
||||
|
||||
self.statusNode = RadialStatusNode(backgroundNodeColor: overlayBackgroundColor)
|
||||
@ -86,7 +88,7 @@ final class SettingsThemeWallpaperNode: ASDisplayNode {
|
||||
|
||||
private func updateStatus(animated: Bool) {
|
||||
if self.isSelected {
|
||||
if self.isLoaded {
|
||||
if self.isLoaded || !displayLoading {
|
||||
self.statusNode.transitionToState(.check(.white), animated: animated, completion: {})
|
||||
} else {
|
||||
self.statusNode.transitionToState(.progress(color: .white, lineWidth: nil, value: nil, cancelEnabled: false, animateRotation: true), animated: animated, completion: {})
|
||||
|
@ -47,7 +47,7 @@ final class ThemeColorsGridControllerItemNode: GridItemNode {
|
||||
private var interaction: ThemeColorsGridControllerInteraction?
|
||||
|
||||
override init() {
|
||||
self.wallpaperNode = SettingsThemeWallpaperNode()
|
||||
self.wallpaperNode = SettingsThemeWallpaperNode(displayLoading: false)
|
||||
super.init()
|
||||
|
||||
self.addSubnode(self.wallpaperNode)
|
||||
|
@ -52,7 +52,7 @@ final class ThemeGridControllerItemNode: GridItemNode {
|
||||
private var item: ThemeGridControllerItem?
|
||||
|
||||
override init() {
|
||||
self.wallpaperNode = SettingsThemeWallpaperNode()
|
||||
self.wallpaperNode = SettingsThemeWallpaperNode(displayLoading: false)
|
||||
|
||||
super.init()
|
||||
|
||||
|
@ -128,7 +128,7 @@ private final class WallpaperPatternItemNode : ListViewItemNode {
|
||||
var item: WallpaperPatternItem?
|
||||
|
||||
init() {
|
||||
self.wallpaperNode = SettingsThemeWallpaperNode()
|
||||
self.wallpaperNode = SettingsThemeWallpaperNode(displayLoading: true)
|
||||
|
||||
super.init(layerBacked: false, dynamicBounce: false, rotated: false, seeThrough: false)
|
||||
|
||||
@ -347,7 +347,7 @@ final class WallpaperPatternPanelNode: ASDisplayNode {
|
||||
}
|
||||
|
||||
for wallpaper in self.wallpapers {
|
||||
let node = SettingsThemeWallpaperNode(overlayBackgroundColor: self.serviceBackgroundColor.withAlphaComponent(0.4))
|
||||
let node = SettingsThemeWallpaperNode(displayLoading: true, overlayBackgroundColor: self.serviceBackgroundColor.withAlphaComponent(0.4))
|
||||
node.clipsToBounds = true
|
||||
node.cornerRadius = 5.0
|
||||
|
||||
|
@ -107,7 +107,6 @@ public func chatControllerBackgroundImage(theme: PresentationTheme?, wallpaper i
|
||||
private var signalBackgroundImageForWallpaper: (TelegramWallpaper, Bool, UIImage)?
|
||||
|
||||
public func chatControllerBackgroundImageSignal(wallpaper: TelegramWallpaper, mediaBox: MediaBox, accountMediaBox: MediaBox) -> Signal<(UIImage?, Bool)?, NoError> {
|
||||
var backgroundImage: UIImage?
|
||||
if wallpaper == signalBackgroundImageForWallpaper?.0, (wallpaper.settings?.blur ?? false) == signalBackgroundImageForWallpaper?.1, let image = signalBackgroundImageForWallpaper?.2 {
|
||||
return .single((image, true))
|
||||
} else {
|
||||
@ -259,7 +258,7 @@ public func chatControllerBackgroundImageSignal(wallpaper: TelegramWallpaper, me
|
||||
}
|
||||
} else {
|
||||
return Signal { subscriber in
|
||||
let fetch = fetchedMediaResource(mediaBox: accountMediaBox, reference: MediaResourceReference.standalone(resource: file.file.resource)).start()
|
||||
let fetch = fetchedMediaResource(mediaBox: accountMediaBox, reference: MediaResourceReference.wallpaper(wallpaper: WallpaperReference.slug(file.slug), resource: file.file.resource)).start()
|
||||
let data = accountMediaBox.resourceData(file.file.resource).start(next: { data in
|
||||
if data.complete {
|
||||
if let image = UIImage(contentsOfFile: data.path)?.precomposed() {
|
||||
|
@ -267,6 +267,7 @@ public final class WallpaperBackgroundNode: ASDisplayNode {
|
||||
let size: CGSize
|
||||
let patternColor: UInt32
|
||||
let backgroundColor: UInt32
|
||||
let invertPattern: Bool
|
||||
}
|
||||
private var validPatternGeneratedImage: ValidPatternGeneratedImage?
|
||||
|
||||
@ -527,7 +528,11 @@ public final class WallpaperBackgroundNode: ASDisplayNode {
|
||||
self.patternImageNode.layer.compositingFilter = nil
|
||||
} else {
|
||||
self.patternImageNode.alpha = intensity
|
||||
self.patternImageNode.layer.compositingFilter = "softLightBlendMode"
|
||||
if patternIsLight {
|
||||
self.patternImageNode.layer.compositingFilter = "softLightBlendMode"
|
||||
} else {
|
||||
self.patternImageNode.layer.compositingFilter = nil
|
||||
}
|
||||
}
|
||||
self.patternImageNode.isHidden = false
|
||||
invertPattern = intensity < 0
|
||||
@ -566,7 +571,7 @@ public final class WallpaperBackgroundNode: ASDisplayNode {
|
||||
patternBackgroundColor = .clear
|
||||
}
|
||||
|
||||
let updatedGeneratedImage = ValidPatternGeneratedImage(wallpaper: validPatternImage.wallpaper, size: size, patternColor: patternColor.rgb, backgroundColor: patternBackgroundColor.rgb)
|
||||
let updatedGeneratedImage = ValidPatternGeneratedImage(wallpaper: validPatternImage.wallpaper, size: size, patternColor: patternColor.rgb, backgroundColor: patternBackgroundColor.rgb, invertPattern: invertPattern)
|
||||
|
||||
if self.validPatternGeneratedImage != updatedGeneratedImage {
|
||||
self.validPatternGeneratedImage = updatedGeneratedImage
|
||||
|
Loading…
x
Reference in New Issue
Block a user