mirror of
https://github.com/chatmail/core.git
synced 2026-05-02 04:46:29 +03:00
remove closure
Co-authored-by: @Jikstra
This commit is contained in:
committed by
holger krekel
parent
0a8b187f80
commit
7563a5abe0
127
src/chat.rs
127
src/chat.rs
@@ -1653,76 +1653,73 @@ pub unsafe fn set_chat_profile_image(
|
|||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
ensure!(chat_id > DC_CHAT_ID_LAST_SPECIAL, "Invalid chat ID");
|
ensure!(chat_id > DC_CHAT_ID_LAST_SPECIAL, "Invalid chat ID");
|
||||||
|
|
||||||
let mut success = false;
|
|
||||||
|
|
||||||
let mut chat = Chat::load_from_db(context, chat_id)?;
|
let mut chat = Chat::load_from_db(context, chat_id)?;
|
||||||
let mut msg = dc_msg_new_untyped(context);
|
let mut msg = dc_msg_new_untyped(context);
|
||||||
let mut new_image_rel = None;
|
let new_image_rel;
|
||||||
|
|
||||||
(|| {
|
macro_rules! returnError{
|
||||||
if real_group_exists(context, chat_id) {
|
() => {
|
||||||
if !(is_contact_in_chat(context, chat_id, 1i32 as u32) == 1i32) {
|
bail!("Failed to set profile image");
|
||||||
log_event!(
|
};
|
||||||
context,
|
|
||||||
Event::ERROR_SELF_NOT_IN_GROUP,
|
|
||||||
0,
|
|
||||||
"Cannot set chat profile image; self not in group.",
|
|
||||||
);
|
|
||||||
/* we should respect this - whatever we send to the group, it gets discarded anyway! */
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if !new_image.as_ref().is_empty() {
|
|
||||||
let mut img = new_image.as_ref().to_string();
|
|
||||||
if !dc_make_rel_and_copy(context, &mut img) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
new_image_rel = Some(img);
|
|
||||||
} else {
|
|
||||||
new_image_rel = Some("".to_string());
|
|
||||||
}
|
|
||||||
|
|
||||||
if let Some(ref new_image_rel) = new_image_rel {
|
|
||||||
chat.param.set(Param::ProfileImage, new_image_rel);
|
|
||||||
}
|
|
||||||
if chat.update_param().is_ok() {
|
|
||||||
if chat.param.get_int(Param::Unpromoted).unwrap_or_default() == 0 {
|
|
||||||
msg.param.set_int(Param::Cmd, 3);
|
|
||||||
if let Some(ref new_image_rel) = new_image_rel {
|
|
||||||
msg.param.set(Param::Arg, new_image_rel);
|
|
||||||
}
|
|
||||||
msg.type_0 = Viewtype::Text;
|
|
||||||
msg.text = Some(context.stock_system_msg(
|
|
||||||
if new_image_rel.is_some() {
|
|
||||||
StockMessage::MsgGrpImgChanged
|
|
||||||
} else {
|
|
||||||
StockMessage::MsgGrpImgDeleted
|
|
||||||
},
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
DC_CONTACT_ID_SELF,
|
|
||||||
));
|
|
||||||
msg.id = send_msg(context, chat_id, &mut msg).unwrap_or_default();
|
|
||||||
context.call_cb(
|
|
||||||
Event::MSGS_CHANGED,
|
|
||||||
chat_id as uintptr_t,
|
|
||||||
msg.id as uintptr_t,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
context.call_cb(
|
|
||||||
Event::CHAT_MODIFIED,
|
|
||||||
chat_id as uintptr_t,
|
|
||||||
0i32 as uintptr_t,
|
|
||||||
);
|
|
||||||
success = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})();
|
|
||||||
|
|
||||||
if !success {
|
|
||||||
bail!("Failed to set profile image");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
if real_group_exists(context, chat_id) {
|
||||||
|
if !(is_contact_in_chat(context, chat_id, 1i32 as u32) == 1i32) {
|
||||||
|
log_event!(
|
||||||
|
context,
|
||||||
|
Event::ERROR_SELF_NOT_IN_GROUP,
|
||||||
|
0,
|
||||||
|
"Cannot set chat profile image; self not in group.",
|
||||||
|
);
|
||||||
|
/* we should respect this - whatever we send to the group, it gets discarded anyway! */
|
||||||
|
returnError!();
|
||||||
|
}
|
||||||
|
if !new_image.as_ref().is_empty() {
|
||||||
|
let mut img = new_image.as_ref().to_string();
|
||||||
|
if !dc_make_rel_and_copy(context, &mut img) {
|
||||||
|
returnError!();
|
||||||
|
}
|
||||||
|
new_image_rel = Some(img);
|
||||||
|
} else {
|
||||||
|
new_image_rel = Some("".to_string());
|
||||||
|
}
|
||||||
|
|
||||||
|
if let Some(ref new_image_rel) = new_image_rel {
|
||||||
|
chat.param.set(Param::ProfileImage, new_image_rel);
|
||||||
|
}
|
||||||
|
if chat.update_param().is_ok() {
|
||||||
|
if chat.param.get_int(Param::Unpromoted).unwrap_or_default() == 0 {
|
||||||
|
msg.param.set_int(Param::Cmd, 3);
|
||||||
|
if let Some(ref new_image_rel) = new_image_rel {
|
||||||
|
msg.param.set(Param::Arg, new_image_rel);
|
||||||
|
}
|
||||||
|
msg.type_0 = Viewtype::Text;
|
||||||
|
msg.text = Some(context.stock_system_msg(
|
||||||
|
if new_image_rel.is_some() {
|
||||||
|
StockMessage::MsgGrpImgChanged
|
||||||
|
} else {
|
||||||
|
StockMessage::MsgGrpImgDeleted
|
||||||
|
},
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
DC_CONTACT_ID_SELF,
|
||||||
|
));
|
||||||
|
msg.id = send_msg(context, chat_id, &mut msg).unwrap_or_default();
|
||||||
|
context.call_cb(
|
||||||
|
Event::MSGS_CHANGED,
|
||||||
|
chat_id as uintptr_t,
|
||||||
|
msg.id as uintptr_t,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
context.call_cb(
|
||||||
|
Event::CHAT_MODIFIED,
|
||||||
|
chat_id as uintptr_t,
|
||||||
|
0i32 as uintptr_t,
|
||||||
|
);
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
returnError!()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub unsafe fn forward_msgs(
|
pub unsafe fn forward_msgs(
|
||||||
|
|||||||
Reference in New Issue
Block a user