Fix wallpapers

This commit is contained in:
Ali 2021-06-11 20:59:39 +04:00
parent 0ad74c49b7
commit f71b103013
4 changed files with 19 additions and 17 deletions

View File

@ -239,10 +239,17 @@ final class ThemeGridController: ViewController {
strongSelf.present(controller, in: .window(.root))
let _ = resetWallpapers(account: strongSelf.context.account).start(completed: { [weak self, weak controller] in
let presentationData = strongSelf.presentationData
let _ = updatePresentationThemeSettingsInteractively(accountManager: strongSelf.context.sharedContext.accountManager, { current in
return current.withUpdatedThemeSpecificChatWallpapers([:])
}).start()
let _ = (strongSelf.context.sharedContext.accountManager.transaction { transaction in
WallpapersState.update(transaction: transaction, { state in
var state = state
state.wallpapers.removeAll()
return state
})
}).start()
let _ = (telegramWallpapers(postbox: strongSelf.context.account.postbox, network: strongSelf.context.account.network)
|> deliverOnMainQueue).start(completed: { [weak self, weak controller] in

View File

@ -363,20 +363,6 @@ final class ThemeGridControllerNode: ASDisplayNode {
index += 1
}
}
if !entries.contains(where: { entry in
if case .gradient(defaultBuiltinWallpaperGradientColors.map(\.rgb), _) = entry.wallpaper {
return true
} else {
return false
}
}) {
let entry = ThemeGridControllerEntry(index: 1, wallpaper: .gradient(defaultBuiltinWallpaperGradientColors.map(\.rgb), WallpaperSettings()), isEditable: false, isSelected: false)
if !entries.contains(where: { $0.stableId == entry.stableId }) {
entries.insert(entry, at: index)
index += 1
}
}
var sortedWallpapers: [TelegramWallpaper] = []
if presentationData.theme.overallDarkAppearance {

View File

@ -573,6 +573,7 @@ final class ChatMessageInteractiveMediaNode: ASDisplayNode, GalleryItemTransitio
if case let .file(_, patternColors, rotation, intensity, _, _) = wallpaper.content {
var colors: [UIColor] = []
var customPatternColor: UIColor? = nil
var bakePatternAlpha: CGFloat = 1.0
if let intensity = intensity, intensity < 0 {
if patternColors.isEmpty {
colors.append(UIColor(rgb: 0xd6e2ee, alpha: 0.5))
@ -588,8 +589,9 @@ final class ChatMessageInteractiveMediaNode: ASDisplayNode, GalleryItemTransitio
}
let isLight = UIColor.average(of: patternColors.map(UIColor.init(rgb:))).hsb.b > 0.3
customPatternColor = isLight ? .black : .white
bakePatternAlpha = CGFloat(intensity ?? 50) / 100.0
}
patternArguments = PatternWallpaperArguments(colors: colors, rotation: rotation, customPatternColor: customPatternColor)
patternArguments = PatternWallpaperArguments(colors: colors, rotation: rotation, customPatternColor: customPatternColor, bakePatternAlpha: bakePatternAlpha)
}
}

View File

@ -302,12 +302,14 @@ public struct PatternWallpaperArguments: TransformImageCustomArguments {
let rotation: Int32?
let preview: Bool
let customPatternColor: UIColor?
let bakePatternAlpha: CGFloat
public init(colors: [UIColor], rotation: Int32?, customPatternColor: UIColor? = nil, preview: Bool = false) {
public init(colors: [UIColor], rotation: Int32?, customPatternColor: UIColor? = nil, preview: Bool = false, bakePatternAlpha: CGFloat = 1.0) {
self.colors = colors
self.rotation = rotation
self.customPatternColor = customPatternColor
self.preview = preview
self.bakePatternAlpha = bakePatternAlpha
}
public func serialized() -> NSArray {
@ -318,6 +320,7 @@ public struct PatternWallpaperArguments: TransformImageCustomArguments {
array.add(NSNumber(value: customPatternColor.argb))
}
array.add(NSNumber(value: self.preview))
array.add(NSNumber(value: Double(self.bakePatternAlpha)))
return array
}
}
@ -552,6 +555,9 @@ public func patternWallpaperImageInternal(thumbnailData: Data?, fullSizeData: Da
c.setBlendMode(.softLight)
}
if let overlayImage = overlayImage {
if customArguments.bakePatternAlpha != 1.0 {
c.setAlpha(customArguments.bakePatternAlpha)
}
c.translateBy(x: drawingRect.midX, y: drawingRect.midY)
c.scaleBy(x: 1.0, y: -1.0)
c.translateBy(x: -drawingRect.midX, y: -drawingRect.midY)
@ -559,6 +565,7 @@ public func patternWallpaperImageInternal(thumbnailData: Data?, fullSizeData: Da
c.translateBy(x: drawingRect.midX, y: drawingRect.midY)
c.scaleBy(x: 1.0, y: -1.0)
c.translateBy(x: -drawingRect.midX, y: -drawingRect.midY)
c.setAlpha(1.0)
}
}
addCorners(context, arguments: arguments)