mirror of
https://github.com/chatmail/core.git
synced 2026-05-02 12:56:30 +03:00
refactor: use enum for system messages
This commit is contained in:
committed by
holger krekel
parent
0346dd15d9
commit
c0747bf68d
@@ -7,6 +7,7 @@ use crate::config::*;
|
|||||||
use crate::constants::*;
|
use crate::constants::*;
|
||||||
use crate::contact::*;
|
use crate::contact::*;
|
||||||
use crate::context::Context;
|
use crate::context::Context;
|
||||||
|
use crate::dc_mimeparser::SystemMessage;
|
||||||
use crate::dc_tools::*;
|
use crate::dc_tools::*;
|
||||||
use crate::error::Error;
|
use crate::error::Error;
|
||||||
use crate::events::Event;
|
use crate::events::Event;
|
||||||
@@ -1669,7 +1670,8 @@ pub fn set_chat_profile_image(
|
|||||||
if chat.update_param(context).is_ok() {
|
if chat.update_param(context).is_ok() {
|
||||||
if chat.is_promoted() {
|
if chat.is_promoted() {
|
||||||
let mut msg = dc_msg_new_untyped();
|
let mut msg = dc_msg_new_untyped();
|
||||||
msg.param.set_int(Param::Cmd, DC_CMD_GROUPIMAGE_CHANGED);
|
msg.param
|
||||||
|
.set_int(Param::Cmd, SystemMessage::GroupImageChanged as i32);
|
||||||
msg.type_0 = Viewtype::Text;
|
msg.type_0 = Viewtype::Text;
|
||||||
msg.text = Some(context.stock_system_msg(
|
msg.text = Some(context.stock_system_msg(
|
||||||
if new_image_rel == "" {
|
if new_image_rel == "" {
|
||||||
|
|||||||
@@ -314,12 +314,3 @@ pub enum KeyType {
|
|||||||
Public = 0,
|
Public = 0,
|
||||||
Private = 1,
|
Private = 1,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub const DC_CMD_GROUPNAME_CHANGED: libc::c_int = 2;
|
|
||||||
pub const DC_CMD_GROUPIMAGE_CHANGED: libc::c_int = 3;
|
|
||||||
pub const DC_CMD_MEMBER_ADDED_TO_GROUP: libc::c_int = 4;
|
|
||||||
pub const DC_CMD_MEMBER_REMOVED_FROM_GROUP: libc::c_int = 5;
|
|
||||||
pub const DC_CMD_AUTOCRYPT_SETUP_MESSAGE: libc::c_int = 6;
|
|
||||||
pub const DC_CMD_SECUREJOIN_MESSAGE: libc::c_int = 7;
|
|
||||||
pub const DC_CMD_LOCATION_STREAMING_ENABLED: libc::c_int = 8;
|
|
||||||
pub const DC_CMD_LOCATION_ONLY: libc::c_int = 9;
|
|
||||||
|
|||||||
@@ -11,11 +11,13 @@ use mmime::mailmime_types_helper::*;
|
|||||||
use mmime::mailmime_write_mem::*;
|
use mmime::mailmime_write_mem::*;
|
||||||
use mmime::mmapstring::*;
|
use mmime::mmapstring::*;
|
||||||
use mmime::other::*;
|
use mmime::other::*;
|
||||||
|
use num_traits::FromPrimitive;
|
||||||
|
|
||||||
use crate::chat::{self, Chat};
|
use crate::chat::{self, Chat};
|
||||||
use crate::constants::*;
|
use crate::constants::*;
|
||||||
use crate::contact::*;
|
use crate::contact::*;
|
||||||
use crate::context::{get_version_str, Context};
|
use crate::context::{get_version_str, Context};
|
||||||
|
use crate::dc_mimeparser::SystemMessage;
|
||||||
use crate::dc_strencode::*;
|
use crate::dc_strencode::*;
|
||||||
use crate::dc_tools::*;
|
use crate::dc_tools::*;
|
||||||
use crate::e2ee::*;
|
use crate::e2ee::*;
|
||||||
@@ -529,7 +531,12 @@ pub unsafe fn dc_mimefactory_render(context: &Context, factory: &mut dc_mimefact
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* build header etc. */
|
/* build header etc. */
|
||||||
let command = factory.msg.param.get_int(Param::Cmd).unwrap_or_default();
|
let command = factory
|
||||||
|
.msg
|
||||||
|
.param
|
||||||
|
.get_int(Param::Cmd)
|
||||||
|
.and_then(SystemMessage::from_i32)
|
||||||
|
.unwrap_or_default();
|
||||||
if chat.typ == Chattype::Group || chat.typ == Chattype::VerifiedGroup {
|
if chat.typ == Chattype::Group || chat.typ == Chattype::VerifiedGroup {
|
||||||
mailimf_fields_add(
|
mailimf_fields_add(
|
||||||
imf_fields,
|
imf_fields,
|
||||||
@@ -546,7 +553,10 @@ pub unsafe fn dc_mimefactory_render(context: &Context, factory: &mut dc_mimefact
|
|||||||
dc_encode_header_words(name.as_ptr()),
|
dc_encode_header_words(name.as_ptr()),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
if command == DC_CMD_MEMBER_REMOVED_FROM_GROUP {
|
|
||||||
|
match command {
|
||||||
|
SystemMessage::Unknown | SystemMessage::LocationOnly => {}
|
||||||
|
SystemMessage::MemberRemovedFromGroup => {
|
||||||
let email_to_remove = factory
|
let email_to_remove = factory
|
||||||
.msg
|
.msg
|
||||||
.param
|
.param
|
||||||
@@ -565,7 +575,8 @@ pub unsafe fn dc_mimefactory_render(context: &Context, factory: &mut dc_mimefact
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else if command == DC_CMD_MEMBER_ADDED_TO_GROUP {
|
}
|
||||||
|
SystemMessage::MemberAddedToGroup => {
|
||||||
let msg = &factory.msg;
|
let msg = &factory.msg;
|
||||||
do_gossip = 1;
|
do_gossip = 1;
|
||||||
let email_to_add = msg.param.get(Param::Arg).unwrap_or_default().strdup();
|
let email_to_add = msg.param.get(Param::Arg).unwrap_or_default().strdup();
|
||||||
@@ -592,11 +603,14 @@ pub unsafe fn dc_mimefactory_render(context: &Context, factory: &mut dc_mimefact
|
|||||||
imf_fields,
|
imf_fields,
|
||||||
mailimf_field_new_custom(
|
mailimf_field_new_custom(
|
||||||
strdup(b"Secure-Join\x00" as *const u8 as *const libc::c_char),
|
strdup(b"Secure-Join\x00" as *const u8 as *const libc::c_char),
|
||||||
strdup(b"vg-member-added\x00" as *const u8 as *const libc::c_char),
|
strdup(
|
||||||
|
b"vg-member-added\x00" as *const u8 as *const libc::c_char,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else if command == DC_CMD_GROUPNAME_CHANGED {
|
}
|
||||||
|
SystemMessage::GroupNameChanged => {
|
||||||
let msg = &factory.msg;
|
let msg = &factory.msg;
|
||||||
|
|
||||||
let value_to_add = msg.param.get(Param::Arg).unwrap_or_default().strdup();
|
let value_to_add = msg.param.get(Param::Arg).unwrap_or_default().strdup();
|
||||||
@@ -604,41 +618,48 @@ pub unsafe fn dc_mimefactory_render(context: &Context, factory: &mut dc_mimefact
|
|||||||
imf_fields,
|
imf_fields,
|
||||||
mailimf_field_new_custom(
|
mailimf_field_new_custom(
|
||||||
strdup(
|
strdup(
|
||||||
b"Chat-Group-Name-Changed\x00" as *const u8 as *const libc::c_char,
|
b"Chat-Group-Name-Changed\x00" as *const u8
|
||||||
|
as *const libc::c_char,
|
||||||
),
|
),
|
||||||
value_to_add,
|
value_to_add,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
} else if command == DC_CMD_GROUPIMAGE_CHANGED {
|
}
|
||||||
|
SystemMessage::GroupImageChanged => {
|
||||||
let msg = &factory.msg;
|
let msg = &factory.msg;
|
||||||
grpimage = msg.param.get(Param::Arg);
|
grpimage = msg.param.get(Param::Arg);
|
||||||
if grpimage.is_none() {
|
if grpimage.is_none() {
|
||||||
mailimf_fields_add(
|
mailimf_fields_add(
|
||||||
imf_fields,
|
imf_fields,
|
||||||
mailimf_field_new_custom(
|
mailimf_field_new_custom(
|
||||||
strdup(b"Chat-Group-Image\x00" as *const u8 as *const libc::c_char),
|
strdup(
|
||||||
|
b"Chat-Group-Image\x00" as *const u8 as *const libc::c_char,
|
||||||
|
),
|
||||||
dc_strdup(b"0\x00" as *const u8 as *const libc::c_char),
|
dc_strdup(b"0\x00" as *const u8 as *const libc::c_char),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
SystemMessage::LocationStreamingEnabled => {
|
||||||
if command == DC_CMD_LOCATION_STREAMING_ENABLED {
|
|
||||||
mailimf_fields_add(
|
mailimf_fields_add(
|
||||||
imf_fields,
|
imf_fields,
|
||||||
mailimf_field_new_custom(
|
mailimf_field_new_custom(
|
||||||
strdup(b"Chat-Content\x00" as *const u8 as *const libc::c_char),
|
strdup(b"Chat-Content\x00" as *const u8 as *const libc::c_char),
|
||||||
strdup(
|
strdup(
|
||||||
b"location-streaming-enabled\x00" as *const u8 as *const libc::c_char,
|
b"location-streaming-enabled\x00" as *const u8
|
||||||
|
as *const libc::c_char,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if command == DC_CMD_AUTOCRYPT_SETUP_MESSAGE {
|
SystemMessage::AutocryptSetupMessage => {
|
||||||
mailimf_fields_add(
|
mailimf_fields_add(
|
||||||
imf_fields,
|
imf_fields,
|
||||||
mailimf_field_new_custom(
|
mailimf_field_new_custom(
|
||||||
strdup(b"Autocrypt-Setup-Message\x00" as *const u8 as *const libc::c_char),
|
strdup(
|
||||||
|
b"Autocrypt-Setup-Message\x00" as *const u8
|
||||||
|
as *const libc::c_char,
|
||||||
|
),
|
||||||
strdup(b"v1\x00" as *const u8 as *const libc::c_char),
|
strdup(b"v1\x00" as *const u8 as *const libc::c_char),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@@ -647,7 +668,7 @@ pub unsafe fn dc_mimefactory_render(context: &Context, factory: &mut dc_mimefact
|
|||||||
.stock_str(StockMessage::AcSetupMsgBody)
|
.stock_str(StockMessage::AcSetupMsgBody)
|
||||||
.strdup();
|
.strdup();
|
||||||
}
|
}
|
||||||
if command == DC_CMD_SECUREJOIN_MESSAGE {
|
SystemMessage::SecurejoinMessage => {
|
||||||
let msg = &factory.msg;
|
let msg = &factory.msg;
|
||||||
let step = msg.param.get(Param::Arg).unwrap_or_default().strdup();
|
let step = msg.param.get(Param::Arg).unwrap_or_default().strdup();
|
||||||
if strlen(step) > 0 {
|
if strlen(step) > 0 {
|
||||||
@@ -670,7 +691,8 @@ pub unsafe fn dc_mimefactory_render(context: &Context, factory: &mut dc_mimefact
|
|||||||
mailimf_field_new_custom(
|
mailimf_field_new_custom(
|
||||||
if strcmp(
|
if strcmp(
|
||||||
step,
|
step,
|
||||||
b"vg-request-with-auth\x00" as *const u8 as *const libc::c_char,
|
b"vg-request-with-auth\x00" as *const u8
|
||||||
|
as *const libc::c_char,
|
||||||
) == 0
|
) == 0
|
||||||
|| strcmp(
|
|| strcmp(
|
||||||
step,
|
step,
|
||||||
@@ -679,7 +701,8 @@ pub unsafe fn dc_mimefactory_render(context: &Context, factory: &mut dc_mimefact
|
|||||||
) == 0
|
) == 0
|
||||||
{
|
{
|
||||||
strdup(
|
strdup(
|
||||||
b"Secure-Join-Auth\x00" as *const u8 as *const libc::c_char,
|
b"Secure-Join-Auth\x00" as *const u8
|
||||||
|
as *const libc::c_char,
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
strdup(
|
strdup(
|
||||||
@@ -691,7 +714,8 @@ pub unsafe fn dc_mimefactory_render(context: &Context, factory: &mut dc_mimefact
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
let fingerprint = msg.param.get(Param::Arg3).unwrap_or_default().strdup();
|
let fingerprint =
|
||||||
|
msg.param.get(Param::Arg3).unwrap_or_default().strdup();
|
||||||
if strlen(fingerprint) > 0 {
|
if strlen(fingerprint) > 0 {
|
||||||
mailimf_fields_add(
|
mailimf_fields_add(
|
||||||
imf_fields,
|
imf_fields,
|
||||||
@@ -713,7 +737,8 @@ pub unsafe fn dc_mimefactory_render(context: &Context, factory: &mut dc_mimefact
|
|||||||
imf_fields,
|
imf_fields,
|
||||||
mailimf_field_new_custom(
|
mailimf_field_new_custom(
|
||||||
strdup(
|
strdup(
|
||||||
b"Secure-Join-Group\x00" as *const u8 as *const libc::c_char,
|
b"Secure-Join-Group\x00" as *const u8
|
||||||
|
as *const libc::c_char,
|
||||||
),
|
),
|
||||||
grpid,
|
grpid,
|
||||||
),
|
),
|
||||||
@@ -721,6 +746,9 @@ pub unsafe fn dc_mimefactory_render(context: &Context, factory: &mut dc_mimefact
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if let Some(grpimage) = grpimage {
|
if let Some(grpimage) = grpimage {
|
||||||
info!(factory.context, "setting group image '{}'", grpimage);
|
info!(factory.context, "setting group image '{}'", grpimage);
|
||||||
let mut meta = dc_msg_new_untyped();
|
let mut meta = dc_msg_new_untyped();
|
||||||
@@ -1079,7 +1107,13 @@ unsafe fn get_subject(
|
|||||||
} else {
|
} else {
|
||||||
b"\x00" as *const u8 as *const libc::c_char
|
b"\x00" as *const u8 as *const libc::c_char
|
||||||
};
|
};
|
||||||
if msg.param.get_int(Param::Cmd).unwrap_or_default() == DC_CMD_AUTOCRYPT_SETUP_MESSAGE {
|
if msg
|
||||||
|
.param
|
||||||
|
.get_int(Param::Cmd)
|
||||||
|
.and_then(SystemMessage::from_i32)
|
||||||
|
.unwrap_or_default()
|
||||||
|
== SystemMessage::AutocryptSetupMessage
|
||||||
|
{
|
||||||
ret = context.stock_str(StockMessage::AcSetupMsgSubject).strdup()
|
ret = context.stock_str(StockMessage::AcSetupMsgSubject).strdup()
|
||||||
} else if chat.typ == Chattype::Group || chat.typ == Chattype::VerifiedGroup {
|
} else if chat.typ == Chattype::Group || chat.typ == Chattype::VerifiedGroup {
|
||||||
ret = format!(
|
ret = format!(
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ use std::ffi::{CStr, CString};
|
|||||||
use std::ptr;
|
use std::ptr;
|
||||||
|
|
||||||
use charset::Charset;
|
use charset::Charset;
|
||||||
|
use deltachat_derive::{FromSql, ToSql};
|
||||||
use mmime::clist::*;
|
use mmime::clist::*;
|
||||||
use mmime::mailimf::*;
|
use mmime::mailimf::*;
|
||||||
use mmime::mailimf_types::*;
|
use mmime::mailimf_types::*;
|
||||||
@@ -39,11 +40,31 @@ pub struct MimeParser<'a> {
|
|||||||
pub e2ee_helper: E2eeHelper,
|
pub e2ee_helper: E2eeHelper,
|
||||||
pub is_forwarded: bool,
|
pub is_forwarded: bool,
|
||||||
pub reports: Vec<*mut mailmime>,
|
pub reports: Vec<*mut mailmime>,
|
||||||
pub is_system_message: libc::c_int,
|
pub is_system_message: SystemMessage,
|
||||||
pub location_kml: Option<location::Kml>,
|
pub location_kml: Option<location::Kml>,
|
||||||
pub message_kml: Option<location::Kml>,
|
pub message_kml: Option<location::Kml>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Display, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, ToSql, FromSql)]
|
||||||
|
#[repr(i32)]
|
||||||
|
pub enum SystemMessage {
|
||||||
|
Unknown = 0,
|
||||||
|
GroupNameChanged = 2,
|
||||||
|
GroupImageChanged = 3,
|
||||||
|
MemberAddedToGroup = 4,
|
||||||
|
MemberRemovedFromGroup = 5,
|
||||||
|
AutocryptSetupMessage = 6,
|
||||||
|
SecurejoinMessage = 7,
|
||||||
|
LocationStreamingEnabled = 8,
|
||||||
|
LocationOnly = 9,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Default for SystemMessage {
|
||||||
|
fn default() -> Self {
|
||||||
|
SystemMessage::Unknown
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl<'a> MimeParser<'a> {
|
impl<'a> MimeParser<'a> {
|
||||||
pub fn new(context: &'a Context) -> Self {
|
pub fn new(context: &'a Context) -> Self {
|
||||||
MimeParser {
|
MimeParser {
|
||||||
@@ -59,7 +80,7 @@ impl<'a> MimeParser<'a> {
|
|||||||
is_forwarded: false,
|
is_forwarded: false,
|
||||||
context,
|
context,
|
||||||
reports: Vec::new(),
|
reports: Vec::new(),
|
||||||
is_system_message: 0,
|
is_system_message: SystemMessage::Unknown,
|
||||||
location_kml: None,
|
location_kml: None,
|
||||||
message_kml: None,
|
message_kml: None,
|
||||||
}
|
}
|
||||||
@@ -97,7 +118,7 @@ impl<'a> MimeParser<'a> {
|
|||||||
.any(|p| p.mimetype == DC_MIMETYPE_AC_SETUP_FILE);
|
.any(|p| p.mimetype == DC_MIMETYPE_AC_SETUP_FILE);
|
||||||
|
|
||||||
if has_setup_file {
|
if has_setup_file {
|
||||||
self.is_system_message = 6i32;
|
self.is_system_message = SystemMessage::AutocryptSetupMessage;
|
||||||
|
|
||||||
// TODO: replace the following code with this
|
// TODO: replace the following code with this
|
||||||
// once drain_filter stabilizes.
|
// once drain_filter stabilizes.
|
||||||
@@ -127,7 +148,7 @@ impl<'a> MimeParser<'a> {
|
|||||||
b"location-streaming-enabled\x00" as *const u8 as *const libc::c_char,
|
b"location-streaming-enabled\x00" as *const u8 as *const libc::c_char,
|
||||||
) == 0i32
|
) == 0i32
|
||||||
{
|
{
|
||||||
self.is_system_message = 8i32;
|
self.is_system_message = SystemMessage::LocationStreamingEnabled;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -389,7 +389,7 @@ unsafe fn add_parts(
|
|||||||
// incoming non-chat messages may be discarded;
|
// incoming non-chat messages may be discarded;
|
||||||
// maybe this can be optimized later, by checking the state before the message body is downloaded
|
// maybe this can be optimized later, by checking the state before the message body is downloaded
|
||||||
let mut allow_creation = 1;
|
let mut allow_creation = 1;
|
||||||
if mime_parser.is_system_message != DC_CMD_AUTOCRYPT_SETUP_MESSAGE && msgrmsg == 0 {
|
if mime_parser.is_system_message != SystemMessage::AutocryptSetupMessage && msgrmsg == 0 {
|
||||||
let show_emails = context
|
let show_emails = context
|
||||||
.sql
|
.sql
|
||||||
.get_config_int(context, "show_emails")
|
.get_config_int(context, "show_emails")
|
||||||
@@ -673,9 +673,9 @@ unsafe fn add_parts(
|
|||||||
msg_raw.as_ptr(),
|
msg_raw.as_ptr(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if 0 != mime_parser.is_system_message {
|
if mime_parser.is_system_message != SystemMessage::Unknown {
|
||||||
part.param
|
part.param
|
||||||
.set_int(Param::Cmd, mime_parser.is_system_message);
|
.set_int(Param::Cmd, mime_parser.is_system_message as i32);
|
||||||
}
|
}
|
||||||
|
|
||||||
stmt.execute(params![
|
stmt.execute(params![
|
||||||
@@ -1080,7 +1080,7 @@ unsafe fn create_or_lookup_group(
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
if mime_parser.is_system_message == DC_CMD_LOCATION_STREAMING_ENABLED {
|
if mime_parser.is_system_message == SystemMessage::LocationStreamingEnabled {
|
||||||
better_msg =
|
better_msg =
|
||||||
context.stock_system_msg(StockMessage::MsgLocationEnabled, "", "", from_id as u32)
|
context.stock_system_msg(StockMessage::MsgLocationEnabled, "", "", from_id as u32)
|
||||||
}
|
}
|
||||||
@@ -1154,7 +1154,7 @@ unsafe fn create_or_lookup_group(
|
|||||||
}
|
}
|
||||||
if let Some(optional_field) = mime_parser.lookup_optional_field("Chat-Group-Member-Removed") {
|
if let Some(optional_field) = mime_parser.lookup_optional_field("Chat-Group-Member-Removed") {
|
||||||
X_MrRemoveFromGrp = (*optional_field).fld_value;
|
X_MrRemoveFromGrp = (*optional_field).fld_value;
|
||||||
mime_parser.is_system_message = DC_CMD_MEMBER_REMOVED_FROM_GROUP;
|
mime_parser.is_system_message = SystemMessage::MemberRemovedFromGroup;
|
||||||
let left_group = (Contact::lookup_id_by_addr(context, as_str(X_MrRemoveFromGrp))
|
let left_group = (Contact::lookup_id_by_addr(context, as_str(X_MrRemoveFromGrp))
|
||||||
== from_id as u32) as libc::c_int;
|
== from_id as u32) as libc::c_int;
|
||||||
better_msg = context.stock_system_msg(
|
better_msg = context.stock_system_msg(
|
||||||
@@ -1170,7 +1170,7 @@ unsafe fn create_or_lookup_group(
|
|||||||
} else {
|
} else {
|
||||||
if let Some(optional_field) = mime_parser.lookup_optional_field("Chat-Group-Member-Added") {
|
if let Some(optional_field) = mime_parser.lookup_optional_field("Chat-Group-Member-Added") {
|
||||||
X_MrAddToGrp = (*optional_field).fld_value;
|
X_MrAddToGrp = (*optional_field).fld_value;
|
||||||
mime_parser.is_system_message = DC_CMD_MEMBER_ADDED_TO_GROUP;
|
mime_parser.is_system_message = SystemMessage::MemberAddedToGroup;
|
||||||
if let Some(optional_field) = mime_parser.lookup_optional_field("Chat-Group-Image") {
|
if let Some(optional_field) = mime_parser.lookup_optional_field("Chat-Group-Image") {
|
||||||
// fld_value is a pointer somewhere into mime_parser, must not be freed
|
// fld_value is a pointer somewhere into mime_parser, must not be freed
|
||||||
X_MrGrpImageChanged = as_str((*optional_field).fld_value).to_string();
|
X_MrGrpImageChanged = as_str((*optional_field).fld_value).to_string();
|
||||||
@@ -1186,7 +1186,7 @@ unsafe fn create_or_lookup_group(
|
|||||||
mime_parser.lookup_optional_field("Chat-Group-Name-Changed")
|
mime_parser.lookup_optional_field("Chat-Group-Name-Changed")
|
||||||
{
|
{
|
||||||
X_MrGrpNameChanged = 1;
|
X_MrGrpNameChanged = 1;
|
||||||
mime_parser.is_system_message = DC_CMD_GROUPNAME_CHANGED;
|
mime_parser.is_system_message = SystemMessage::GroupNameChanged;
|
||||||
better_msg = context.stock_system_msg(
|
better_msg = context.stock_system_msg(
|
||||||
StockMessage::MsgGrpName,
|
StockMessage::MsgGrpName,
|
||||||
as_str((*optional_field).fld_value),
|
as_str((*optional_field).fld_value),
|
||||||
@@ -1198,7 +1198,7 @@ unsafe fn create_or_lookup_group(
|
|||||||
{
|
{
|
||||||
// fld_value is a pointer somewhere into mime_parser, must not be freed
|
// fld_value is a pointer somewhere into mime_parser, must not be freed
|
||||||
X_MrGrpImageChanged = as_str((*optional_field).fld_value).to_string();
|
X_MrGrpImageChanged = as_str((*optional_field).fld_value).to_string();
|
||||||
mime_parser.is_system_message = DC_CMD_GROUPIMAGE_CHANGED;
|
mime_parser.is_system_message = SystemMessage::GroupImageChanged;
|
||||||
better_msg = context.stock_system_msg(
|
better_msg = context.stock_system_msg(
|
||||||
if X_MrGrpImageChanged == "0" {
|
if X_MrGrpImageChanged == "0" {
|
||||||
StockMessage::MsgGrpImgDeleted
|
StockMessage::MsgGrpImgDeleted
|
||||||
|
|||||||
Reference in New Issue
Block a user