From e1b4af14616d6fc055f7c20aec99cf18bfd70b5e Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Fri, 22 Jul 2022 17:46:09 +0300 Subject: [PATCH] Various fixes --- .../AttachmentTextInputPanelNode.swift | 2 +- .../Sources/AttachmentPanel.swift | 1 + .../Sources/BotCheckoutControllerNode.swift | 6 + .../BotCheckoutPaymentMethodSheet.swift | 6 + .../Sources/ChatTextInputPanelState.swift | 27 +-- submodules/ChatSendMessageActionUI/BUILD | 1 + ...ChatSendMessageActionSheetController.swift | 10 +- ...SendMessageActionSheetControllerNode.swift | 25 ++- .../Sources/LottieAnimationComponent.swift | 5 +- .../Display/Source/TooltipController.swift | 6 +- .../Source/TooltipControllerNode.swift | 4 +- .../PremiumUI/Sources/PremiumGiftScreen.swift | 11 +- .../Sources/StickerPackEmojisItem.swift | 6 + .../Payments/BotPaymentForm.swift | 22 ++- .../Resources/Animations/anim_botToKey.json | 1 + .../Resources/Animations/anim_keyToBot.json | 1 + .../Resources/Animations/anim_keyToSmile.json | 1 + .../Animations/anim_keyToSticker.json | 1 + .../Resources/Animations/anim_micToVideo.json | 1 + .../Resources/Animations/anim_smileToKey.json | 1 + .../Animations/anim_stickerToKey.json | 1 + .../Resources/Animations/anim_videoToMic.json | 1 + .../TelegramUI/Sources/ChatController.swift | 6 +- .../Sources/ChatInterfaceInputContexts.swift | 12 +- .../ChatTextInputMediaRecordingButton.swift | 124 +++++++++----- .../Sources/ChatTextInputPanelNode.swift | 157 ++++++++++++++---- .../Sources/PeerSelectionControllerNode.swift | 1 + 27 files changed, 329 insertions(+), 111 deletions(-) create mode 100644 submodules/TelegramUI/Resources/Animations/anim_botToKey.json create mode 100644 submodules/TelegramUI/Resources/Animations/anim_keyToBot.json create mode 100644 submodules/TelegramUI/Resources/Animations/anim_keyToSmile.json create mode 100644 submodules/TelegramUI/Resources/Animations/anim_keyToSticker.json create mode 100644 submodules/TelegramUI/Resources/Animations/anim_micToVideo.json create mode 100644 submodules/TelegramUI/Resources/Animations/anim_smileToKey.json create mode 100644 submodules/TelegramUI/Resources/Animations/anim_stickerToKey.json create mode 100644 submodules/TelegramUI/Resources/Animations/anim_videoToMic.json diff --git a/submodules/AttachmentTextInputPanelNode/Sources/AttachmentTextInputPanelNode.swift b/submodules/AttachmentTextInputPanelNode/Sources/AttachmentTextInputPanelNode.swift index 925a02fd84..ae4ea05956 100644 --- a/submodules/AttachmentTextInputPanelNode/Sources/AttachmentTextInputPanelNode.swift +++ b/submodules/AttachmentTextInputPanelNode/Sources/AttachmentTextInputPanelNode.swift @@ -322,7 +322,7 @@ public class AttachmentTextInputPanelNode: ASDisplayNode, TGCaptionPanelView, AS private var spoilersRevealed = false - private var emojiViewProvider: ((ChatTextInputTextCustomEmojiAttribute) -> UIView)? + public var emojiViewProvider: ((ChatTextInputTextCustomEmojiAttribute) -> UIView)? private let animationCache: AnimationCache private let animationRenderer: MultiAnimationRenderer diff --git a/submodules/AttachmentUI/Sources/AttachmentPanel.swift b/submodules/AttachmentUI/Sources/AttachmentPanel.swift index 996242b0a7..bdc2e56aca 100644 --- a/submodules/AttachmentUI/Sources/AttachmentPanel.swift +++ b/submodules/AttachmentUI/Sources/AttachmentPanel.swift @@ -675,6 +675,7 @@ final class AttachmentPanel: ASDisplayNode, UIScrollViewDelegate { }, schedule: { [weak textInputPanelNode] in textInputPanelNode?.sendMessage(.schedule) }) + controller.emojiViewProvider = textInputPanelNode.emojiViewProvider strongSelf.presentInGlobalOverlay(controller) }, openScheduledMessages: { }, openPeersNearby: { diff --git a/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift b/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift index 8941aaccb8..b4417772ec 100644 --- a/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift +++ b/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift @@ -489,6 +489,9 @@ private func availablePaymentMethods(form: BotPaymentForm, current: BotCheckoutP methods.append(.savedCredentials(savedCredentials)) } } + if !form.additionalPaymentMethods.isEmpty { + methods.append(contentsOf: form.additionalPaymentMethods.map { .other($0) }) + } return methods } @@ -1416,6 +1419,9 @@ final class BotCheckoutControllerNode: ItemListControllerNode, PKPaymentAuthoriz } }) return + case let .other(method): + let _ = method + return } } diff --git a/submodules/BotPaymentsUI/Sources/BotCheckoutPaymentMethodSheet.swift b/submodules/BotPaymentsUI/Sources/BotCheckoutPaymentMethodSheet.swift index c3f64e00d4..054c97d2cf 100644 --- a/submodules/BotPaymentsUI/Sources/BotCheckoutPaymentMethodSheet.swift +++ b/submodules/BotPaymentsUI/Sources/BotCheckoutPaymentMethodSheet.swift @@ -17,6 +17,7 @@ enum BotCheckoutPaymentMethod: Equatable { case savedCredentials(BotPaymentSavedCredentials) case webToken(BotCheckoutPaymentWebToken) case applePay + case other(BotPaymentMethod) var title: String { switch self { @@ -29,6 +30,8 @@ enum BotCheckoutPaymentMethod: Equatable { return token.title case .applePay: return "Apple Pay" + case let .other(method): + return method.title } } } @@ -68,6 +71,9 @@ final class BotCheckoutPaymentMethodSheetController: ActionSheetController { case .applePay: title = "Apple Pay" icon = UIImage(bundleImageName: "Bot Payments/ApplePayLogo")?.precomposed() + case let .other(method): + title = method.title + icon = nil } let value: Bool? if let currentMethod = currentMethod { diff --git a/submodules/ChatPresentationInterfaceState/Sources/ChatTextInputPanelState.swift b/submodules/ChatPresentationInterfaceState/Sources/ChatTextInputPanelState.swift index f973517907..08f5f89fdf 100644 --- a/submodules/ChatPresentationInterfaceState/Sources/ChatTextInputPanelState.swift +++ b/submodules/ChatPresentationInterfaceState/Sources/ChatTextInputPanelState.swift @@ -4,18 +4,23 @@ import SwiftSignalKit public enum ChatTextInputAccessoryItem: Equatable { public enum Key: Hashable { - case keyboard - case stickers - case inputButtons + case input + case botInput case commands case silentPost case messageAutoremoveTimeout case scheduledMessages } - case keyboard - case stickers(isEnabled: Bool, isEmoji: Bool) - case inputButtons + public enum InputMode: Hashable { + case keyboard + case stickers + case emoji + case bot + } + case input(isEnabled: Bool, inputMode: InputMode) + case botInput(isEnabled: Bool, inputMode: InputMode) + case commands case silentPost(Bool) case messageAutoremoveTimeout(Int32?) @@ -23,12 +28,10 @@ public enum ChatTextInputAccessoryItem: Equatable { public var key: Key { switch self { - case .keyboard: - return .keyboard - case .stickers: - return .stickers - case .inputButtons: - return .inputButtons + case .input: + return .input + case .botInput: + return .botInput case .commands: return .commands case .silentPost: diff --git a/submodules/ChatSendMessageActionUI/BUILD b/submodules/ChatSendMessageActionUI/BUILD index f78a1da76a..f031506ecc 100644 --- a/submodules/ChatSendMessageActionUI/BUILD +++ b/submodules/ChatSendMessageActionUI/BUILD @@ -19,6 +19,7 @@ swift_library( "//submodules/ChatPresentationInterfaceState:ChatPresentationInterfaceState", "//submodules/ContextUI:ContextUI", "//submodules/AppBundle:AppBundle", + "//submodules/TextFormat:TextFormat", ], visibility = [ "//visibility:public", diff --git a/submodules/ChatSendMessageActionUI/Sources/ChatSendMessageActionSheetController.swift b/submodules/ChatSendMessageActionUI/Sources/ChatSendMessageActionSheetController.swift index 5f2b3d4077..d191144be9 100644 --- a/submodules/ChatSendMessageActionUI/Sources/ChatSendMessageActionSheetController.swift +++ b/submodules/ChatSendMessageActionUI/Sources/ChatSendMessageActionSheetController.swift @@ -8,6 +8,7 @@ import AccountContext import ContextUI import TelegramCore import ChatPresentationInterfaceState +import TextFormat public final class ChatSendMessageActionSheetController: ViewController { private var controllerNode: ChatSendMessageActionSheetControllerNode { @@ -32,6 +33,8 @@ public final class ChatSendMessageActionSheetController: ViewController { private var validLayout: ContainerViewLayout? private let hapticFeedback = HapticFeedback() + + public var emojiViewProvider: ((ChatTextInputTextCustomEmojiAttribute) -> UIView)? public init(context: AccountContext, updatedPresentationData: (initial: PresentationData, signal: Signal)? = nil, interfaceState: ChatPresentationInterfaceState, gesture: ContextGesture, sourceSendButton: ASDisplayNode, textInputNode: EditableTextNode, attachment: Bool = false, completion: @escaping () -> Void, sendMessage: @escaping (Bool) -> Void, schedule: @escaping () -> Void) { self.context = context @@ -79,13 +82,18 @@ public final class ChatSendMessageActionSheetController: ViewController { var reminders = false var isSecret = false var canSchedule = false + var hasEntityKeyboard = false if case let .peer(peerId) = self.interfaceState.chatLocation { reminders = peerId == context.account.peerId isSecret = peerId.namespace == Namespaces.Peer.SecretChat canSchedule = !isSecret } - self.displayNode = ChatSendMessageActionSheetControllerNode(context: self.context, presentationData: self.presentationData, reminders: reminders, gesture: gesture, sourceSendButton: self.sourceSendButton, textInputNode: self.textInputNode, attachment: self.attachment, forwardedCount: forwardedCount, send: { [weak self] in + if case .media = self.interfaceState.inputMode { + hasEntityKeyboard = true + } + + self.displayNode = ChatSendMessageActionSheetControllerNode(context: self.context, presentationData: self.presentationData, reminders: reminders, gesture: gesture, sourceSendButton: self.sourceSendButton, textInputNode: self.textInputNode, attachment: self.attachment, forwardedCount: forwardedCount, hasEntityKeyboard: hasEntityKeyboard, send: { [weak self] in self?.sendMessage(false) self?.dismiss(cancel: false) }, sendSilently: { [weak self] in diff --git a/submodules/ChatSendMessageActionUI/Sources/ChatSendMessageActionSheetControllerNode.swift b/submodules/ChatSendMessageActionUI/Sources/ChatSendMessageActionSheetControllerNode.swift index 564db9cc8b..8d10ae6b7e 100644 --- a/submodules/ChatSendMessageActionUI/Sources/ChatSendMessageActionSheetControllerNode.swift +++ b/submodules/ChatSendMessageActionUI/Sources/ChatSendMessageActionSheetControllerNode.swift @@ -9,6 +9,7 @@ import TelegramPresentationData import AccountContext import AppBundle import ContextUI +import TextFormat private let leftInset: CGFloat = 16.0 private let rightInset: CGFloat = 16.0 @@ -158,6 +159,7 @@ final class ChatSendMessageActionSheetControllerNode: ViewControllerTracingNode, private let textInputNode: EditableTextNode private let attachment: Bool private let forwardedCount: Int? + private let hasEntityKeyboard: Bool private let send: (() -> Void)? private let cancel: (() -> Void)? @@ -183,7 +185,7 @@ final class ChatSendMessageActionSheetControllerNode: ViewControllerTracingNode, private var animateInputField = false - init(context: AccountContext, presentationData: PresentationData, reminders: Bool, gesture: ContextGesture, sourceSendButton: ASDisplayNode, textInputNode: EditableTextNode, attachment: Bool, forwardedCount: Int?, send: (() -> Void)?, sendSilently: (() -> Void)?, schedule: (() -> Void)?, cancel: (() -> Void)?) { + init(context: AccountContext, presentationData: PresentationData, reminders: Bool, gesture: ContextGesture, sourceSendButton: ASDisplayNode, textInputNode: EditableTextNode, attachment: Bool, forwardedCount: Int?, hasEntityKeyboard: Bool, send: (() -> Void)?, sendSilently: (() -> Void)?, schedule: (() -> Void)?, cancel: (() -> Void)?) { self.context = context self.presentationData = presentationData self.sourceSendButton = sourceSendButton @@ -191,6 +193,7 @@ final class ChatSendMessageActionSheetControllerNode: ViewControllerTracingNode, self.textInputNode = textInputNode self.attachment = attachment self.forwardedCount = forwardedCount + self.hasEntityKeyboard = hasEntityKeyboard self.send = send self.cancel = cancel @@ -422,7 +425,11 @@ final class ChatSendMessageActionSheetControllerNode: ViewControllerTracingNode, let fromFrame = CGRect(origin: CGPoint(), size: CGSize(width: initialWidth, height: self.textFieldFrame.height + 2.0)) let delta = (fromFrame.height - self.messageClipNode.bounds.height) / 2.0 - let inputHeight = layout.inputHeight ?? 0.0 + var inputHeight = layout.inputHeight ?? 0.0 + if self.hasEntityKeyboard { + inputHeight = layout.standardInputHeight + } + var clipDelta = delta if inputHeight.isZero || layout.isNonExclusive { clipDelta -= self.contentContainerNode.frame.height + 16.0 @@ -531,7 +538,11 @@ final class ChatSendMessageActionSheetControllerNode: ViewControllerTracingNode, let delta = (toFrame.height - self.messageClipNode.bounds.height) / 2.0 if cancel && self.animateInputField { - let inputHeight = layout.inputHeight ?? 0.0 + var inputHeight = layout.inputHeight ?? 0.0 + if self.hasEntityKeyboard { + inputHeight = layout.standardInputHeight + } + var clipDelta = delta if inputHeight.isZero || layout.isNonExclusive { clipDelta -= self.contentContainerNode.frame.height + 16.0 @@ -589,8 +600,12 @@ final class ChatSendMessageActionSheetControllerNode: ViewControllerTracingNode, let menuHeightWithInset = contentSize.height + 16.0 - let insets = layout.insets(options: [.statusBar, .input]) - let inputHeight = layout.inputHeight ?? 0.0 + var insets = layout.insets(options: [.statusBar, .input]) + var inputHeight = layout.inputHeight ?? 0.0 + if self.hasEntityKeyboard { + insets.bottom = max(insets.bottom, layout.standardInputHeight) + inputHeight = layout.standardInputHeight + } let contentOffset = self.scrollNode.view.contentOffset.y diff --git a/submodules/Components/LottieAnimationComponent/Sources/LottieAnimationComponent.swift b/submodules/Components/LottieAnimationComponent/Sources/LottieAnimationComponent.swift index df3e9b90a5..299339653d 100644 --- a/submodules/Components/LottieAnimationComponent/Sources/LottieAnimationComponent.swift +++ b/submodules/Components/LottieAnimationComponent/Sources/LottieAnimationComponent.swift @@ -143,6 +143,7 @@ public final class LottieAnimationComponent: Component { } strongSelf.didPlayToCompletion = true let _ = strongSelf.update(component: component, availableSize: availableSize, transition: transition) + strongSelf.currentCompletion = nil } animationView.loopMode = .playOnce } else { @@ -175,10 +176,10 @@ public final class LottieAnimationComponent: Component { updatePlayback = true } } + } else { + self.component = component } - self.component = component - if updateColors, let animationView = self.animationView { if let value = component.colors["__allcolors__"] { for keypath in animationView.allKeypaths(predicate: { $0.keys.last == "Color" }) { diff --git a/submodules/Display/Source/TooltipController.swift b/submodules/Display/Source/TooltipController.swift index c9ee3dcf3a..1ab86d59ef 100644 --- a/submodules/Display/Source/TooltipController.swift +++ b/submodules/Display/Source/TooltipController.swift @@ -122,12 +122,14 @@ open class TooltipController: ViewController, StandalonePresentableController { private let dismissImmediatelyOnLayoutUpdate: Bool private var timeoutTimer: SwiftSignalKit.Timer? + private var padding: CGFloat + private var layout: ContainerViewLayout? private var initialArrowOnBottom: Bool public var dismissed: ((Bool) -> Void)? - public init(content: TooltipControllerContent, baseFontSize: CGFloat, timeout: Double = 2.0, dismissByTapOutside: Bool = false, dismissByTapOutsideSource: Bool = false, dismissImmediatelyOnLayoutUpdate: Bool = false, arrowOnBottom: Bool = true) { + public init(content: TooltipControllerContent, baseFontSize: CGFloat, timeout: Double = 2.0, dismissByTapOutside: Bool = false, dismissByTapOutsideSource: Bool = false, dismissImmediatelyOnLayoutUpdate: Bool = false, arrowOnBottom: Bool = true, padding: CGFloat = 8.0) { self.content = content self.baseFontSize = baseFontSize self.timeout = timeout @@ -135,6 +137,7 @@ open class TooltipController: ViewController, StandalonePresentableController { self.dismissByTapOutsideSource = dismissByTapOutsideSource self.dismissImmediatelyOnLayoutUpdate = dismissImmediatelyOnLayoutUpdate self.initialArrowOnBottom = arrowOnBottom + self.padding = padding super.init(navigationBarPresentationData: nil) @@ -153,6 +156,7 @@ open class TooltipController: ViewController, StandalonePresentableController { self.displayNode = TooltipControllerNode(content: self.content, baseFontSize: self.baseFontSize, dismiss: { [weak self] tappedInside in self?.dismiss(tappedInside: tappedInside) }, dismissByTapOutside: self.dismissByTapOutside, dismissByTapOutsideSource: self.dismissByTapOutsideSource) + self.controllerNode.padding = self.padding self.controllerNode.arrowOnBottom = self.initialArrowOnBottom self.displayNodeDidLoad() } diff --git a/submodules/Display/Source/TooltipControllerNode.swift b/submodules/Display/Source/TooltipControllerNode.swift index e67cc95e79..d044cbc5f6 100644 --- a/submodules/Display/Source/TooltipControllerNode.swift +++ b/submodules/Display/Source/TooltipControllerNode.swift @@ -19,6 +19,8 @@ final class TooltipControllerNode: ASDisplayNode { var sourceRect: CGRect? var arrowOnBottom: Bool = true + var padding: CGFloat = 8.0 + private var dismissedByTouchOutside = false private var dismissByTapOutsideSource = false @@ -122,7 +124,7 @@ final class TooltipControllerNode: ASDisplayNode { } self.arrowOnBottom = arrowOnBottom - let horizontalOrigin: CGFloat = floor(min(max(8.0, sourceRect.midX - contentSize.width / 2.0), layout.size.width - contentSize.width - 8.0)) + let horizontalOrigin: CGFloat = floor(min(max(self.padding, sourceRect.midX - contentSize.width / 2.0), layout.size.width - contentSize.width - self.padding)) transition.updateFrame(node: self.containerNode, frame: CGRect(origin: CGPoint(x: horizontalOrigin, y: verticalOrigin), size: contentSize)) self.containerNode.relativeArrowPosition = (sourceRect.midX - horizontalOrigin, arrowOnBottom) diff --git a/submodules/PremiumUI/Sources/PremiumGiftScreen.swift b/submodules/PremiumUI/Sources/PremiumGiftScreen.swift index 2dc3ae0916..1a8ebf6a09 100644 --- a/submodules/PremiumUI/Sources/PremiumGiftScreen.swift +++ b/submodules/PremiumUI/Sources/PremiumGiftScreen.swift @@ -373,8 +373,17 @@ private final class GiftComponent: CombinedComponent { ) let size = CGSize(width: context.availableSize.width, height: insets.top + title.size.height + spacing + subtitle.size.height + insets.bottom) + let distance = context.availableSize.width - insets.left - insets.right - label.size.width - subtitle.size.width - discountSize.width - 7.0 + + let labelOriginY: CGFloat + if distance > 8.0 { + labelOriginY = size.height / 2.0 + } else { + labelOriginY = insets.top + title.size.height / 2.0 + } + context.add(label - .position(CGPoint(x: context.availableSize.width - insets.right - label.size.width / 2.0, y: size.height / 2.0)) + .position(CGPoint(x: context.availableSize.width - insets.right - label.size.width / 2.0, y: labelOriginY)) ) context.add(check diff --git a/submodules/StickerPackPreviewUI/Sources/StickerPackEmojisItem.swift b/submodules/StickerPackPreviewUI/Sources/StickerPackEmojisItem.swift index 2b5a4c4404..41773c8e84 100644 --- a/submodules/StickerPackPreviewUI/Sources/StickerPackEmojisItem.swift +++ b/submodules/StickerPackPreviewUI/Sources/StickerPackEmojisItem.swift @@ -348,6 +348,12 @@ final class StickerPackEmojisItemNode: GridItemNode { self.visibleItemLayers[id] = nil } } + for id in self.visibleItemPlaceholderViews.keys { + if !validIds.contains(id) { + self.visibleItemPlaceholderViews[id]?.removeFromSuperview() + self.visibleItemPlaceholderViews[id] = nil + } + } } private func updateShimmerIfNeeded() { diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Payments/BotPaymentForm.swift b/submodules/TelegramCore/Sources/TelegramEngine/Payments/BotPaymentForm.swift index 547c67571f..68acf4a4eb 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Payments/BotPaymentForm.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Payments/BotPaymentForm.swift @@ -120,6 +120,21 @@ public struct BotPaymentForm : Equatable { public let nativeProvider: BotPaymentNativeProvider? public let savedInfo: BotPaymentRequestedInfo? public let savedCredentials: BotPaymentSavedCredentials? + public let additionalPaymentMethods: [BotPaymentMethod] +} + +public struct BotPaymentMethod: Equatable { + public let url: String + public let title: String +} + +extension BotPaymentMethod { + init(apiPaymentFormMethod: Api.PaymentFormMethod) { + switch apiPaymentFormMethod { + case let .paymentFormMethod(url, title): + self.init(url: url, title: title) + } + } } public enum BotPaymentFormRequestError { @@ -270,8 +285,7 @@ func _internal_fetchBotPaymentForm(postbox: Postbox, network: Network, source: B let _ = title let _ = description let _ = photo - let _ = additionalMethods - + var peers: [Peer] = [] for user in apiUsers { let parsed = TelegramUser(user: user) @@ -297,7 +311,9 @@ func _internal_fetchBotPaymentForm(postbox: Postbox, network: Network, source: B parsedSavedCredentials = .card(id: id, title: title) } } - return BotPaymentForm(id: id, canSaveCredentials: (flags & (1 << 2)) != 0, passwordMissing: (flags & (1 << 3)) != 0, invoice: parsedInvoice, paymentBotId: PeerId(namespace: Namespaces.Peer.CloudUser, id: PeerId.Id._internalFromInt64Value(botId)), providerId: PeerId(namespace: Namespaces.Peer.CloudUser, id: PeerId.Id._internalFromInt64Value(providerId)), url: url, nativeProvider: parsedNativeProvider, savedInfo: parsedSavedInfo, savedCredentials: parsedSavedCredentials) + + let additionalPaymentMethods = additionalMethods?.map({ BotPaymentMethod(apiPaymentFormMethod: $0) }) ?? [] + return BotPaymentForm(id: id, canSaveCredentials: (flags & (1 << 2)) != 0, passwordMissing: (flags & (1 << 3)) != 0, invoice: parsedInvoice, paymentBotId: PeerId(namespace: Namespaces.Peer.CloudUser, id: PeerId.Id._internalFromInt64Value(botId)), providerId: PeerId(namespace: Namespaces.Peer.CloudUser, id: PeerId.Id._internalFromInt64Value(providerId)), url: url, nativeProvider: parsedNativeProvider, savedInfo: parsedSavedInfo, savedCredentials: parsedSavedCredentials, additionalPaymentMethods: additionalPaymentMethods) } } |> mapError { _ -> BotPaymentFormRequestError in } diff --git a/submodules/TelegramUI/Resources/Animations/anim_botToKey.json b/submodules/TelegramUI/Resources/Animations/anim_botToKey.json new file mode 100644 index 0000000000..d08ff0f116 --- /dev/null +++ b/submodules/TelegramUI/Resources/Animations/anim_botToKey.json @@ -0,0 +1 @@ +{"v":"5.8.1","fr":60,"ip":0,"op":15,"w":320,"h":320,"nm":"bot_to_keyboard","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Ellipse 27","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[191.15,191.15,0],"to":[0,0,0],"ti":[0,0,0]},{"t":13,"s":[191.15,191.15,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":1,"s":[{"i":[[-1.031,0],[0,-1.031],[1.031,0],[0,1.031]],"o":[[1.031,0],[0,1.031],[-1.031,0],[0,-1.031]],"v":[[0,-1.835],[1.835,0],[0,1.835],[-1.835,0]],"c":true}]},{"t":13,"s":[{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-0.1,-4.435],[1.235,-3.1],[-0.1,-1.765],[-1.435,-3.1]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":1,"s":[0]},{"t":13,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":1,"s":[1.33]},{"t":13,"s":[0]}],"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 27","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Ellipse 25","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[191.15,127.85,0],"to":[0,0,0],"ti":[0,0,0]},{"t":13,"s":[191.15,127.85,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":1,"s":[{"i":[[-1.031,0],[0,-1.031],[1.031,0],[0,1.031]],"o":[[1.031,0],[0,1.031],[-1.031,0],[0,-1.031]],"v":[[0,-1.835],[1.835,0],[0,1.835],[-1.835,0]],"c":true}]},{"t":13,"s":[{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-0.1,-2.135],[1.235,-0.8],[-0.1,0.535],[-1.435,-0.8]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":1,"s":[1.33]},{"t":13,"s":[0]}],"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":1,"s":[0]},{"t":13,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 25","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Ellipse 26","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[127.85,191.15,0],"to":[0,0,0],"ti":[0,0,0]},{"t":13,"s":[127.85,191.15,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":1,"s":[{"i":[[-1.031,0],[0,-1.031],[1.031,0],[0,1.031]],"o":[[1.031,0],[0,1.031],[-1.031,0],[0,-1.031]],"v":[[0,-1.835],[1.835,0],[0,1.835],[-1.835,0]],"c":true}]},{"t":13,"s":[{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-5.775,-4.435],[-4.44,-3.1],[-5.775,-1.765],[-7.11,-3.1]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":1,"s":[1.33]},{"t":13,"s":[0]}],"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":1,"s":[0]},{"t":13,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 26","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Ellipse 24","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[127.85,127.85,0],"to":[0,0,0],"ti":[0,0,0]},{"t":13,"s":[127.85,127.85,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":1,"s":[{"i":[[-1.031,0],[0,-1.031],[1.031,0],[0,1.031]],"o":[[1.031,0],[0,1.031],[-1.031,0],[0,-1.031]],"v":[[0,-1.835],[1.835,0],[0,1.835],[-1.835,0]],"c":true}]},{"t":13,"s":[{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-5.775,-2.11],[-4.44,-0.775],[-5.775,0.56],[-7.11,-0.775]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":1,"s":[1.33]},{"t":13,"s":[0]}],"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":1,"s":[0]},{"t":13,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 24","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Union","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":3,"s":[0]},{"t":13,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":1,"s":[156.051,159.049,0],"to":[-4.333,-4.333,0],"ti":[4.333,4.333,0]},{"t":13,"s":[130.051,140.049,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":1,"s":[50,50,100]},{"t":13,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[2,-3.335],[3.335,-2],[2,-0.665],[0.665,-2]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[2,0.665],[3.335,2],[2,3.335],[0.665,2]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-2,-3.335],[-0.665,-2],[-2,-0.665],[-3.335,-2]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-2,0.665],[-0.665,2],[-2,3.335],[-3.335,2]],"c":true},"ix":2},"nm":"Path 6","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Union","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":1,"s":[1]},{"t":13,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[130,210,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":1,"s":[{"i":[[0,0],[2.363,0],[0,0]],"o":[[0,0],[-2.363,0],[0,0]],"v":[[7.4,2],[2.889,2],[-1.6,2]],"c":false}]},{"t":13,"s":[{"i":[[0,0],[2.363,0],[0,0]],"o":[[0,0],[-2.363,0],[0,0]],"v":[[4.5,0],[-0.011,0],[-4.5,0]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":1,"s":[50]},{"t":13,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":1,"s":[50]},{"t":13,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":1,"s":[0]},{"t":13,"s":[1.66]}],"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"head","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[160,160,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":0,"s":[{"i":[[0.479,-0.941],[0,-2.8],[0,0],[-0.545,-1.07],[-0.941,-0.479],[-2.8,0],[0,0],[-1.07,0.545],[-0.479,0.941],[0,2.8],[0,0],[0.545,1.07],[0.941,0.479],[2.8,0],[0,0],[1.07,-0.545]],"o":[[-0.545,1.07],[0,0],[0,2.8],[0.479,0.941],[1.07,0.545],[0,0],[2.8,0],[0.941,-0.479],[0.545,-1.07],[0,0],[0,-2.8],[-0.479,-0.941],[-1.07,-0.545],[0,0],[-2.8,0],[-0.941,0.479]],"v":[[-8.62,-6.435],[-9.165,-1.165],[-9.165,1.165],[-8.62,6.435],[-6.435,8.62],[-1.165,9.165],[1.165,9.165],[6.435,8.62],[8.62,6.435],[9.165,1.165],[9.165,-1.165],[8.62,-6.435],[6.435,-8.62],[1.165,-9.165],[-1.165,-9.165],[-6.435,-8.62]],"c":true}],"h":1},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":1,"s":[{"i":[[0.246,-0.594],[0.086,-1.097],[0,-1.5],[-0.086,-1.12],[-0.229,-0.551],[-0.686,-0.284],[-2.796,0],[0,0],[-1.103,0.457],[-0.284,0.686],[0,3],[0.457,1.103],[0.845,0.35],[2.796,0],[0,0],[1.103,-0.457]],"o":[[-0.229,0.551],[-0.086,1.097],[0,1.398],[0.086,1.12],[0.377,0.911],[1.103,0.457],[0,0],[2.796,0],[0.938,-0.388],[0.457,-1.103],[0,-3],[-0.294,-0.71],[-1.103,-0.457],[0,0],[-2.796,0],[-1.103,0.457]],"v":[[-8.63,-6.44],[-9.088,-3.931],[-9.204,0],[-9.088,3.85],[-8.63,6.43],[-6.44,8.62],[-1.204,9.204],[1.204,9.204],[6.43,8.62],[8.62,6.43],[9.204,0],[8.62,-6.44],[6.43,-8.63],[1.204,-9.204],[-1.204,-9.204],[-6.44,-8.63]],"c":true}]},{"t":13,"s":[{"i":[[0.609,-1.47],[0.057,-0.837],[0,-1.398],[-0.057,-0.837],[-0.229,-0.551],[-1.47,-0.609],[-2.796,0],[0,0],[-1.103,0.457],[-0.609,1.47],[0,2.796],[0.457,1.103],[1.47,0.609],[2.796,0],[0,0],[1.103,-0.457]],"o":[[-0.229,0.551],[-0.057,0.837],[0,1.398],[0.057,0.837],[0.609,1.47],[1.103,0.457],[0,0],[2.796,0],[1.47,-0.609],[0.457,-1.103],[0,-2.796],[-0.609,-1.47],[-1.103,-0.457],[0,0],[-2.796,0],[-1.47,0.609]],"v":[[-14.543,-5.296],[-14.943,-3.283],[-15,0],[-14.943,3.283],[-14.543,5.296],[-11.296,8.543],[-6,9],[0,9],[5.296,8.543],[8.543,5.296],[9,0],[8.543,-5.296],[5.296,-8.543],[0,-9],[-6,-9],[-11.296,-8.543]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.67,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 52","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/submodules/TelegramUI/Resources/Animations/anim_keyToBot.json b/submodules/TelegramUI/Resources/Animations/anim_keyToBot.json new file mode 100644 index 0000000000..0037c39c0d --- /dev/null +++ b/submodules/TelegramUI/Resources/Animations/anim_keyToBot.json @@ -0,0 +1 @@ +{"v":"5.8.1","fr":60,"ip":0,"op":15,"w":320,"h":320,"nm":"keyboard_to_bot","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Ellipse 27","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.4,"y":0.4},"o":{"x":0.6,"y":0.6},"t":0,"s":[191.15,191.15,0],"to":[0,0,0],"ti":[0,0,0]},{"t":12,"s":[191.15,191.15,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-0.1,-4.435],[1.235,-3.1],[-0.1,-1.765],[-1.435,-3.1]],"c":true}]},{"t":12,"s":[{"i":[[-1.031,0],[0,-1.031],[1.031,0],[0,1.031]],"o":[[1.031,0],[0,1.031],[-1.031,0],[0,-1.031]],"v":[[0,-1.835],[1.835,0],[0,1.835],[-1.835,0]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":0,"s":[100]},{"t":12,"s":[0]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":0,"s":[0]},{"t":12,"s":[1.33]}],"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 27","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Ellipse 25","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.4,"y":0.4},"o":{"x":0.6,"y":0.6},"t":0,"s":[191.15,127.85,0],"to":[0,0,0],"ti":[0,0,0]},{"t":12,"s":[191.15,127.85,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-0.1,-2.135],[1.235,-0.8],[-0.1,0.535],[-1.435,-0.8]],"c":true}]},{"t":12,"s":[{"i":[[-1.031,0],[0,-1.031],[1.031,0],[0,1.031]],"o":[[1.031,0],[0,1.031],[-1.031,0],[0,-1.031]],"v":[[0,-1.835],[1.835,0],[0,1.835],[-1.835,0]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":0,"s":[0]},{"t":12,"s":[1.33]}],"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":0,"s":[100]},{"t":12,"s":[0]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 25","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Ellipse 26","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.4,"y":0.4},"o":{"x":0.6,"y":0.6},"t":0,"s":[127.85,191.15,0],"to":[0,0,0],"ti":[0,0,0]},{"t":12,"s":[127.85,191.15,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-5.775,-4.435],[-4.44,-3.1],[-5.775,-1.765],[-7.11,-3.1]],"c":true}]},{"t":12,"s":[{"i":[[-1.031,0],[0,-1.031],[1.031,0],[0,1.031]],"o":[[1.031,0],[0,1.031],[-1.031,0],[0,-1.031]],"v":[[0,-1.835],[1.835,0],[0,1.835],[-1.835,0]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":0,"s":[0]},{"t":12,"s":[1.33]}],"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":0,"s":[100]},{"t":12,"s":[0]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 26","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Ellipse 24","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.4,"y":0.4},"o":{"x":0.6,"y":0.6},"t":0,"s":[127.85,127.85,0],"to":[0,0,0],"ti":[0,0,0]},{"t":12,"s":[127.85,127.85,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-5.775,-2.11],[-4.44,-0.775],[-5.775,0.56],[-7.11,-0.775]],"c":true}]},{"t":12,"s":[{"i":[[-1.031,0],[0,-1.031],[1.031,0],[0,1.031]],"o":[[1.031,0],[0,1.031],[-1.031,0],[0,-1.031]],"v":[[0,-1.835],[1.835,0],[0,1.835],[-1.835,0]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":0,"s":[0]},{"t":12,"s":[1.33]}],"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":0,"s":[100]},{"t":12,"s":[0]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 24","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Union","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":0,"s":[100]},{"t":9,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[130.051,140.049,0],"to":[-4.333,-4.333,0],"ti":[4.333,4.333,0]},{"t":12,"s":[156.051,159.049,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"t":12,"s":[50,50,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[2,-3.335],[3.335,-2],[2,-0.665],[0.665,-2]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[2,0.665],[3.335,2],[2,3.335],[0.665,2]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-2,-3.335],[-0.665,-2],[-2,-0.665],[-3.335,-2]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-2,0.665],[-0.665,2],[-2,3.335],[-3.335,2]],"c":true},"ix":2},"nm":"Path 6","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Union","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":0,"s":[100]},{"t":12,"s":[1]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[130,210,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[0,0],[2.363,0],[0,0]],"o":[[0,0],[-2.363,0],[0,0]],"v":[[4.5,0],[-0.011,0],[-4.5,0]],"c":false}]},{"t":12,"s":[{"i":[[0,0],[2.363,0],[0,0]],"o":[[0,0],[-2.363,0],[0,0]],"v":[[7.4,2],[2.889,2],[-1.6,2]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":0,"s":[0]},{"t":12,"s":[50]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":0,"s":[100]},{"t":12,"s":[50]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":0,"s":[1.66]},{"t":12,"s":[0]}],"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"head","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[160,160,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[0.609,-1.47],[0.057,-0.837],[0,-1.398],[-0.057,-0.837],[-0.229,-0.551],[-1.47,-0.609],[-2.796,0],[0,0],[-1.103,0.457],[-0.609,1.47],[0,2.796],[0.457,1.103],[1.47,0.609],[2.796,0],[0,0],[1.103,-0.457]],"o":[[-0.229,0.551],[-0.057,0.837],[0,1.398],[0.057,0.837],[0.609,1.47],[1.103,0.457],[0,0],[2.796,0],[1.47,-0.609],[0.457,-1.103],[0,-2.796],[-0.609,-1.47],[-1.103,-0.457],[0,0],[-2.796,0],[-1.47,0.609]],"v":[[-14.543,-5.296],[-14.943,-3.283],[-15,0],[-14.943,3.283],[-14.543,5.296],[-11.296,8.543],[-6,9],[0,9],[5.296,8.543],[8.543,5.296],[9,0],[8.543,-5.296],[5.296,-8.543],[0,-9],[-6,-9],[-11.296,-8.543]],"c":true}]},{"t":12,"s":[{"i":[[0.246,-0.594],[0.086,-1.097],[0,-1.5],[-0.086,-1.12],[-0.229,-0.551],[-0.686,-0.284],[-2.796,0],[0,0],[-1.103,0.457],[-0.284,0.686],[0,3],[0.457,1.103],[0.845,0.35],[2.796,0],[0,0],[1.103,-0.457]],"o":[[-0.229,0.551],[-0.086,1.097],[0,1.398],[0.086,1.12],[0.377,0.911],[1.103,0.457],[0,0],[2.796,0],[0.938,-0.388],[0.457,-1.103],[0,-3],[-0.294,-0.71],[-1.103,-0.457],[0,0],[-2.796,0],[-1.103,0.457]],"v":[[-8.63,-6.44],[-9.088,-3.931],[-9.204,0],[-9.088,3.85],[-8.63,6.43],[-6.44,8.62],[-1.204,9.204],[1.204,9.204],[6.43,8.62],[8.62,6.43],[9.204,0],[8.62,-6.44],[6.43,-8.63],[1.204,-9.204],[-1.204,-9.204],[-6.44,-8.63]],"c":true}],"h":1},{"t":13,"s":[{"i":[[0.479,-0.941],[0,-2.8],[0,0],[-0.545,-1.07],[-0.941,-0.479],[-2.8,0],[0,0],[-1.07,0.545],[-0.479,0.941],[0,2.8],[0,0],[0.545,1.07],[0.941,0.479],[2.8,0],[0,0],[1.07,-0.545]],"o":[[-0.545,1.07],[0,0],[0,2.8],[0.479,0.941],[1.07,0.545],[0,0],[2.8,0],[0.941,-0.479],[0.545,-1.07],[0,0],[0,-2.8],[-0.479,-0.941],[-1.07,-0.545],[0,0],[-2.8,0],[-0.941,0.479]],"v":[[-8.62,-6.435],[-9.165,-1.165],[-9.165,1.165],[-8.62,6.435],[-6.435,8.62],[-1.165,9.165],[1.165,9.165],[6.435,8.62],[8.62,6.435],[9.165,1.165],[9.165,-1.165],[8.62,-6.435],[6.435,-8.62],[1.165,-9.165],[-1.165,-9.165],[-6.435,-8.62]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.67,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 52","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/submodules/TelegramUI/Resources/Animations/anim_keyToSmile.json b/submodules/TelegramUI/Resources/Animations/anim_keyToSmile.json new file mode 100644 index 0000000000..644e916a01 --- /dev/null +++ b/submodules/TelegramUI/Resources/Animations/anim_keyToSmile.json @@ -0,0 +1 @@ +{"v":"5.8.1","fr":60,"ip":0,"op":15,"w":32,"h":32,"nm":"keyboard_to_smile","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"keys","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":0,"s":[100]},{"t":12,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[13.005,14.005,0],"to":[-0.517,-0.25,0],"ti":[0.517,0.25,0]},{"t":12,"s":[16.105,15.505,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"t":0,"s":[10,10,100]},{"t":12,"s":[5,5,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[6,0.665],[7.335,2],[6,3.335],[4.665,2]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[2,-3.335],[3.335,-2],[2,-0.665],[0.665,-2]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[2,0.665],[3.335,2],[2,3.335],[0.665,2]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-2,-3.335],[-0.665,-2],[-2,-0.665],[-3.335,-2]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ind":4,"ty":"sh","ix":5,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-2,0.665],[-0.665,2],[-2,3.335],[-3.335,2]],"c":true},"ix":2},"nm":"Path 6","mn":"ADBE Vector Shape - Group","hd":false},{"ind":5,"ty":"sh","ix":6,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-6,0.665],[-4.665,2],[-6,3.335],[-7.335,2]],"c":true},"ix":2},"nm":"Path 8","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Union","np":8,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Reye","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[19.174,14.152,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[10,10,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[0,0.737],[0.737,0],[0,-0.737],[-0.737,0]],"o":[[0,-0.737],[-0.737,0],[0,0.737],[0.737,0]],"v":[[1.167,-2.149],[-0.168,-3.484],[-1.503,-2.149],[-0.168,-0.814]],"c":true}]},{"t":12,"s":[{"i":[[0,0.756],[0.648,0],[0,-0.756],[-0.648,0]],"o":[[0,-0.756],[-0.648,0],[0,0.756],[0.648,0]],"v":[[1.174,0],[0,-1.37],[-1.174,0],[0,1.37]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Leye","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12.834,14.152,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[10,10,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[0,0.737],[0.737,0],[0,-0.737],[-0.737,0]],"o":[[0,-0.737],[-0.737,0],[0,0.737],[0.737,0]],"v":[[-4.494,-2.148],[-5.829,-3.483],[-7.164,-2.148],[-5.829,-0.813]],"c":true}]},{"t":12,"s":[{"i":[[0,0.756],[0.648,0],[0,-0.756],[-0.648,0]],"o":[[0,-0.756],[-0.648,0],[0,0.756],[0.648,0]],"v":[[1.174,0],[0,-1.37],[-1.174,0],[0,1.37]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"smile","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[16,19.536,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[10,10,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[0,0],[2.363,0],[0,0]],"o":[[0,0],[-2.363,0],[0,0]],"v":[[1.5,1.462],[-3.011,1.462],[-7.5,1.462]],"c":false}]},{"t":12,"s":[{"i":[[0,0],[2.363,0],[0,0]],"o":[[0,0],[-2.363,0],[0,0]],"v":[[3.5,-0.965],[0,0.965],[-3.5,-0.965]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.66,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"head","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[16,16,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[10,10,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[0.609,-1.47],[0,-2.796],[-0.457,-1.103],[-1.47,-0.609],[-2.796,0],[0,0],[-1.103,0.457],[-0.609,1.47],[0,2.796],[0.457,1.103],[1.47,0.609],[2.796,0],[0,0],[1.103,-0.457]],"o":[[-0.457,1.103],[0,2.796],[0.609,1.47],[1.103,0.457],[0,0],[2.796,0],[1.47,-0.609],[0.457,-1.103],[0,-2.796],[-0.609,-1.47],[-1.103,-0.457],[0,0],[-2.796,0],[-1.47,0.609]],"v":[[-14.543,-5.296],[-15,0],[-14.543,5.296],[-11.296,8.543],[-6,9],[0,9],[5.296,8.543],[8.543,5.296],[9,0],[8.543,-5.296],[5.296,-8.543],[0,-9],[-6,-9],[-11.296,-8.543]],"c":true}]},{"t":12,"s":[{"i":[[0.563,-1.25],[0,-1.781],[-0.829,-1.478],[-1.041,-0.505],[-2.097,0],[0,0],[-0.827,0.457],[-0.749,1.289],[0,2.003],[0.491,0.934],[1.305,0.721],[2.291,0],[0,0],[1.002,-0.754]],"o":[[-0.563,1.25],[0,1.718],[0.829,1.478],[1.041,0.505],[0,0],[2.097,0],[1.229,-0.632],[0.749,-1.289],[0,-2.063],[-0.491,-0.934],[-1.305,-0.721],[0,0],[-2.296,0],[-1.002,0.754]],"v":[[-8.024,-4.097],[-9,0],[-7.751,4.589],[-4.228,7.953],[0,9],[0.01,9],[4.362,7.874],[7.688,4.693],[9,0],[7.887,-4.367],[4.783,-7.619],[0.01,-9],[0,-9],[-5.348,-7.242]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.67,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 52","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/submodules/TelegramUI/Resources/Animations/anim_keyToSticker.json b/submodules/TelegramUI/Resources/Animations/anim_keyToSticker.json new file mode 100644 index 0000000000..6e4c44cd25 --- /dev/null +++ b/submodules/TelegramUI/Resources/Animations/anim_keyToSticker.json @@ -0,0 +1 @@ +{"v":"5.8.1","fr":60,"ip":0,"op":15,"w":32,"h":32,"nm":"keyboard_to_sticker","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Union","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":0,"s":[100]},{"t":9,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[13.005,14.005,0],"to":[-0.433,-0.433,0],"ti":[0.433,0.433,0]},{"t":12,"s":[15.605,16.605,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"t":0,"s":[10,10,100]},{"t":12,"s":[5,5,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[6,-3.335],[7.335,-2],[6,-0.665],[4.665,-2]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[6,0.665],[7.335,2],[6,3.335],[4.665,2]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[2,-3.335],[3.335,-2],[2,-0.665],[0.665,-2]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[2,0.665],[3.335,2],[2,3.335],[0.665,2]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":4,"ty":"sh","ix":5,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-2,-3.335],[-0.665,-2],[-2,-0.665],[-3.335,-2]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ind":5,"ty":"sh","ix":6,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-2,0.665],[-0.665,2],[-2,3.335],[-3.335,2]],"c":true},"ix":2},"nm":"Path 6","mn":"ADBE Vector Shape - Group","hd":false},{"ind":6,"ty":"sh","ix":7,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-6,-3.335],[-4.665,-2],[-6,-0.665],[-7.335,-2]],"c":true},"ix":2},"nm":"Path 7","mn":"ADBE Vector Shape - Group","hd":false},{"ind":7,"ty":"sh","ix":8,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-6,0.665],[-4.665,2],[-6,3.335],[-7.335,2]],"c":true},"ix":2},"nm":"Path 8","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Union","np":10,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Vector","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":0,"s":[100]},{"t":9,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-0.051,69.951,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[2.363,0],[0,0]],"o":[[0,0],[-2.363,0],[0,0]],"v":[[4.5,0],[-0.011,0],[-4.5,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.66,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[18.035,13.965,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[10,10,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[6.107,-14.743],[0,-28.034],[-4.58,-11.057],[-14.743,-6.107],[-28.034,0],[0,0],[-11.057,4.58],[-6.107,14.743],[0,28.034],[4.58,11.057],[14.743,6.107],[28.034,0],[0,0],[11.057,-4.58]],"o":[[-4.58,11.057],[0,28.034],[6.107,14.743],[11.057,4.58],[0,0],[28.034,0],[14.743,-6.107],[4.58,-11.057],[0,-28.034],[-6.107,-14.743],[-11.057,-4.58],[0,0],[-28.034,0],[-14.743,6.107]],"v":[[-165.437,-33.008],[-170.017,20.1],[-165.437,73.208],[-132.875,105.77],[-79.767,110.35],[-19.6,110.35],[33.508,105.77],[66.07,73.208],[70.65,20.1],[66.07,-33.008],[33.508,-65.57],[-19.6,-70.15],[-79.767,-70.15],[-132.875,-65.57]],"c":true}]},{"t":12,"s":[{"i":[[5.686,-12.682],[0,-18.058],[-8.379,-14.991],[-10.518,-5.125],[-21.187,0],[0,0],[-8.356,4.632],[-7.57,13.076],[0,5.926],[19.097,19.964],[0,0],[13.777,0],[0,0],[10.126,-7.646]],"o":[[-5.686,12.682],[0,17.428],[8.379,14.991],[10.518,5.125],[0,0],[21.187,0],[12.419,-6.413],[7.57,-13.076],[0,-11.57],[0,0],[-19.906,-19.168],[0,0],[-15.925,0],[-10.126,7.646]],"v":[[-101.485,-20.984],[-111.35,20.572],[-98.733,67.109],[-63.133,101.229],[-20.41,111.85],[-20.308,111.85],[23.665,100.43],[57.273,68.164],[65.15,41.804],[40.217,-9.838],[9.904,-40.28],[-41.128,-65.15],[-41.229,-65.15],[-74.451,-52.874]],"c":true}]}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[0,0],[0,0],[0,-0.929],[0,0],[-4.447,0],[0,0],[0.409,-0.834],[0,0]],"o":[[0,0],[0.834,-0.409],[0,0],[0,4.447],[0,0],[0.929,0],[0,0],[0,0]],"v":[[1.335,-12.935],[1.54,-13.035],[3.348,-11.908],[3.348,-10.901],[11.401,-2.848],[12.408,-2.848],[13.535,-1.04],[13.435,-0.835]],"c":false}]},{"t":12,"s":[{"i":[[0,0],[0,0],[0,-0.929],[0,0],[-4.447,0],[0,0],[0.409,-0.834],[0,0]],"o":[[0,0],[0.834,-0.409],[0,0],[0,4.447],[0,0],[0.929,0],[0,0],[0,0]],"v":[[-6.415,-5.735],[-6.21,-5.835],[-4.402,-4.708],[-4.402,-3.701],[3.651,4.352],[4.658,4.352],[5.785,6.16],[5.685,6.365]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.66,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"head","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[16,16,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[10,10,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[0.609,-1.47],[0,-2.796],[-0.457,-1.103],[-1.47,-0.609],[-2.796,0],[0,0],[-1.103,0.457],[-0.609,1.47],[0,2.796],[0.457,1.103],[1.47,0.609],[2.796,0],[0,0],[1.103,-0.457]],"o":[[-0.457,1.103],[0,2.796],[0.609,1.47],[1.103,0.457],[0,0],[2.796,0],[1.47,-0.609],[0.457,-1.103],[0,-2.796],[-0.609,-1.47],[-1.103,-0.457],[0,0],[-2.796,0],[-1.47,0.609]],"v":[[-14.543,-5.296],[-15,0],[-14.543,5.296],[-11.296,8.543],[-6,9],[0,9],[5.296,8.543],[8.543,5.296],[9,0],[8.543,-5.296],[5.296,-8.543],[0,-9],[-6,-9],[-11.296,-8.543]],"c":true}]},{"t":12,"s":[{"i":[[0.563,-1.25],[0,-1.781],[-0.829,-1.478],[-1.041,-0.505],[-2.097,0],[0,0],[-0.827,0.457],[-0.749,1.289],[0,0.584],[1.89,1.968],[0,0],[1.363,0],[0,0],[1.002,-0.754]],"o":[[-0.563,1.25],[0,1.718],[0.829,1.478],[1.041,0.505],[0,0],[2.097,0],[1.229,-0.632],[0.749,-1.289],[0,-1.141],[0,0],[-1.97,-1.89],[0,0],[-1.576,0],[-1.002,0.754]],"v":[[-8.007,-4.096],[-8.984,0.001],[-7.735,4.59],[-4.212,7.954],[0.016,9.001],[0.026,9.001],[4.378,7.875],[7.704,4.694],[8.484,2.095],[6.016,-2.997],[3.016,-5.999],[-2.034,-8.451],[-2.044,-8.451],[-5.332,-7.241]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.67,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 52","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/submodules/TelegramUI/Resources/Animations/anim_micToVideo.json b/submodules/TelegramUI/Resources/Animations/anim_micToVideo.json new file mode 100644 index 0000000000..fea54cbbc6 --- /dev/null +++ b/submodules/TelegramUI/Resources/Animations/anim_micToVideo.json @@ -0,0 +1 @@ +{"v":"5.8.1","fr":60,"ip":0,"op":15,"w":30,"h":30,"nm":"micToVideo","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Vector 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[15,25,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[10,10,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,2],[0,-2]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":0,"s":[0]},{"t":14,"s":[25]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":0,"s":[100]},{"t":14,"s":[25]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.66,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector 3","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Rectangle 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[15,15,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[10,10,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.4,"y":0},"t":0,"s":[{"i":[[0.532,-1.104],[0,-2.884],[-0.63,-1.057],[-0.829,-0.535],[-2.458,0],[-0.793,0.482],[-0.351,0.627],[0,2.43],[0.536,1.112],[1.104,0.532],[2.884,0],[1.112,-0.536]],"o":[[-0.536,1.112],[0,1.993],[0.63,1.057],[0.829,0.535],[2.458,0],[0.793,-0.482],[0.351,-0.627],[0,-2.884],[-0.532,-1.104],[-1.112,-0.536],[-2.884,0],[-1.104,0.532]],"v":[[-7.964,-5.938],[-8.5,-0.5],[-7.205,4.052],[-4.586,6.672],[0,8],[4.614,6.672],[7.19,4.052],[8.5,-0.5],[7.964,-5.938],[5.438,-8.464],[0,-9],[-5.438,-8.464]],"c":true}]},{"t":14,"s":[{"i":[[0.688,-1.429],[0,-3.732],[-0.693,-1.439],[-1.429,-0.688],[-3.732,0],[-1.439,0.693],[-0.688,1.429],[0,3.732],[0.693,1.439],[1.429,0.688],[3.732,0],[1.439,-0.693]],"o":[[-0.693,1.439],[0,3.732],[0.688,1.429],[1.439,0.693],[3.732,0],[1.429,-0.688],[0.693,-1.439],[0,-3.732],[-0.688,-1.429],[-1.439,-0.693],[-3.732,0],[-1.429,0.688]],"v":[[-10.307,-7.037],[-11,0],[-10.307,7.037],[-7.037,10.307],[0,11],[7.037,10.307],[10.307,7.037],[11,0],[10.307,-7.037],[7.037,-10.307],[0,-11],[-7.037,-10.307]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":0,"s":[25.4]},{"t":14,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":0,"s":[74.7]},{"t":14,"s":[100]}],"ix":2},"o":{"a":0,"k":-59,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.66,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 2","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Rectangle 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[15,15,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[10,10,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.4,"y":0},"t":0,"s":[{"i":[[2.485,0],[0,-2.485],[0,0],[-2.485,0],[0,2.485],[0,0]],"o":[[-2.485,0],[0,0],[0,2.485],[2.485,0],[0,0],[0,-2.485]],"v":[[0,-11],[-4.5,-6.5],[-4.5,-0.5],[0,4],[4.5,-0.5],[4.5,-6.5]],"c":true}]},{"t":14,"s":[{"i":[[2.761,0],[0,-2.761],[0,0],[-2.761,0],[0,2.761],[0,0]],"o":[[-2.761,0],[0,0],[0,2.761],[2.761,0],[0,0],[0,-2.761]],"v":[[0,-5],[-5,0],[-5,0.01],[0,5],[5,0.01],[5,0]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"rd","nm":"Round Corners 1","r":{"a":0,"k":5,"ix":1},"ix":2,"mn":"ADBE Vector Filter - RC","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.66,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/submodules/TelegramUI/Resources/Animations/anim_smileToKey.json b/submodules/TelegramUI/Resources/Animations/anim_smileToKey.json new file mode 100644 index 0000000000..3197e866b1 --- /dev/null +++ b/submodules/TelegramUI/Resources/Animations/anim_smileToKey.json @@ -0,0 +1 @@ +{"v":"5.8.1","fr":60,"ip":0,"op":15,"w":32,"h":32,"nm":"smile_to_keyboard","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"keys","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":0,"s":[0]},{"t":12,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[16.105,15.505,0],"to":[-0.517,-0.25,0],"ti":[0.517,0.25,0]},{"t":12,"s":[13.005,14.005,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"t":0,"s":[5,5,100]},{"t":12,"s":[10,10,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[6,0.665],[7.335,2],[6,3.335],[4.665,2]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[2,-3.335],[3.335,-2],[2,-0.665],[0.665,-2]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[2,0.665],[3.335,2],[2,3.335],[0.665,2]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-2,-3.335],[-0.665,-2],[-2,-0.665],[-3.335,-2]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ind":4,"ty":"sh","ix":5,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-2,0.665],[-0.665,2],[-2,3.335],[-3.335,2]],"c":true},"ix":2},"nm":"Path 6","mn":"ADBE Vector Shape - Group","hd":false},{"ind":5,"ty":"sh","ix":6,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-6,0.665],[-4.665,2],[-6,3.335],[-7.335,2]],"c":true},"ix":2},"nm":"Path 8","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Union","np":8,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Reye","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[19.174,14.152,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[10,10,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[0,0.756],[0.648,0],[0,-0.756],[-0.648,0]],"o":[[0,-0.756],[-0.648,0],[0,0.756],[0.648,0]],"v":[[1.174,0],[0,-1.37],[-1.174,0],[0,1.37]],"c":true}]},{"t":12,"s":[{"i":[[0,0.737],[0.737,0],[0,-0.737],[-0.737,0]],"o":[[0,-0.737],[-0.737,0],[0,0.737],[0.737,0]],"v":[[1.167,-2.149],[-0.168,-3.484],[-1.503,-2.149],[-0.168,-0.814]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Leye","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12.834,14.152,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[10,10,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[0,0.756],[0.648,0],[0,-0.756],[-0.648,0]],"o":[[0,-0.756],[-0.648,0],[0,0.756],[0.648,0]],"v":[[1.174,0],[0,-1.37],[-1.174,0],[0,1.37]],"c":true}]},{"t":12,"s":[{"i":[[0,0.737],[0.737,0],[0,-0.737],[-0.737,0]],"o":[[0,-0.737],[-0.737,0],[0,0.737],[0.737,0]],"v":[[-4.494,-2.148],[-5.829,-3.483],[-7.164,-2.148],[-5.829,-0.813]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"smile","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[16,19.536,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[10,10,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[0,0],[2.363,0],[0,0]],"o":[[0,0],[-2.363,0],[0,0]],"v":[[3.5,-0.965],[0,0.965],[-3.5,-0.965]],"c":false}]},{"t":12,"s":[{"i":[[0,0],[2.363,0],[0,0]],"o":[[0,0],[-2.363,0],[0,0]],"v":[[1.5,1.462],[-3.011,1.462],[-7.5,1.462]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.66,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"head","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[16,16,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[10,10,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[0.563,-1.25],[0,-1.781],[-0.829,-1.478],[-1.041,-0.505],[-2.097,0],[0,0],[-0.827,0.457],[-0.749,1.289],[0,2.003],[0.491,0.934],[1.305,0.721],[2.291,0],[0,0],[1.002,-0.754]],"o":[[-0.563,1.25],[0,1.718],[0.829,1.478],[1.041,0.505],[0,0],[2.097,0],[1.229,-0.632],[0.749,-1.289],[0,-2.063],[-0.491,-0.934],[-1.305,-0.721],[0,0],[-2.296,0],[-1.002,0.754]],"v":[[-8.024,-4.097],[-9,0],[-7.751,4.589],[-4.228,7.953],[0,9],[0.01,9],[4.362,7.874],[7.688,4.693],[9,0],[7.887,-4.367],[4.783,-7.619],[0.01,-9],[0,-9],[-5.348,-7.242]],"c":true}]},{"t":12,"s":[{"i":[[0.609,-1.47],[0,-2.796],[-0.457,-1.103],[-1.47,-0.609],[-2.796,0],[0,0],[-1.103,0.457],[-0.609,1.47],[0,2.796],[0.457,1.103],[1.47,0.609],[2.796,0],[0,0],[1.103,-0.457]],"o":[[-0.457,1.103],[0,2.796],[0.609,1.47],[1.103,0.457],[0,0],[2.796,0],[1.47,-0.609],[0.457,-1.103],[0,-2.796],[-0.609,-1.47],[-1.103,-0.457],[0,0],[-2.796,0],[-1.47,0.609]],"v":[[-14.543,-5.296],[-15,0],[-14.543,5.296],[-11.296,8.543],[-6,9],[0,9],[5.296,8.543],[8.543,5.296],[9,0],[8.543,-5.296],[5.296,-8.543],[0,-9],[-6,-9],[-11.296,-8.543]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.67,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 52","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/submodules/TelegramUI/Resources/Animations/anim_stickerToKey.json b/submodules/TelegramUI/Resources/Animations/anim_stickerToKey.json new file mode 100644 index 0000000000..ce92cd33da --- /dev/null +++ b/submodules/TelegramUI/Resources/Animations/anim_stickerToKey.json @@ -0,0 +1 @@ +{"v":"5.8.1","fr":60,"ip":0,"op":15,"w":32,"h":32,"nm":"sticker_to_keyboard","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Union","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":3,"s":[0]},{"t":12,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[15.605,16.605,0],"to":[-0.433,-0.433,0],"ti":[0.433,0.433,0]},{"t":12,"s":[13.005,14.005,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"t":0,"s":[5,5,100]},{"t":12,"s":[10,10,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[6,-3.335],[7.335,-2],[6,-0.665],[4.665,-2]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[6,0.665],[7.335,2],[6,3.335],[4.665,2]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[2,-3.335],[3.335,-2],[2,-0.665],[0.665,-2]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[2,0.665],[3.335,2],[2,3.335],[0.665,2]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":4,"ty":"sh","ix":5,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-2,-3.335],[-0.665,-2],[-2,-0.665],[-3.335,-2]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ind":5,"ty":"sh","ix":6,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-2,0.665],[-0.665,2],[-2,3.335],[-3.335,2]],"c":true},"ix":2},"nm":"Path 6","mn":"ADBE Vector Shape - Group","hd":false},{"ind":6,"ty":"sh","ix":7,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-6,-3.335],[-4.665,-2],[-6,-0.665],[-7.335,-2]],"c":true},"ix":2},"nm":"Path 7","mn":"ADBE Vector Shape - Group","hd":false},{"ind":7,"ty":"sh","ix":8,"ks":{"a":0,"k":{"i":[[-0.75,0],[0,-0.75],[0.75,0],[0,0.75]],"o":[[0.75,0],[0,0.75],[-0.75,0],[0,-0.75]],"v":[[-6,0.665],[-4.665,2],[-6,3.335],[-7.335,2]],"c":true},"ix":2},"nm":"Path 8","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Union","np":10,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Vector","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":3,"s":[0]},{"t":12,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-0.051,69.951,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[2.363,0],[0,0]],"o":[[0,0],[-2.363,0],[0,0]],"v":[[4.5,0],[-0.011,0],[-4.5,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.66,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[18.035,13.965,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[10,10,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[5.686,-12.682],[0,-18.058],[-8.379,-14.991],[-10.518,-5.125],[-21.187,0],[0,0],[-8.356,4.632],[-7.57,13.076],[0,5.926],[19.097,19.964],[0,0],[13.777,0],[0,0],[10.126,-7.646]],"o":[[-5.686,12.682],[0,17.428],[8.379,14.991],[10.518,5.125],[0,0],[21.187,0],[12.419,-6.413],[7.57,-13.076],[0,-11.57],[0,0],[-19.906,-19.168],[0,0],[-15.925,0],[-10.126,7.646]],"v":[[-101.485,-20.984],[-111.35,20.572],[-98.733,67.109],[-63.133,101.229],[-20.41,111.85],[-20.308,111.85],[23.665,100.43],[57.273,68.164],[65.15,41.804],[40.217,-9.838],[9.904,-40.28],[-41.128,-65.15],[-41.229,-65.15],[-74.451,-52.874]],"c":true}]},{"t":12,"s":[{"i":[[6.107,-14.743],[0,-28.034],[-4.58,-11.057],[-14.743,-6.107],[-28.034,0],[0,0],[-11.057,4.58],[-6.107,14.743],[0,28.034],[4.58,11.057],[14.743,6.107],[28.034,0],[0,0],[11.057,-4.58]],"o":[[-4.58,11.057],[0,28.034],[6.107,14.743],[11.057,4.58],[0,0],[28.034,0],[14.743,-6.107],[4.58,-11.057],[0,-28.034],[-6.107,-14.743],[-11.057,-4.58],[0,0],[-28.034,0],[-14.743,6.107]],"v":[[-165.437,-33.008],[-170.017,20.1],[-165.437,73.208],[-132.875,105.77],[-79.767,110.35],[-19.6,110.35],[33.508,105.77],[66.07,73.208],[70.65,20.1],[66.07,-33.008],[33.508,-65.57],[-19.6,-70.15],[-79.767,-70.15],[-132.875,-65.57]],"c":true}]}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[0,0],[0,0],[0,-0.929],[0,0],[-4.447,0],[0,0],[0.409,-0.834],[0,0]],"o":[[0,0],[0.834,-0.409],[0,0],[0,4.447],[0,0],[0.929,0],[0,0],[0,0]],"v":[[-6.415,-5.735],[-6.21,-5.835],[-4.402,-4.708],[-4.402,-3.701],[3.651,4.352],[4.658,4.352],[5.785,6.16],[5.685,6.365]],"c":false}]},{"t":12,"s":[{"i":[[0,0],[0,0],[0,-0.929],[0,0],[-4.447,0],[0,0],[0.409,-0.834],[0,0]],"o":[[0,0],[0.834,-0.409],[0,0],[0,4.447],[0,0],[0.929,0],[0,0],[0,0]],"v":[[1.335,-12.935],[1.54,-13.035],[3.348,-11.908],[3.348,-10.901],[11.401,-2.848],[12.408,-2.848],[13.535,-1.04],[13.435,-0.835]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.66,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"head","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[16,16,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[10,10,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[0.563,-1.25],[0,-1.781],[-0.829,-1.478],[-1.041,-0.505],[-2.097,0],[0,0],[-0.827,0.457],[-0.749,1.289],[0,0.584],[1.89,1.968],[0,0],[1.363,0],[0,0],[1.002,-0.754]],"o":[[-0.563,1.25],[0,1.718],[0.829,1.478],[1.041,0.505],[0,0],[2.097,0],[1.229,-0.632],[0.749,-1.289],[0,-1.141],[0,0],[-1.97,-1.89],[0,0],[-1.576,0],[-1.002,0.754]],"v":[[-8.007,-4.096],[-8.984,0.001],[-7.735,4.59],[-4.212,7.954],[0.016,9.001],[0.026,9.001],[4.378,7.875],[7.704,4.694],[8.484,2.095],[6.016,-2.997],[3.016,-5.999],[-2.034,-8.451],[-2.044,-8.451],[-5.332,-7.241]],"c":true}]},{"t":12,"s":[{"i":[[0.609,-1.47],[0,-2.796],[-0.457,-1.103],[-1.47,-0.609],[-2.796,0],[0,0],[-1.103,0.457],[-0.609,1.47],[0,2.796],[0.457,1.103],[1.47,0.609],[2.796,0],[0,0],[1.103,-0.457]],"o":[[-0.457,1.103],[0,2.796],[0.609,1.47],[1.103,0.457],[0,0],[2.796,0],[1.47,-0.609],[0.457,-1.103],[0,-2.796],[-0.609,-1.47],[-1.103,-0.457],[0,0],[-2.796,0],[-1.47,0.609]],"v":[[-14.543,-5.296],[-15,0],[-14.543,5.296],[-11.296,8.543],[-6,9],[0,9],[5.296,8.543],[8.543,5.296],[9,0],[8.543,-5.296],[5.296,-8.543],[0,-9],[-6,-9],[-11.296,-8.543]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.67,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 52","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/submodules/TelegramUI/Resources/Animations/anim_videoToMic.json b/submodules/TelegramUI/Resources/Animations/anim_videoToMic.json new file mode 100644 index 0000000000..5e150a4fdf --- /dev/null +++ b/submodules/TelegramUI/Resources/Animations/anim_videoToMic.json @@ -0,0 +1 @@ +{"v":"5.8.1","fr":60,"ip":0,"op":15,"w":30,"h":30,"nm":"videoToMic","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Vector 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[15,25,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[10,10,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,2],[0,-2]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":0,"s":[25]},{"t":12,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":0,"s":[25]},{"t":12,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.66,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector 3","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Rectangle 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[15,15,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[10,10,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.4,"y":0},"t":0,"s":[{"i":[[0.688,-1.429],[0,-3.732],[-0.693,-1.439],[-1.429,-0.688],[-3.732,0],[-1.439,0.693],[-0.688,1.429],[0,3.732],[0.693,1.439],[1.429,0.688],[3.732,0],[1.439,-0.693]],"o":[[-0.693,1.439],[0,3.732],[0.688,1.429],[1.439,0.693],[3.732,0],[1.429,-0.688],[0.693,-1.439],[0,-3.732],[-0.688,-1.429],[-1.439,-0.693],[-3.732,0],[-1.429,0.688]],"v":[[-10.307,-7.037],[-11,0],[-10.307,7.037],[-7.037,10.307],[0,11],[7.037,10.307],[10.307,7.037],[11,0],[10.307,-7.037],[7.037,-10.307],[0,-11],[-7.037,-10.307]],"c":true}]},{"t":12,"s":[{"i":[[0.532,-1.104],[0,-2.884],[-0.63,-1.057],[-0.829,-0.535],[-2.458,0],[-0.793,0.482],[-0.351,0.627],[0,2.43],[0.536,1.112],[1.104,0.532],[2.884,0],[1.112,-0.536]],"o":[[-0.536,1.112],[0,1.993],[0.63,1.057],[0.829,0.535],[2.458,0],[0.793,-0.482],[0.351,-0.627],[0,-2.884],[-0.532,-1.104],[-1.112,-0.536],[-2.884,0],[-1.104,0.532]],"v":[[-7.964,-5.938],[-8.5,-0.5],[-7.205,4.052],[-4.586,6.672],[0,8],[4.614,6.672],[7.19,4.052],[8.5,-0.5],[7.964,-5.938],[5.438,-8.464],[0,-9],[-5.438,-8.464]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":0,"s":[0]},{"t":12,"s":[25.4]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":0,"s":[100]},{"t":12,"s":[74.7]}],"ix":2},"o":{"a":0,"k":-59,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.66,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 2","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Rectangle 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[15,15,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[10,10,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.4,"y":0},"t":0,"s":[{"i":[[2.761,0],[0,-2.761],[0,0],[-2.761,0],[0,2.761],[0,0]],"o":[[-2.761,0],[0,0],[0,2.761],[2.761,0],[0,0],[0,-2.761]],"v":[[0,-5],[-5,0],[-5,0.01],[0,5],[5,0.01],[5,0]],"c":true}]},{"t":12,"s":[{"i":[[2.485,0],[0,-2.485],[0,0],[-2.485,0],[0,2.485],[0,0]],"o":[[-2.485,0],[0,0],[0,2.485],[2.485,0],[0,0],[0,-2.485]],"v":[[0,-11],[-4.5,-6.5],[-4.5,-0.5],[0,4],[4.5,-0.5],[4.5,-6.5]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"rd","nm":"Round Corners 1","r":{"a":0,"k":5,"ix":1},"ix":2,"mn":"ADBE Vector Filter - RC","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.66,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":15,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index ab34e8964d..954c65cf04 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -1127,6 +1127,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G guard let packReference = packReferences.first, let strongSelf = self else { return } + strongSelf.chatDisplayNode.dismissTextInput() let controller = StickerPackScreen(context: context, updatedPresentationData: strongSelf.updatedPresentationData, mainStickerPack: packReference, stickerPacks: Array(packReferences), parentNavigationController: strongSelf.effectiveNavigationController) strongSelf.present(controller, in: .window(.root)) } @@ -8446,6 +8447,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G strongSelf.controllerInteraction?.scheduleCurrentMessage() } }) + controller.emojiViewProvider = strongSelf.chatDisplayNode.textInputPanelNode?.emojiViewProvider strongSelf.sendMessageActionsController = controller if layout.isNonExclusive { strongSelf.present(controller, in: .window(.root)) @@ -15526,7 +15528,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G if let tooltipController = self.mediaRecordingModeTooltipController { tooltipController.updateContent(.text(text), animated: true, extendTimer: true) } else if let rect = rect { - let tooltipController = TooltipController(content: .text(text), baseFontSize: self.presentationData.listsFontSize.baseDisplaySize) + let tooltipController = TooltipController(content: .text(text), baseFontSize: self.presentationData.listsFontSize.baseDisplaySize, padding: 2.0) self.mediaRecordingModeTooltipController = tooltipController tooltipController.dismissed = { [weak self, weak tooltipController] _ in if let strongSelf = self, let tooltipController = tooltipController, strongSelf.mediaRecordingModeTooltipController === tooltipController { @@ -15547,7 +15549,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G return } self.sendingOptionsTooltipController?.dismiss() - let tooltipController = TooltipController(content: .text(self.presentationData.strings.Conversation_SendingOptionsTooltip), baseFontSize: self.presentationData.listsFontSize.baseDisplaySize, timeout: 3.0, dismissByTapOutside: true, dismissImmediatelyOnLayoutUpdate: true) + let tooltipController = TooltipController(content: .text(self.presentationData.strings.Conversation_SendingOptionsTooltip), baseFontSize: self.presentationData.listsFontSize.baseDisplaySize, timeout: 3.0, dismissByTapOutside: true, dismissImmediatelyOnLayoutUpdate: true, padding: 2.0) self.sendingOptionsTooltipController = tooltipController tooltipController.dismissed = { [weak self, weak tooltipController] _ in if let strongSelf = self, let tooltipController = tooltipController, strongSelf.sendingOptionsTooltipController === tooltipController { diff --git a/submodules/TelegramUI/Sources/ChatInterfaceInputContexts.swift b/submodules/TelegramUI/Sources/ChatInterfaceInputContexts.swift index 584cbc54fa..788133b528 100644 --- a/submodules/TelegramUI/Sources/ChatInterfaceInputContexts.swift +++ b/submodules/TelegramUI/Sources/ChatInterfaceInputContexts.swift @@ -314,13 +314,13 @@ func inputTextPanelStateForChatPresentationInterfaceState(_ chatPresentationInte switch chatPresentationInterfaceState.inputMode { case .media: - accessoryItems.append(.keyboard) + accessoryItems.append(.input(isEnabled: true, inputMode: .keyboard)) return ChatTextInputPanelState(accessoryItems: accessoryItems, contextPlaceholder: contextPlaceholder, mediaRecordingState: chatPresentationInterfaceState.inputTextPanelState.mediaRecordingState) case .inputButtons: - return ChatTextInputPanelState(accessoryItems: [.keyboard], contextPlaceholder: contextPlaceholder, mediaRecordingState: chatPresentationInterfaceState.inputTextPanelState.mediaRecordingState) + return ChatTextInputPanelState(accessoryItems: [.botInput(isEnabled: true, inputMode: .keyboard)], contextPlaceholder: contextPlaceholder, mediaRecordingState: chatPresentationInterfaceState.inputTextPanelState.mediaRecordingState) case .none, .text: if let _ = chatPresentationInterfaceState.interfaceState.editMessage { - accessoryItems.append(.stickers(isEnabled: true, isEmoji: true)) + accessoryItems.append(.input(isEnabled: true, inputMode: .emoji)) return ChatTextInputPanelState(accessoryItems: accessoryItems, contextPlaceholder: contextPlaceholder, mediaRecordingState: chatPresentationInterfaceState.inputTextPanelState.mediaRecordingState) } else { @@ -371,13 +371,13 @@ func inputTextPanelStateForChatPresentationInterfaceState(_ chatPresentationInte } if stickersEnabled { - accessoryItems.append(.stickers(isEnabled: true, isEmoji: stickersAreEmoji)) + accessoryItems.append(.input(isEnabled: true, inputMode: stickersAreEmoji ? .emoji : .stickers)) } else { - accessoryItems.append(.stickers(isEnabled: true, isEmoji: true)) + accessoryItems.append(.input(isEnabled: true, inputMode: .emoji)) } if isTextEmpty, let message = chatPresentationInterfaceState.keyboardButtonsMessage, let _ = message.visibleButtonKeyboardMarkup, chatPresentationInterfaceState.interfaceState.messageActionsState.dismissedButtonKeyboardMessageId != message.id { - accessoryItems.append(.inputButtons) + accessoryItems.append(.botInput(isEnabled: true, inputMode: .bot)) } } return ChatTextInputPanelState(accessoryItems: accessoryItems, contextPlaceholder: contextPlaceholder, mediaRecordingState: chatPresentationInterfaceState.inputTextPanelState.mediaRecordingState) diff --git a/submodules/TelegramUI/Sources/ChatTextInputMediaRecordingButton.swift b/submodules/TelegramUI/Sources/ChatTextInputMediaRecordingButton.swift index 0c72039bfb..528e41f726 100644 --- a/submodules/TelegramUI/Sources/ChatTextInputMediaRecordingButton.swift +++ b/submodules/TelegramUI/Sources/ChatTextInputMediaRecordingButton.swift @@ -10,6 +10,8 @@ import AccountContext import ChatInterfaceState import AudioBlob import ChatPresentationInterfaceState +import ComponentFlow +import LottieAnimationComponent private let offsetThreshold: CGFloat = 10.0 private let dismissOffsetThreshold: CGFloat = 70.0 @@ -185,7 +187,7 @@ final class ChatTextInputMediaRecordingButton: TGModernConversationInputMicButto private var modeTimeoutTimer: SwiftSignalKit.Timer? - private let innerIconView: UIImageView + private let animationView: ComponentView private var recordingOverlay: ChatTextInputAudioRecordingOverlay? private var startTouchLocation: CGPoint? @@ -288,7 +290,7 @@ final class ChatTextInputMediaRecordingButton: TGModernConversationInputMicButto init(theme: PresentationTheme, strings: PresentationStrings, presentController: @escaping (ViewController) -> Void) { self.theme = theme self.strings = strings - self.innerIconView = UIImageView() + self.animationView = ComponentView() self.presentController = presentController super.init(frame: CGRect()) @@ -297,8 +299,6 @@ final class ChatTextInputMediaRecordingButton: TGModernConversationInputMicButto self.pallete = legacyInputMicPalette(from: theme) - self.insertSubview(self.innerIconView, at: 0) - self.disablesInteractiveTransitionGestureRecognizer = true self.updateMode(mode: self.mode, animated: false, force: true) @@ -318,51 +318,81 @@ final class ChatTextInputMediaRecordingButton: TGModernConversationInputMicButto } private func updateMode(mode: ChatTextInputMediaRecordingButtonMode, animated: Bool, force: Bool) { + let previousMode = self.mode if mode != self.mode || force { self.mode = mode - - if animated { - let previousView = UIImageView(image: self.innerIconView.image) - previousView.frame = self.innerIconView.frame - self.addSubview(previousView) - previousView.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.15, removeOnCompletion: false) - previousView.layer.animateScale(from: 1.0, to: 0.3, duration: 0.15, removeOnCompletion: false, completion: { [weak previousView] _ in - previousView?.removeFromSuperview() - }) - } - - switch self.mode { - case .audio: - self.icon = PresentationResourcesChat.chatInputPanelVoiceActiveButtonImage(self.theme) - self.innerIconView.image = PresentationResourcesChat.chatInputPanelVoiceButtonImage(self.theme) - case .video: - self.icon = PresentationResourcesChat.chatInputPanelVideoActiveButtonImage(self.theme) - self.innerIconView.image = PresentationResourcesChat.chatInputPanelVideoButtonImage(self.theme) - } - if let image = self.innerIconView.image { - let size = self.bounds.size - let iconSize = image.size - self.innerIconView.frame = CGRect(origin: CGPoint(x: floor((size.width - iconSize.width) / 2.0), y: floor((size.height - iconSize.height) / 2.0)), size: iconSize) - } - - if animated { - self.innerIconView.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.15, removeOnCompletion: false) - self.innerIconView.layer.animateSpring(from: 0.4 as NSNumber, to: 1.0 as NSNumber, keyPath: "transform.scale", duration: 0.4) + + self.updateAnimation(previousMode: previousMode) + } + } + + private func updateAnimation(previousMode: ChatTextInputMediaRecordingButtonMode) { + let image: UIImage? + switch self.mode { + case .audio: + self.icon = PresentationResourcesChat.chatInputPanelVoiceActiveButtonImage(self.theme) + image = PresentationResourcesChat.chatInputPanelVoiceButtonImage(self.theme) + case .video: + self.icon = PresentationResourcesChat.chatInputPanelVideoActiveButtonImage(self.theme) + image = PresentationResourcesChat.chatInputPanelVoiceButtonImage(self.theme) + } + + let size = self.bounds.size + let iconSize: CGSize + if let image = image { + iconSize = image.size + } else { + iconSize = size + } + + let animationFrame = CGRect(origin: CGPoint(x: floor((size.width - iconSize.width) / 2.0), y: floor((size.height - iconSize.height) / 2.0)), size: iconSize) + + let animationName: String + switch self.mode { + case .audio: + animationName = "anim_videoToMic" + case .video: + animationName = "anim_micToVideo" + } + + var animationMode: LottieAnimationComponent.AnimationItem.Mode = .still(position: .end) + if previousMode != mode { + animationMode = .animating(loop: false) + } + + let colorKeys = ["__allcolors__"] + var colors: [String: UIColor] = [:] + for colorKey in colorKeys { + colors[colorKey] = self.theme.chat.inputPanel.panelControlColor + } + + let _ = animationView.update( + transition: .immediate, + component: AnyComponent(LottieAnimationComponent( + animation: LottieAnimationComponent.AnimationItem( + name: animationName, + mode: animationMode + ), + colors: colors, + size: animationFrame.size + )), + environment: {}, + containerSize: animationFrame.size + ) +// self.innerIconView.frame = CGRect(origin: CGPoint(x: floor((size.width - iconSize.width) / 2.0), y: floor((size.height - iconSize.height) / 2.0)), size: iconSize) + if let view = animationView.view { + view.isUserInteractionEnabled = false + if view.superview == nil { + self.insertSubview(view, at: 0) } + view.frame = animationFrame } } func updateTheme(theme: PresentationTheme) { self.theme = theme - switch self.mode { - case .audio: - self.icon = PresentationResourcesChat.chatInputPanelVoiceActiveButtonImage(self.theme) - self.innerIconView.image = PresentationResourcesChat.chatInputPanelVoiceButtonImage(self.theme) - case .video: - self.icon = PresentationResourcesChat.chatInputPanelVideoActiveButtonImage(self.theme) - self.innerIconView.image = PresentationResourcesChat.chatInputPanelVideoButtonImage(self.theme) - } + self.updateAnimation(previousMode: self.mode) self.pallete = legacyInputMicPalette(from: theme) self.micDecorationValue?.setColor(self.theme.chat.inputPanel.actionControlFillColor) @@ -467,8 +497,8 @@ final class ChatTextInputMediaRecordingButton: TGModernConversationInputMicButto micDecoration.isHidden = false micDecoration.startAnimating() - innerIconView.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.15, removeOnCompletion: false) - innerIconView.layer.animateScale(from: 1.0, to: 0.3, duration: 0.15, removeOnCompletion: false) + self.animationView.view?.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.15, removeOnCompletion: false) + self.animationView.view?.layer.animateScale(from: 1.0, to: 0.3, duration: 0.15, removeOnCompletion: false) } override func animateOut(_ toSmallSize: Bool) { @@ -480,8 +510,8 @@ final class ChatTextInputMediaRecordingButton: TGModernConversationInputMicButto micDecoration.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.03, delay: 0.15, removeOnCompletion: false) } else { micDecoration.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.18, removeOnCompletion: false) - innerIconView.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.15, removeOnCompletion: false) - innerIconView.layer.animateScale(from: 0.3, to: 1.0, duration: 0.15, removeOnCompletion: false) + self.animationView.view?.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.15, removeOnCompletion: false) + self.animationView.view?.layer.animateScale(from: 0.3, to: 1.0, duration: 0.15, removeOnCompletion: false) } } @@ -490,8 +520,10 @@ final class ChatTextInputMediaRecordingButton: TGModernConversationInputMicButto let size = self.bounds.size if size != self.previousSize { self.previousSize = size - let iconSize = self.innerIconView.bounds.size - self.innerIconView.frame = CGRect(origin: CGPoint(x: floor((size.width - iconSize.width) / 2.0), y: floor((size.height - iconSize.height) / 2.0)), size: iconSize) + if let view = self.animationView.view { + let iconSize = view.bounds.size + view.frame = CGRect(origin: CGPoint(x: floor((size.width - iconSize.width) / 2.0), y: floor((size.height - iconSize.height) / 2.0)), size: iconSize) + } } } } diff --git a/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift b/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift index f021309a7f..187633ea18 100644 --- a/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift +++ b/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift @@ -59,9 +59,12 @@ private final class AccessoryItemIconButtonNode: HighlightTrackingButtonNode { self.iconImageNode.isUserInteractionEnabled = false self.addSubnode(self.iconImageNode) - if case .stickers = item { - self.iconImageNode.isHidden = true - self.animationView = ComponentView() + switch item { + case .input, .botInput: + self.iconImageNode.isHidden = true + self.animationView = ComponentView() + default: + break } if let text = text { @@ -116,12 +119,15 @@ private final class AccessoryItemIconButtonNode: HighlightTrackingButtonNode { static func imageAndInsets(item: ChatTextInputAccessoryItem, theme: PresentationTheme, strings: PresentationStrings) -> (UIImage?, String?, String, CGFloat, UIEdgeInsets) { switch item { - case .keyboard: - return (PresentationResourcesChat.chatInputTextFieldKeyboardImage(theme), nil, strings.VoiceOver_Keyboard, 1.0, UIEdgeInsets()) - case let .stickers(enabled, _): - return (PresentationResourcesChat.chatInputTextFieldStickersImage(theme), nil, strings.VoiceOver_Stickers, enabled ? 1.0 : 0.4, UIEdgeInsets()) - case .inputButtons: - return (PresentationResourcesChat.chatInputTextFieldInputButtonsImage(theme), nil, strings.VoiceOver_BotKeyboard, 1.0, UIEdgeInsets()) + case let .input(isEnabled, inputMode), let .botInput(isEnabled, inputMode): + switch inputMode { + case .keyboard: + return (PresentationResourcesChat.chatInputTextFieldKeyboardImage(theme), nil, strings.VoiceOver_Keyboard, 1.0, UIEdgeInsets()) + case .stickers, .emoji: + return (PresentationResourcesChat.chatInputTextFieldStickersImage(theme), nil, strings.VoiceOver_Stickers, isEnabled ? 1.0 : 0.4, UIEdgeInsets()) + case .bot: + return (PresentationResourcesChat.chatInputTextFieldInputButtonsImage(theme), nil, strings.VoiceOver_BotKeyboard, 1.0, UIEdgeInsets()) + } case .commands: return (PresentationResourcesChat.chatInputTextFieldCommandsImage(theme), nil, strings.VoiceOver_BotCommands, 1.0, UIEdgeInsets()) case let .silentPost(value): @@ -143,7 +149,7 @@ private final class AccessoryItemIconButtonNode: HighlightTrackingButtonNode { static func calculateWidth(item: ChatTextInputAccessoryItem, image: UIImage?, text: String?, strings: PresentationStrings) -> CGFloat { switch item { - case .keyboard, .stickers, .inputButtons, .silentPost, .commands, .scheduledMessages: + case .input, .botInput, .silentPost, .commands, .scheduledMessages: return 32.0 case let .messageAutoremoveTimeout(timeout): var imageWidth = (image?.size.width ?? 0.0) + CGFloat(8.0) @@ -156,6 +162,7 @@ private final class AccessoryItemIconButtonNode: HighlightTrackingButtonNode { } func updateLayout(item: ChatTextInputAccessoryItem, size: CGSize) { + let previousItem = self.item self.item = item if let image = self.iconImageNode.image { @@ -165,26 +172,112 @@ private final class AccessoryItemIconButtonNode: HighlightTrackingButtonNode { let imageFrame = CGRect(origin: CGPoint(x: floor((size.width - image.size.width) / 2.0), y: floor((size.height - image.size.height) / 2.0) - bottomInset), size: image.size) self.iconImageNode.frame = imageFrame - if case let .stickers(_, isEmoji) = item, let animationView = self.animationView { + if let animationView = self.animationView { let animationFrame = imageFrame.insetBy(dx: -4.0, dy: -4.0) - var colors: [String: UIColor] = [:] - let colorKeys: [String] = [ + var previousInputMode: ChatTextInputAccessoryItem.InputMode? + var inputMode: ChatTextInputAccessoryItem.InputMode? + + switch previousItem { + case let .input(_, itemInputMode), let .botInput(_, itemInputMode): + previousInputMode = itemInputMode + default: + break + } + switch item { + case let .input(_, itemInputMode), let .botInput(_, itemInputMode): + inputMode = itemInputMode + default: + break + } + + let emojiColorKeys = [ "Ellipse 33.Ellipse 33.Stroke 1", "Ellipse 34.Ellipse 34.Stroke 1", "Oval.Oval.Fill 1", "Oval 2.Oval.Fill 1", "Path 85.Path 85.Stroke 1" ] + + var colorKeys: [String] = ["__allcolors__"] + let animationName: String + var animationMode: LottieAnimationComponent.AnimationItem.Mode = .still(position: .end) + if let inputMode = inputMode { + switch inputMode { + case .keyboard: + if let previousInputMode = previousInputMode { + if case .stickers = previousInputMode { + animationName = "anim_stickerToKey" + animationMode = .animating(loop: false) + } else if case .emoji = previousInputMode { + animationName = "anim_smileToKey" + animationMode = .animating(loop: false) + } else if case .bot = previousInputMode { + animationName = "anim_botToKey" + animationMode = .animating(loop: false) + } else { + animationName = "anim_stickerToKey" + } + } else { + animationName = "anim_stickerToKey" + } + case .stickers: + if let previousInputMode = previousInputMode { + if case .keyboard = previousInputMode { + animationName = "anim_keyToSticker" + animationMode = .animating(loop: false) + } else if case .emoji = previousInputMode { + animationName = "anim_smileToSticker" + animationMode = .animating(loop: false) + colorKeys = emojiColorKeys + } else { + animationName = "anim_keyToSticker" + } + } else { + animationName = "anim_keyToSticker" + } + case .emoji: + if let previousInputMode = previousInputMode { + if case .keyboard = previousInputMode { + animationName = "anim_keyToSmile" + animationMode = .animating(loop: false) + } else if case .stickers = previousInputMode { + animationName = "anim_stickerToSmile" + animationMode = .animating(loop: false) + colorKeys = emojiColorKeys + } else { + animationName = "anim_keyToSmile" + } + } else { + animationName = "anim_keyToSmile" + } + case .bot: + if let previousInputMode = previousInputMode { + if case .keyboard = previousInputMode { + animationName = "anim_keyToBot" + animationMode = .animating(loop: false) + } else { + animationName = "anim_keyToBot" + } + } else { + animationName = "anim_keyToBot" + } + } + } else { + animationName = "" + } + + var colors: [String: UIColor] = [:] for colorKey in colorKeys { colors[colorKey] = self.theme.chat.inputPanel.inputControlColor } + let _ = animationView.update( transition: .immediate, component: AnyComponent(LottieAnimationComponent( animation: LottieAnimationComponent.AnimationItem( - name: !isEmoji ? "anim_stickertosmile" : "anim_smiletosticker", - mode: .animateTransitionFromPrevious + name: animationName, + mode: animationMode ), colors: colors, size: animationFrame.size @@ -193,6 +286,7 @@ private final class AccessoryItemIconButtonNode: HighlightTrackingButtonNode { containerSize: animationFrame.size ) if let view = animationView.view { + view.isUserInteractionEnabled = false if view.superview == nil { self.view.addSubview(view) } @@ -586,7 +680,7 @@ class ChatTextInputPanelNode: ChatInputPanelNode, ASEditableTextNodeDelegate { private var touchDownGestureRecognizer: TouchDownGestureRecognizer? - private var emojiViewProvider: ((ChatTextInputTextCustomEmojiAttribute) -> UIView)? + var emojiViewProvider: ((ChatTextInputTextCustomEmojiAttribute) -> UIView)? init(presentationInterfaceState: ChatPresentationInterfaceState, presentationContext: ChatPresentationContext?, presentController: @escaping (ViewController) -> Void) { self.presentationInterfaceState = presentationInterfaceState @@ -2942,20 +3036,23 @@ class ChatTextInputPanelNode: ChatInputPanelNode, ASEditableTextNodeDelegate { for (item, currentButton) in self.accessoryItemButtons { if currentButton === button { switch item { - case let .stickers(enabled, _): - if enabled { - self.interfaceInteraction?.openStickers() - } else { - self.interfaceInteraction?.displayRestrictedInfo(.stickers, .tooltip) + case let .input(isEnabled, inputMode), let .botInput(isEnabled, inputMode): + switch inputMode { + case .keyboard: + self.interfaceInteraction?.updateInputModeAndDismissedButtonKeyboardMessageId({ state in + return (.text, state.keyboardButtonsMessage?.id) + }) + case .stickers, .emoji: + if isEnabled { + self.interfaceInteraction?.openStickers() + } else { + self.interfaceInteraction?.displayRestrictedInfo(.stickers, .tooltip) + } + case .bot: + self.interfaceInteraction?.updateInputModeAndDismissedButtonKeyboardMessageId({ state in + return (.inputButtons, nil) + }) } - case .keyboard: - self.interfaceInteraction?.updateInputModeAndDismissedButtonKeyboardMessageId({ state in - return (.text, state.keyboardButtonsMessage?.id) - }) - case .inputButtons: - self.interfaceInteraction?.updateInputModeAndDismissedButtonKeyboardMessageId({ state in - return (.inputButtons, nil) - }) case .commands: self.interfaceInteraction?.updateTextInputStateAndMode { _, inputMode in return (ChatTextInputState(inputText: NSAttributedString(string: "/")), .text) @@ -3011,7 +3108,7 @@ class ChatTextInputPanelNode: ChatInputPanelNode, ASEditableTextNodeDelegate { func frameForStickersButton() -> CGRect? { for (item, button) in self.accessoryItemButtons { - if case .stickers = item { + if case let .input(_, inputMode) = item, case .stickers = inputMode { return button.frame.insetBy(dx: 0.0, dy: 6.0) } } diff --git a/submodules/TelegramUI/Sources/PeerSelectionControllerNode.swift b/submodules/TelegramUI/Sources/PeerSelectionControllerNode.swift index 6693d99a67..ac30fa69f4 100644 --- a/submodules/TelegramUI/Sources/PeerSelectionControllerNode.swift +++ b/submodules/TelegramUI/Sources/PeerSelectionControllerNode.swift @@ -329,6 +329,7 @@ final class PeerSelectionControllerNode: ASDisplayNode { }, schedule: { [weak textInputPanelNode] in textInputPanelNode?.sendMessage(.schedule) }) + controller.emojiViewProvider = textInputPanelNode.emojiViewProvider strongSelf.presentInGlobalOverlay(controller, nil) }, openScheduledMessages: { }, openPeersNearby: {