mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-10-09 03:20:48 +00:00
Video avatar fixes
This commit is contained in:
parent
fb29f22a3c
commit
1781ffb147
@ -47,7 +47,7 @@ private func chatMessageGalleryControllerData(context: AccountContext, message:
|
||||
case let .photoUpdated(image):
|
||||
if let peer = messageMainPeer(message), let image = image {
|
||||
let promise: Promise<[AvatarGalleryEntry]> = Promise([AvatarGalleryEntry.image(image.imageId, image.reference, image.representations.map({ ImageRepresentationWithReference(representation: $0, reference: .media(media: .message(message: MessageReference(message), media: media), resource: $0.resource)) }), image.videoRepresentations, peer, message.timestamp, nil, message.id, image.immediateThumbnailData, "action")])
|
||||
let galleryController = AvatarGalleryController(context: context, peer: peer, remoteEntries: promise, replaceRootController: { controller, ready in
|
||||
let galleryController = AvatarGalleryController(context: context, peer: peer, remoteEntries: promise, skipInitial: true, replaceRootController: { controller, ready in
|
||||
|
||||
})
|
||||
return .chatAvatars(galleryController, image)
|
||||
|
@ -2310,6 +2310,7 @@ final class PeerInfoHeaderNode: ASDisplayNode {
|
||||
var performButtonAction: ((PeerInfoHeaderButtonKey) -> Void)?
|
||||
var requestAvatarExpansion: ((Bool, [AvatarGalleryEntry], AvatarGalleryEntry?, (ASDisplayNode, CGRect, () -> (UIView?, UIView?))?) -> Void)?
|
||||
var requestOpenAvatarForEditing: ((Bool) -> Void)?
|
||||
var cancelUpload: (() -> Void)?
|
||||
var requestUpdateLayout: (() -> Void)?
|
||||
|
||||
var displayCopyContextMenu: ((ASDisplayNode, Bool, Bool) -> Void)?
|
||||
@ -2358,6 +2359,7 @@ final class PeerInfoHeaderNode: ASDisplayNode {
|
||||
self.editingContentNode.alpha = 0.0
|
||||
|
||||
self.avatarOverlayNode = PeerInfoEditingAvatarOverlayNode(context: context)
|
||||
self.avatarOverlayNode.isUserInteractionEnabled = false
|
||||
|
||||
self.navigationBackgroundNode = ASDisplayNode()
|
||||
self.navigationBackgroundNode.isUserInteractionEnabled = false
|
||||
@ -2445,9 +2447,11 @@ final class PeerInfoHeaderNode: ASDisplayNode {
|
||||
if let currentEntry = self.avatarListNode.listContainerNode.currentEntry {
|
||||
self.requestAvatarExpansion?(true, self.avatarListNode.listContainerNode.galleryEntries, self.avatarListNode.listContainerNode.currentEntry, self.avatarTransitionArguments(entry: currentEntry))
|
||||
}
|
||||
} else if let entry = self.avatarListNode.listContainerNode.galleryEntries.first{
|
||||
} else if let entry = self.avatarListNode.listContainerNode.galleryEntries.first {
|
||||
let _ = self.avatarListNode.avatarContainerNode.avatarNode
|
||||
self.requestAvatarExpansion?(false, self.avatarListNode.listContainerNode.galleryEntries, nil, self.avatarTransitionArguments(entry: entry))
|
||||
} else {
|
||||
self.cancelUpload?()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2062,6 +2062,19 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD
|
||||
self?.performButtonAction(key: key)
|
||||
}
|
||||
|
||||
self.headerNode.cancelUpload = { [weak self] in
|
||||
guard let strongSelf = self else {
|
||||
return
|
||||
}
|
||||
if strongSelf.state.updatingAvatar != nil {
|
||||
strongSelf.updateAvatarDisposable.set(nil)
|
||||
strongSelf.state = strongSelf.state.withUpdatingAvatar(nil)
|
||||
if let (layout, navigationHeight) = strongSelf.validLayout {
|
||||
strongSelf.containerLayoutUpdated(layout: layout, navigationHeight: navigationHeight, transition: .immediate, additive: false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
self.headerNode.requestAvatarExpansion = { [weak self] gallery, entries, centralEntry, _ in
|
||||
guard let strongSelf = self, let peer = strongSelf.data?.peer, peer.smallProfileImage != nil else {
|
||||
return
|
||||
|
Loading…
x
Reference in New Issue
Block a user