aboutsummaryrefslogtreecommitdiff
path: root/main/src/ui/conversation_content_view/call_widget.vala
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/ui/conversation_content_view/call_widget.vala')
-rw-r--r--main/src/ui/conversation_content_view/call_widget.vala13
1 files changed, 5 insertions, 8 deletions
diff --git a/main/src/ui/conversation_content_view/call_widget.vala b/main/src/ui/conversation_content_view/call_widget.vala
index ab047196..3d6b250b 100644
--- a/main/src/ui/conversation_content_view/call_widget.vala
+++ b/main/src/ui/conversation_content_view/call_widget.vala
@@ -111,6 +111,10 @@ namespace Dino.Ui {
incoming_call_revealer.reveal_child = true;
}
+ private void on_time_update_timeout() {
+ if (time_update_handler_id != 0) update_call_state();
+ }
+
private void update_call_state() {
incoming_call_revealer.reveal_child = false;
incoming_call_revealer.remove_css_class("incoming");
@@ -156,14 +160,7 @@ namespace Dino.Ui {
string duration = get_duration_string((new DateTime.now_utc()).difference(call.local_time));
subtitle_label.label = _("Started %s ago").printf(duration);
- time_update_handler_id = Timeout.add_seconds(get_next_time_change() + 1, () => {
- if (time_update_handler_id != 0) {
- Source.remove(time_update_handler_id);
- time_update_handler_id = 0;
- update_call_state();
- }
- return true;
- });
+ time_update_handler_id = Dino.WeakTimeout.add_seconds_once(get_next_time_change() + 1, this, on_time_update_timeout);
break;
case Call.State.OTHER_DEVICE: