Avatar improvements

This commit is contained in:
Ilya Laktyushin
2023-01-31 16:07:55 +04:00
parent a6009be37c
commit bbf21bfe17
7 changed files with 64 additions and 40 deletions

View File

@@ -68,13 +68,13 @@ enum AvatarBackground: Equatable {
}
private let defaultBackgrounds: [AvatarBackground] = [
.gradient([0xff72d5fd, 0xff2a9ef1]),
.gradient([0xffff885e, 0xffff516a]),
.gradient([0xffffcd6a, 0xffffa85c]),
.gradient([0xffa0de7e, 0xff54cb68]),
.gradient([0xff00fcfd, 0xff4acccd]),
.gradient([0xffe0a2f3, 0xffd669ed]),
.gradient([0xff82b1ff, 0xff665fff]),
.gradient([0xFF5A7FFF, 0xFF2CA0F2, 0xFF4DFF89, 0xFF6BFCEB]),
.gradient([0xFFFF011D, 0xFFFF530D, 0xFFFE64DC, 0xFFFFDC61]),
.gradient([0xFFFE64DC, 0xFFFF6847, 0xFFFFDD02, 0xFFFFAE10]),
.gradient([0xFF84EC00, 0xFF00B7C2, 0xFF00C217, 0xFFFFE600]),
.gradient([0xFF86B0FF, 0xFF35FFCF, 0xFF69FFFF, 0xFF76DEFF]),
.gradient([0xFFFAE100, 0xFFFF54EE, 0xFFFC2B78, 0xFFFF52D9]),
.gradient([0xFF73A4FF, 0xFF5F55FF, 0xFFFF49F8, 0xFFEC76FF]),
]
public struct AvatarKeyboardInputData: Equatable {

View File

@@ -180,11 +180,12 @@ final class AvatarPreviewComponent: Component {
self.imageView.frame = CGRect(origin: .zero, size: availableSize)
if previousBackground != component.background {
if let _ = previousBackground, !transition.animation.isImmediate, let snapshotView = self.imageView.snapshotContentTree() {
self.insertSubview(snapshotView, aboveSubview: self.imageView)
snapshotView.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.3, removeOnCompletion: false, completion: { [weak snapshotView] _ in
snapshotView?.removeFromSuperview()
if let _ = previousBackground, !transition.animation.isImmediate {
UIView.transition(with: self.imageView, duration: 0.2, options: .transitionCrossDissolve, animations: {
self.imageView.image = component.background.generateImage(size: availableSize)
})
} else {
self.imageView.image = component.background.generateImage(size: availableSize)
}
self.imageView.image = component.background.generateImage(size: availableSize)
}