Voice Chat Improvements

This commit is contained in:
Ilya Laktyushin
2021-03-04 18:59:06 +04:00
parent 1fbceb81d1
commit 74d1896e04
50 changed files with 4848 additions and 4462 deletions

View File

@@ -21,10 +21,10 @@ func generateStartRecordingIcon(color: UIColor) -> UIImage? {
}
final class VoiceChatRecordingContextItem: ContextMenuCustomItem {
fileprivate let timestamp: Double
fileprivate let timestamp: Int32
fileprivate let action: (ContextController, @escaping (ContextMenuActionResult) -> Void) -> Void
init(timestamp: Double, action: @escaping (ContextController, @escaping (ContextMenuActionResult) -> Void) -> Void) {
init(timestamp: Int32, action: @escaping (ContextController, @escaping (ContextMenuActionResult) -> Void) -> Void) {
self.timestamp = timestamp
self.action = action
}
@@ -187,8 +187,8 @@ private final class VoiceChatRecordingContextItemNode: ASDisplayNode, ContextMen
return
}
let currentTime = CFAbsoluteTimeGetCurrent()
let duration = currentTime - item.timestamp
let timestamp = Int32(CFAbsoluteTimeGetCurrent() + NSTimeIntervalSince1970)
let duration = max(0, timestamp - item.timestamp)
let subtextFont = Font.regular(self.presentationData.listsFontSize.baseDisplaySize * 13.0 / 17.0)
self.statusNode.attributedText = NSAttributedString(string: stringForDuration(Int32(duration)), font: subtextFont, textColor: presentationData.theme.contextMenu.secondaryColor)
@@ -218,7 +218,12 @@ private final class VoiceChatRecordingContextItemNode: ASDisplayNode, ContextMen
let verticalSpacing: CGFloat = 2.0
let combinedTextHeight = textSize.height + verticalSpacing + statusSize.height
return (CGSize(width: max(textSize.width, statusSize.width) + sideInset + rightTextInset, height: verticalInset * 2.0 + combinedTextHeight), { size, transition in
let hadLayout = self.validLayout != nil
self.validLayout = size
if !hadLayout {
self.updateTime(transition: .immediate)
}
let verticalOrigin = floor((size.height - combinedTextHeight) / 2.0)
let textFrame = CGRect(origin: CGPoint(x: sideInset, y: verticalOrigin), size: textSize)
transition.updateFrameAdditive(node: self.textNode, frame: textFrame)