From e5d5009d6a111cd49d9eb15d71550a3033ae6410 Mon Sep 17 00:00:00 2001 From: Alexander Krotov Date: Fri, 10 Jul 2020 02:52:45 +0300 Subject: [PATCH 1/2] Emit ChatEphemeralTimerModified when user changes the timer --- src/dc_receive_imf.rs | 5 ----- src/ephemeral.rs | 5 +++++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/dc_receive_imf.rs b/src/dc_receive_imf.rs index bf07bd0e7..9dacc1a87 100644 --- a/src/dc_receive_imf.rs +++ b/src/dc_receive_imf.rs @@ -674,11 +674,6 @@ async fn add_parts( ) .await; } - - context.emit_event(Event::ChatEphemeralTimerModified { - chat_id: *chat_id, - timer: timer.to_u32(), - }); } Err(err) => { warn!( diff --git a/src/ephemeral.rs b/src/ephemeral.rs index 32b9a7d50..83a9f6d14 100644 --- a/src/ephemeral.rs +++ b/src/ephemeral.rs @@ -176,6 +176,11 @@ impl ChatId { paramsv![timer, self], ) .await?; + + context.emit_event(Event::ChatEphemeralTimerModified { + chat_id: self, + timer: timer.to_u32(), + }); Ok(()) } From f28a0db7d06aba26b6db622fea836ce2059c73a8 Mon Sep 17 00:00:00 2001 From: Alexander Krotov Date: Fri, 10 Jul 2020 02:55:17 +0300 Subject: [PATCH 2/2] Store typed timer in ChatEphemeralTimerModified event --- deltachat-ffi/src/lib.rs | 2 +- src/ephemeral.rs | 2 +- src/events.rs | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/deltachat-ffi/src/lib.rs b/deltachat-ffi/src/lib.rs index c09fafb54..1856333f6 100644 --- a/deltachat-ffi/src/lib.rs +++ b/deltachat-ffi/src/lib.rs @@ -401,7 +401,7 @@ pub unsafe extern "C" fn dc_event_get_data2_int(event: *mut dc_event_t) -> libc: | Event::MsgRead { msg_id, .. } => msg_id.to_u32() as libc::c_int, Event::SecurejoinInviterProgress { progress, .. } | Event::SecurejoinJoinerProgress { progress, .. } => *progress as libc::c_int, - Event::ChatEphemeralTimerModified { timer, .. } => *timer as libc::c_int, + Event::ChatEphemeralTimerModified { timer, .. } => timer.to_u32() as libc::c_int, } } diff --git a/src/ephemeral.rs b/src/ephemeral.rs index 83a9f6d14..0fb311ae7 100644 --- a/src/ephemeral.rs +++ b/src/ephemeral.rs @@ -179,7 +179,7 @@ impl ChatId { context.emit_event(Event::ChatEphemeralTimerModified { chat_id: self, - timer: timer.to_u32(), + timer, }); Ok(()) } diff --git a/src/events.rs b/src/events.rs index 828e97e4d..c58b9183d 100644 --- a/src/events.rs +++ b/src/events.rs @@ -5,6 +5,7 @@ use async_std::sync::{channel, Receiver, Sender, TrySendError}; use strum::EnumProperty; use crate::chat::ChatId; +use crate::ephemeral::Timer as EphemeralTimer; use crate::message::MsgId; #[derive(Debug)] @@ -197,7 +198,10 @@ pub enum Event { /// Chat ephemeral timer changed. #[strum(props(id = "2021"))] - ChatEphemeralTimerModified { chat_id: ChatId, timer: u32 }, + ChatEphemeralTimerModified { + chat_id: ChatId, + timer: EphemeralTimer, + }, /// Contact(s) created, renamed, blocked or deleted. ///