mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 14:45:21 +00:00
Video improvements
This commit is contained in:
@@ -51,7 +51,33 @@ extension ChatControllerImpl {
|
||||
return
|
||||
}
|
||||
|
||||
UIPasteboard.general.string = timecode
|
||||
if message.id.namespace == Namespaces.Message.Cloud, let channel = message.peers[message.id.peerId] as? TelegramChannel, let addressName = channel.addressName {
|
||||
var timestampSuffix = ""
|
||||
let startAtTimestamp = parseTimeString(timecode)
|
||||
|
||||
var startAtTimestampString = ""
|
||||
let hours = startAtTimestamp / 3600
|
||||
let minutes = startAtTimestamp / 60 % 60
|
||||
let seconds = startAtTimestamp % 60
|
||||
if hours == 0 && minutes == 0 {
|
||||
startAtTimestampString = "\(startAtTimestamp)"
|
||||
} else {
|
||||
if hours != 0 {
|
||||
startAtTimestampString += "\(hours)h"
|
||||
}
|
||||
if minutes != 0 {
|
||||
startAtTimestampString += "\(minutes)m"
|
||||
}
|
||||
if seconds != 0 {
|
||||
startAtTimestampString += "\(seconds)s"
|
||||
}
|
||||
}
|
||||
timestampSuffix = "?t=\(startAtTimestampString)"
|
||||
let inputCopyText = "https://t.me/\(addressName)/\(message.id.id)\(timestampSuffix)"
|
||||
UIPasteboard.general.string = inputCopyText
|
||||
} else {
|
||||
UIPasteboard.general.string = timecode
|
||||
}
|
||||
|
||||
self.present(UndoOverlayController(presentationData: self.presentationData, content: .copy(text: presentationData.strings.Conversation_TextCopied), elevatedLayout: false, animateInAsReplacement: false, action: { _ in return false }), in: .current)
|
||||
}))
|
||||
@@ -67,3 +93,30 @@ extension ChatControllerImpl {
|
||||
self.window?.presentInGlobalOverlay(controller)
|
||||
}
|
||||
}
|
||||
|
||||
private func parseTimeString(_ timeString: String) -> Int {
|
||||
let parts = timeString.split(separator: ":").map(String.init)
|
||||
|
||||
switch parts.count {
|
||||
case 1:
|
||||
// Single component (e.g. "1", "10") => seconds
|
||||
return Int(parts[0]) ?? 0
|
||||
|
||||
case 2:
|
||||
// Two components (e.g. "1:01", "10:30") => minutes:seconds
|
||||
let minutes = Int(parts[0]) ?? 0
|
||||
let seconds = Int(parts[1]) ?? 0
|
||||
return minutes * 60 + seconds
|
||||
|
||||
case 3:
|
||||
// Three components (e.g. "1:01:01", "10:00:00") => hours:minutes:seconds
|
||||
let hours = Int(parts[0]) ?? 0
|
||||
let minutes = Int(parts[1]) ?? 0
|
||||
let seconds = Int(parts[2]) ?? 0
|
||||
return hours * 3600 + minutes * 60 + seconds
|
||||
|
||||
default:
|
||||
// Fallback to 0 or handle invalid format
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user