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)?
|
var pressed: (() -> Void)?
|
||||||
|
|
||||||
|
private let displayLoading: Bool
|
||||||
private var isSelected: Bool = false
|
private var isSelected: Bool = false
|
||||||
private var isLoaded: Bool = false
|
private var isLoaded: Bool = false
|
||||||
|
|
||||||
private let isLoadedDisposable = MetaDisposable()
|
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.imageNode.contentAnimations = [.subsequentUpdates]
|
||||||
|
|
||||||
self.statusNode = RadialStatusNode(backgroundNodeColor: overlayBackgroundColor)
|
self.statusNode = RadialStatusNode(backgroundNodeColor: overlayBackgroundColor)
|
||||||
@ -86,7 +88,7 @@ final class SettingsThemeWallpaperNode: ASDisplayNode {
|
|||||||
|
|
||||||
private func updateStatus(animated: Bool) {
|
private func updateStatus(animated: Bool) {
|
||||||
if self.isSelected {
|
if self.isSelected {
|
||||||
if self.isLoaded {
|
if self.isLoaded || !displayLoading {
|
||||||
self.statusNode.transitionToState(.check(.white), animated: animated, completion: {})
|
self.statusNode.transitionToState(.check(.white), animated: animated, completion: {})
|
||||||
} else {
|
} else {
|
||||||
self.statusNode.transitionToState(.progress(color: .white, lineWidth: nil, value: nil, cancelEnabled: false, animateRotation: true), animated: animated, completion: {})
|
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?
|
private var interaction: ThemeColorsGridControllerInteraction?
|
||||||
|
|
||||||
override init() {
|
override init() {
|
||||||
self.wallpaperNode = SettingsThemeWallpaperNode()
|
self.wallpaperNode = SettingsThemeWallpaperNode(displayLoading: false)
|
||||||
super.init()
|
super.init()
|
||||||
|
|
||||||
self.addSubnode(self.wallpaperNode)
|
self.addSubnode(self.wallpaperNode)
|
||||||
|
@ -52,7 +52,7 @@ final class ThemeGridControllerItemNode: GridItemNode {
|
|||||||
private var item: ThemeGridControllerItem?
|
private var item: ThemeGridControllerItem?
|
||||||
|
|
||||||
override init() {
|
override init() {
|
||||||
self.wallpaperNode = SettingsThemeWallpaperNode()
|
self.wallpaperNode = SettingsThemeWallpaperNode(displayLoading: false)
|
||||||
|
|
||||||
super.init()
|
super.init()
|
||||||
|
|
||||||
|
@ -128,7 +128,7 @@ private final class WallpaperPatternItemNode : ListViewItemNode {
|
|||||||
var item: WallpaperPatternItem?
|
var item: WallpaperPatternItem?
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
self.wallpaperNode = SettingsThemeWallpaperNode()
|
self.wallpaperNode = SettingsThemeWallpaperNode(displayLoading: true)
|
||||||
|
|
||||||
super.init(layerBacked: false, dynamicBounce: false, rotated: false, seeThrough: false)
|
super.init(layerBacked: false, dynamicBounce: false, rotated: false, seeThrough: false)
|
||||||
|
|
||||||
@ -347,7 +347,7 @@ final class WallpaperPatternPanelNode: ASDisplayNode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for wallpaper in self.wallpapers {
|
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.clipsToBounds = true
|
||||||
node.cornerRadius = 5.0
|
node.cornerRadius = 5.0
|
||||||
|
|
||||||
|
@ -107,7 +107,6 @@ public func chatControllerBackgroundImage(theme: PresentationTheme?, wallpaper i
|
|||||||
private var signalBackgroundImageForWallpaper: (TelegramWallpaper, Bool, UIImage)?
|
private var signalBackgroundImageForWallpaper: (TelegramWallpaper, Bool, UIImage)?
|
||||||
|
|
||||||
public func chatControllerBackgroundImageSignal(wallpaper: TelegramWallpaper, mediaBox: MediaBox, accountMediaBox: MediaBox) -> Signal<(UIImage?, Bool)?, NoError> {
|
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 {
|
if wallpaper == signalBackgroundImageForWallpaper?.0, (wallpaper.settings?.blur ?? false) == signalBackgroundImageForWallpaper?.1, let image = signalBackgroundImageForWallpaper?.2 {
|
||||||
return .single((image, true))
|
return .single((image, true))
|
||||||
} else {
|
} else {
|
||||||
@ -259,7 +258,7 @@ public func chatControllerBackgroundImageSignal(wallpaper: TelegramWallpaper, me
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return Signal { subscriber in
|
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
|
let data = accountMediaBox.resourceData(file.file.resource).start(next: { data in
|
||||||
if data.complete {
|
if data.complete {
|
||||||
if let image = UIImage(contentsOfFile: data.path)?.precomposed() {
|
if let image = UIImage(contentsOfFile: data.path)?.precomposed() {
|
||||||
|
@ -267,6 +267,7 @@ public final class WallpaperBackgroundNode: ASDisplayNode {
|
|||||||
let size: CGSize
|
let size: CGSize
|
||||||
let patternColor: UInt32
|
let patternColor: UInt32
|
||||||
let backgroundColor: UInt32
|
let backgroundColor: UInt32
|
||||||
|
let invertPattern: Bool
|
||||||
}
|
}
|
||||||
private var validPatternGeneratedImage: ValidPatternGeneratedImage?
|
private var validPatternGeneratedImage: ValidPatternGeneratedImage?
|
||||||
|
|
||||||
@ -527,7 +528,11 @@ public final class WallpaperBackgroundNode: ASDisplayNode {
|
|||||||
self.patternImageNode.layer.compositingFilter = nil
|
self.patternImageNode.layer.compositingFilter = nil
|
||||||
} else {
|
} else {
|
||||||
self.patternImageNode.alpha = intensity
|
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
|
self.patternImageNode.isHidden = false
|
||||||
invertPattern = intensity < 0
|
invertPattern = intensity < 0
|
||||||
@ -566,7 +571,7 @@ public final class WallpaperBackgroundNode: ASDisplayNode {
|
|||||||
patternBackgroundColor = .clear
|
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 {
|
if self.validPatternGeneratedImage != updatedGeneratedImage {
|
||||||
self.validPatternGeneratedImage = updatedGeneratedImage
|
self.validPatternGeneratedImage = updatedGeneratedImage
|
||||||
|
Loading…
x
Reference in New Issue
Block a user