From 95449cc7c55a892c565e4bd06ad06ed243e2eadc Mon Sep 17 00:00:00 2001 From: Christophe Deschamps Date: Tue, 14 Jun 2022 22:18:59 +0200 Subject: [PATCH] Display timer on outgoing call view --- .../Fragments/IncomingOuntgoingCommonView.swift | 2 +- Classes/Swift/Voip/Widgets/UICallTimer.swift | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Classes/Swift/Voip/Views/Fragments/IncomingOuntgoingCommonView.swift b/Classes/Swift/Voip/Views/Fragments/IncomingOuntgoingCommonView.swift index 40a21da83..38ff5aeb0 100644 --- a/Classes/Swift/Voip/Views/Fragments/IncomingOuntgoingCommonView.swift +++ b/Classes/Swift/Voip/Views/Fragments/IncomingOuntgoingCommonView.swift @@ -43,7 +43,7 @@ import linphonesw var callData: CallData? = nil { didSet { - duration.call = callData?.call + duration.call = callData?.call.dir == .Incoming ? callData?.call : nil callData?.call.remoteAddress.map { avatar.fillFromAddress(address: $0) displayName.text = $0.addressBookEnhancedDisplayName() diff --git a/Classes/Swift/Voip/Widgets/UICallTimer.swift b/Classes/Swift/Voip/Widgets/UICallTimer.swift index 1eaf13ef9..154062bbf 100644 --- a/Classes/Swift/Voip/Widgets/UICallTimer.swift +++ b/Classes/Swift/Voip/Widgets/UICallTimer.swift @@ -35,7 +35,7 @@ class CallTimer : StyledLabel { var conference:Conference? = nil { didSet { - if (self.call != nil) { + if (self.conference != nil) { self.format() } } @@ -51,8 +51,16 @@ class CallTimer : StyledLabel { formatter.unitsStyle = .positional formatter.allowedUnits = [.minute, .second ] formatter.zeroFormattingBehavior = [ .pad ] + let startDate = Date() Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { timer in - self.format() + if (self.call != nil || self.conference != nil) { + self.format() + } else { + let elapsedTime = Date().timeIntervalSince(startDate) + self.formatter.string(from: elapsedTime).map { + self.text = $0.hasPrefix("0:") ? "0" + $0 : $0 + } + } } minWidth(min_width).done()