mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 22:55:00 +00:00
[WIP] Call tones
This commit is contained in:
@@ -110,6 +110,9 @@ public final class GroupCallNavigationAccessoryPanel: ASDisplayNode {
|
||||
private let joinButtonTitleNode: ImmediateTextNode
|
||||
private let joinButtonBackgroundNode: ASImageNode
|
||||
|
||||
private var previewImageNode: ASImageNode?
|
||||
private var previewImage: UIImage?
|
||||
|
||||
private var audioLevelView: VoiceBlobView?
|
||||
|
||||
private let micButton: HighlightTrackingButtonNode
|
||||
@@ -536,8 +539,18 @@ public final class GroupCallNavigationAccessoryPanel: ASDisplayNode {
|
||||
guard let self, let data else {
|
||||
return
|
||||
}
|
||||
let _ = self
|
||||
let _ = data
|
||||
|
||||
var image: UIImage?
|
||||
for i in 0 ..< 100 {
|
||||
image = UIImage(data: data.subdata(in: i ..< data.count))
|
||||
if image != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
self.previewImage = image
|
||||
if let (size, leftInset, rightInset) = self.validLayout {
|
||||
self.updateLayout(size: size, leftInset: leftInset, rightInset: rightInset, transition: .animated(duration: 0.2, curve: .easeInOut))
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -668,6 +681,26 @@ public final class GroupCallNavigationAccessoryPanel: ASDisplayNode {
|
||||
staticTransition.updateFrame(node: self.joinButtonBackgroundNode, frame: CGRect(origin: CGPoint(), size: joinButtonFrame.size))
|
||||
staticTransition.updateFrame(node: self.joinButtonTitleNode, frame: CGRect(origin: CGPoint(x: floorToScreenPixels((joinButtonFrame.width - joinButtonTitleSize.width) / 2.0), y: floorToScreenPixels((joinButtonFrame.height - joinButtonTitleSize.height) / 2.0)), size: joinButtonTitleSize))
|
||||
|
||||
if let previewImage = self.previewImage {
|
||||
let previewImageNode: ASImageNode
|
||||
if let current = self.previewImageNode {
|
||||
previewImageNode = current
|
||||
} else {
|
||||
previewImageNode = ASImageNode()
|
||||
previewImageNode.clipsToBounds = true
|
||||
previewImageNode.cornerRadius = 8.0
|
||||
previewImageNode.contentMode = .scaleAspectFill
|
||||
self.previewImageNode = previewImageNode
|
||||
self.addSubnode(previewImageNode)
|
||||
}
|
||||
previewImageNode.image = previewImage
|
||||
let previewSize = CGSize(width: 40.0, height: 40.0)
|
||||
previewImageNode.frame = CGRect(origin: CGPoint(x: joinButtonFrame.minX - previewSize.width - 8.0, y: joinButtonFrame.minY + floor((joinButtonFrame.height - previewSize.height) / 2.0)), size: previewSize)
|
||||
} else if let previewImageNode = self.previewImageNode {
|
||||
self.previewImageNode = nil
|
||||
previewImageNode.removeFromSupernode()
|
||||
}
|
||||
|
||||
let micButtonSize = CGSize(width: 36.0, height: 36.0)
|
||||
let micButtonFrame = CGRect(origin: CGPoint(x: size.width - rightInset - 7.0 - micButtonSize.width, y: floor((panelHeight - micButtonSize.height) / 2.0)), size: micButtonSize)
|
||||
staticTransition.updateFrame(node: self.micButton, frame: micButtonFrame)
|
||||
|
||||
Reference in New Issue
Block a user