diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/Dialer.qml | 30 | ||||
-rw-r--r-- | app/api/Telephony.qml | 4 |
2 files changed, 30 insertions, 4 deletions
diff --git a/app/Dialer.qml b/app/Dialer.qml index 99610fd..51f6a53 100644 --- a/app/Dialer.qml +++ b/app/Dialer.qml @@ -25,10 +25,30 @@ import 'api' as API Item { id: root + function getTime() { + return new Date().getTime() + } + + // Elapsed time in hh:mm:ss format + function getElapsedTimeString(startTime) { + var seconds = Math.floor((getTime() - startTime) / 1000); + var time = new Date(null); + time.setSeconds(seconds); + return time.toISOString().substr(11, 8); + } + + Timer { + id: callTimer + interval: 1000 + repeat: true + property var startTime + onTriggered: callStatusLabel.text = getElapsedTimeString(startTime) + } + API.Telephony { id: telephony url: bindingAddress - property string callStatus: "idle" + property string callStatus: "disconnected" property string callClipColp: "" onCallStatusChanged: { @@ -36,9 +56,13 @@ Item { ringtone.active = true callStatusLabel.text = "Incoming call from " + callClipColp } else if (callStatus == "dialing") { - callStatusLabel.text = "Calling " + callClipColp - } else if (callStatus == "idle") { + callStatusLabel.text = "Dialing " + callClipColp + } else if (callStatus == "active") { + callTimer.startTime = getTime() + callTimer.restart() + } else if (callStatus == "disconnected") { ringtone.active = false + callTimer.stop() callStatusLabel.text = "" } } diff --git a/app/api/Telephony.qml b/app/api/Telephony.qml index b42af4f..c7d9218 100644 --- a/app/api/Telephony.qml +++ b/app/api/Telephony.qml @@ -65,7 +65,9 @@ WebSocket { callClipColp = data.colp callStatus = "dialing" } else if (event == "telephony/terminatedCall") { - callStatus = "idle" + callStatus = "disconnected" + } else if (event == "telephony/callStateChanged") { + callStatus = data.state } break } |