diff --git a/submodules/SettingsUI/Sources/Themes/ThemeGridController.swift b/submodules/SettingsUI/Sources/Themes/ThemeGridController.swift index 589c7b1e4d..9c7205a8e0 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeGridController.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeGridController.swift @@ -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 diff --git a/submodules/SettingsUI/Sources/Themes/ThemeGridControllerNode.swift b/submodules/SettingsUI/Sources/Themes/ThemeGridControllerNode.swift index 63f7d215e3..0b537e4654 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeGridControllerNode.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeGridControllerNode.swift @@ -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 { diff --git a/submodules/TelegramUI/Sources/ChatMessageInteractiveMediaNode.swift b/submodules/TelegramUI/Sources/ChatMessageInteractiveMediaNode.swift index d865a95afc..52b7140037 100644 --- a/submodules/TelegramUI/Sources/ChatMessageInteractiveMediaNode.swift +++ b/submodules/TelegramUI/Sources/ChatMessageInteractiveMediaNode.swift @@ -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) } } diff --git a/submodules/WallpaperResources/Sources/WallpaperResources.swift b/submodules/WallpaperResources/Sources/WallpaperResources.swift index df34699aca..423ebbcbec 100644 --- a/submodules/WallpaperResources/Sources/WallpaperResources.swift +++ b/submodules/WallpaperResources/Sources/WallpaperResources.swift @@ -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)