diff --git a/deltachat-ffi/src/lib.rs b/deltachat-ffi/src/lib.rs index 24c443e5e..7f319e669 100644 --- a/deltachat-ffi/src/lib.rs +++ b/deltachat-ffi/src/lib.rs @@ -306,20 +306,17 @@ pub unsafe extern "C" fn dc_set_stock_translation( let msg = to_string_lossy(stock_msg); let ctx = &*context; - block_on(async move { - match StockMessage::from_u32(stock_id) - .with_context(|| format!("Invalid stock message ID {stock_id}")) + match StockMessage::from_u32(stock_id) + .with_context(|| format!("Invalid stock message ID {stock_id}")) + .log_err(ctx) + { + Ok(id) => ctx + .set_stock_translation(id, msg) + .context("set_stock_translation failed") .log_err(ctx) - { - Ok(id) => ctx - .set_stock_translation(id, msg) - .await - .context("set_stock_translation failed") - .log_err(ctx) - .is_ok() as libc::c_int, - Err(_) => 0, - } - }) + .is_ok() as libc::c_int, + Err(_) => 0, + } } #[no_mangle] diff --git a/deltachat-jsonrpc/src/api.rs b/deltachat-jsonrpc/src/api.rs index ffdb16c6e..d95b0e05b 100644 --- a/deltachat-jsonrpc/src/api.rs +++ b/deltachat-jsonrpc/src/api.rs @@ -473,9 +473,7 @@ impl CommandApi { let accounts = self.accounts.read().await; for (stock_id, stock_message) in strings { if let Some(stock_id) = StockMessage::from_u32(stock_id) { - accounts - .set_stock_translation(stock_id, stock_message) - .await?; + accounts.set_stock_translation(stock_id, stock_message)?; } } Ok(()) diff --git a/src/accounts.rs b/src/accounts.rs index 2db3e8382..de8f776d8 100644 --- a/src/accounts.rs +++ b/src/accounts.rs @@ -1249,13 +1249,11 @@ mod tests { let account1 = accounts.get_account(1).context("failed to get account 1")?; let account2 = accounts.get_account(2).context("failed to get account 2")?; - assert_eq!(stock_str::no_messages(&account1).await, "No messages."); - assert_eq!(stock_str::no_messages(&account2).await, "No messages."); - account1 - .set_stock_translation(StockMessage::NoMessages, "foobar".to_string()) - .await?; - assert_eq!(stock_str::no_messages(&account1).await, "foobar"); - assert_eq!(stock_str::no_messages(&account2).await, "foobar"); + assert_eq!(stock_str::no_messages(&account1), "No messages."); + assert_eq!(stock_str::no_messages(&account2), "No messages."); + account1.set_stock_translation(StockMessage::NoMessages, "foobar".to_string())?; + assert_eq!(stock_str::no_messages(&account1), "foobar"); + assert_eq!(stock_str::no_messages(&account2), "foobar"); Ok(()) } diff --git a/src/calls.rs b/src/calls.rs index f6a04d714..a934ddc76 100644 --- a/src/calls.rs +++ b/src/calls.rs @@ -104,13 +104,11 @@ impl CallInfo { }; if self.is_incoming() { - let incoming_call_str = - stock_str::incoming_call(context, self.has_video_initially()).await; + let incoming_call_str = stock_str::incoming_call(context, self.has_video_initially()); self.update_text(context, &format!("{incoming_call_str}\n{duration}")) .await?; } else { - let outgoing_call_str = - stock_str::outgoing_call(context, self.has_video_initially()).await; + let outgoing_call_str = stock_str::outgoing_call(context, self.has_video_initially()); self.update_text(context, &format!("{outgoing_call_str}\n{duration}")) .await?; } @@ -207,7 +205,7 @@ impl Context { ); ensure!(!chat.is_self_talk(), "Cannot call self"); - let outgoing_call_str = stock_str::outgoing_call(self, has_video_initially).await; + let outgoing_call_str = stock_str::outgoing_call(self, has_video_initially); let mut call = Message { viewtype: Viewtype::Call, text: outgoing_call_str, @@ -286,11 +284,11 @@ impl Context { if call.is_incoming() { call.mark_as_ended(self).await?; markseen_msgs(self, vec![call_id]).await?; - let declined_call_str = stock_str::declined_call(self).await; + let declined_call_str = stock_str::declined_call(self); call.update_text(self, &declined_call_str).await?; } else { call.mark_as_canceled(self).await?; - let canceled_call_str = stock_str::canceled_call(self).await; + let canceled_call_str = stock_str::canceled_call(self); call.update_text(self, &canceled_call_str).await?; } } else { @@ -333,11 +331,11 @@ impl Context { if !call.is_accepted() && !call.is_ended() { if call.is_incoming() { call.mark_as_canceled(&context).await?; - let missed_call_str = stock_str::missed_call(&context).await; + let missed_call_str = stock_str::missed_call(&context); call.update_text(&context, &missed_call_str).await?; } else { call.mark_as_ended(&context).await?; - let canceled_call_str = stock_str::canceled_call(&context).await; + let canceled_call_str = stock_str::canceled_call(&context); call.update_text(&context, &canceled_call_str).await?; } context.emit_msgs_changed(call.msg.chat_id, call_id); @@ -363,12 +361,12 @@ impl Context { if call.is_incoming() { if call.is_stale() { - let missed_call_str = stock_str::missed_call(self).await; + let missed_call_str = stock_str::missed_call(self); call.update_text(self, &missed_call_str).await?; self.emit_incoming_msg(call.msg.chat_id, call_id); // notify missed call } else { let incoming_call_str = - stock_str::incoming_call(self, call.has_video_initially()).await; + stock_str::incoming_call(self, call.has_video_initially()); call.update_text(self, &incoming_call_str).await?; self.emit_msgs_changed(call.msg.chat_id, call_id); // ringing calls are not additionally notified let can_call_me = match who_can_call_me(self).await? { @@ -409,8 +407,7 @@ impl Context { )); } } else { - let outgoing_call_str = - stock_str::outgoing_call(self, call.has_video_initially()).await; + let outgoing_call_str = stock_str::outgoing_call(self, call.has_video_initially()); call.update_text(self, &outgoing_call_str).await?; self.emit_msgs_changed(call.msg.chat_id, call_id); } @@ -462,22 +459,22 @@ impl Context { if call.is_incoming() { if from_id == ContactId::SELF { call.mark_as_ended(self).await?; - let declined_call_str = stock_str::declined_call(self).await; + let declined_call_str = stock_str::declined_call(self); call.update_text(self, &declined_call_str).await?; } else { call.mark_as_canceled(self).await?; - let missed_call_str = stock_str::missed_call(self).await; + let missed_call_str = stock_str::missed_call(self); call.update_text(self, &missed_call_str).await?; } } else { // outgoing if from_id == ContactId::SELF { call.mark_as_canceled(self).await?; - let canceled_call_str = stock_str::canceled_call(self).await; + let canceled_call_str = stock_str::canceled_call(self); call.update_text(self, &canceled_call_str).await?; } else { call.mark_as_ended(self).await?; - let declined_call_str = stock_str::declined_call(self).await; + let declined_call_str = stock_str::declined_call(self); call.update_text(self, &declined_call_str).await?; } } diff --git a/src/chat.rs b/src/chat.rs index b4ca10814..e98385c06 100644 --- a/src/chat.rs +++ b/src/chat.rs @@ -476,7 +476,7 @@ impl ChatId { /// Adds message "Messages are end-to-end encrypted". pub(crate) async fn add_e2ee_notice(self, context: &Context, timestamp: i64) -> Result<()> { - let text = stock_str::messages_e2ee_info_msg(context).await; + let text = stock_str::messages_e2ee_info_msg(context); add_info_msg_with_cmd( context, self, @@ -669,7 +669,7 @@ SELECT id, rfc724_mid, pre_rfc724_mid, timestamp, ?, 1 FROM msgs WHERE chat_id=? } if chat.is_self_talk() { - let mut msg = Message::new_text(stock_str::self_deleted_msg_body(context).await); + let mut msg = Message::new_text(stock_str::self_deleted_msg_body(context)); add_device_msg(context, None, Some(&mut msg)).await?; } chatlist_events::emit_chatlist_changed(context); @@ -1155,10 +1155,10 @@ SELECT id, rfc724_mid, pre_rfc724_mid, timestamp, ?, 1 FROM msgs WHERE chat_id=? pub async fn get_encryption_info(self, context: &Context) -> Result { let chat = Chat::load_from_db(context, self).await?; if !chat.is_encrypted(context).await? { - return Ok(stock_str::encr_none(context).await); + return Ok(stock_str::encr_none(context)); } - let mut ret = stock_str::messages_are_e2ee(context).await + "\n"; + let mut ret = stock_str::messages_are_e2ee(context) + "\n"; for &contact_id in get_chat_contacts(context, self) .await? @@ -1392,7 +1392,7 @@ impl Chat { .context(format!("Failed loading chat {chat_id} from database"))?; if chat.id.is_archived_link() { - chat.name = stock_str::archived_chats(context).await; + chat.name = stock_str::archived_chats(context); } else { if chat.typ == Chattype::Single && chat.name.is_empty() { // chat.name is set to contact.display_name on changes, @@ -1416,9 +1416,9 @@ impl Chat { chat.name = chat_name; } if chat.param.exists(Param::Selftalk) { - chat.name = stock_str::saved_messages(context).await; + chat.name = stock_str::saved_messages(context); } else if chat.param.exists(Param::Devicetalk) { - chat.name = stock_str::device_messages(context).await; + chat.name = stock_str::device_messages(context); } } @@ -2306,15 +2306,10 @@ pub(crate) async fn update_special_chat_names(context: &Context) -> Result<()> { update_special_chat_name( context, ContactId::DEVICE, - stock_str::device_messages(context).await, - ) - .await?; - update_special_chat_name( - context, - ContactId::SELF, - stock_str::saved_messages(context).await, + stock_str::device_messages(context), ) .await?; + update_special_chat_name(context, ContactId::SELF, stock_str::saved_messages(context)).await?; Ok(()) } @@ -3068,7 +3063,7 @@ async fn donation_request_maybe(context: &Context) -> Result<()> { let ts = if ts == 0 || msg_cnt.await? < 100 { now.saturating_add(secs_between_checks) } else { - let mut msg = Message::new_text(stock_str::donation_request(context).await); + let mut msg = Message::new_text(stock_str::donation_request(context)); add_device_msg(context, None, Some(&mut msg)).await?; i64::MAX }; @@ -3622,10 +3617,10 @@ pub(crate) async fn create_group_ex( { let text = if !grpid.is_empty() { // Add "Others will only see this group after you sent a first message." message. - stock_str::new_group_send_first_message(context).await + stock_str::new_group_send_first_message(context) } else { // Add "Messages in this chat use classic email and are not encrypted." message. - stock_str::chat_unencrypted_explanation(context).await + stock_str::chat_unencrypted_explanation(context) }; add_info_msg(context, chat_id, &text).await?; } @@ -4197,7 +4192,7 @@ async fn send_member_removal_msg( if contact_id == ContactId::SELF { if chat.typ == Chattype::InBroadcast { - msg.text = stock_str::msg_you_left_broadcast(context).await; + msg.text = stock_str::msg_you_left_broadcast(context); } else { msg.text = stock_str::msg_group_left_local(context, ContactId::SELF).await; } @@ -4358,7 +4353,7 @@ async fn rename_ex( { msg.viewtype = Viewtype::Text; msg.text = if chat.typ == Chattype::OutBroadcast { - stock_str::msg_broadcast_name_changed(context, &chat.name, &new_name).await + stock_str::msg_broadcast_name_changed(context, &chat.name, &new_name) } else { stock_str::msg_grp_name(context, &chat.name, &new_name, ContactId::SELF).await }; @@ -4423,7 +4418,7 @@ pub async fn set_chat_profile_image( chat.param.remove(Param::ProfileImage); msg.param.remove(Param::Arg); msg.text = if chat.typ == Chattype::OutBroadcast { - stock_str::msg_broadcast_img_changed(context).await + stock_str::msg_broadcast_img_changed(context) } else { stock_str::msg_grp_img_deleted(context, ContactId::SELF).await }; @@ -4437,7 +4432,7 @@ pub async fn set_chat_profile_image( chat.param.set(Param::ProfileImage, image_blob.as_name()); msg.param.set(Param::Arg, image_blob.as_name()); msg.text = if chat.typ == Chattype::OutBroadcast { - stock_str::msg_broadcast_img_changed(context).await + stock_str::msg_broadcast_img_changed(context) } else { stock_str::msg_grp_img_changed(context, ContactId::SELF).await }; diff --git a/src/chat/chat_tests.rs b/src/chat/chat_tests.rs index 04fe46195..7f6c60959 100644 --- a/src/chat/chat_tests.rs +++ b/src/chat/chat_tests.rs @@ -806,7 +806,7 @@ async fn test_self_talk() -> Result<()> { assert!(chat.visibility == ChatVisibility::Normal); assert!(!chat.is_device_talk()); assert!(chat.can_send(&t).await?); - assert_eq!(chat.name, stock_str::saved_messages(&t).await); + assert_eq!(chat.name, stock_str::saved_messages(&t)); assert!(chat.get_profile_image(&t).await?.is_some()); let msg_id = send_text_msg(&t, chat.id, "foo self".to_string()).await?; @@ -911,7 +911,7 @@ async fn test_add_device_msg_labelled() -> Result<()> { assert!(!chat.can_send(&t).await?); assert!(chat.why_cant_send(&t).await? == Some(CantSendReason::DeviceChat)); - assert_eq!(chat.name, stock_str::device_messages(&t).await); + assert_eq!(chat.name, stock_str::device_messages(&t)); let device_msg_icon = chat.get_profile_image(&t).await?.unwrap(); assert_eq!( device_msg_icon.metadata()?.len(), @@ -3797,7 +3797,7 @@ async fn test_leave_broadcast_multidevice() -> Result<()> { assert_eq!(rcvd.chat_id, bob1_hello.chat_id); assert!(rcvd.is_info()); assert_eq!(rcvd.get_info_type(), SystemMessage::MemberRemovedFromGroup); - assert_eq!(rcvd.text, stock_str::msg_you_left_broadcast(bob1).await); + assert_eq!(rcvd.text, stock_str::msg_you_left_broadcast(bob1)); Ok(()) } diff --git a/src/chatlist.rs b/src/chatlist.rs index fb5109578..b54ad79d3 100644 --- a/src/chatlist.rs +++ b/src/chatlist.rs @@ -417,7 +417,7 @@ impl Chatlist { Summary::new_with_reaction_details(context, &lastmsg, chat, lastcontact.as_ref()).await } else { Ok(Summary { - text: stock_str::no_messages(context).await, + text: stock_str::no_messages(context), ..Default::default() }) } @@ -648,7 +648,6 @@ mod tests { assert_eq!(chats.len(), 0); t.set_stock_translation(StockMessage::SavedMessages, "test-1234-save".to_string()) - .await .unwrap(); let chats = Chatlist::try_load(&t, 0, Some("t-1234-s"), None) .await @@ -656,7 +655,6 @@ mod tests { assert_eq!(chats.len(), 1); t.set_stock_translation(StockMessage::DeviceMessages, "test-5678-babbel".to_string()) - .await .unwrap(); let chats = Chatlist::try_load(&t, 0, Some("t-5678-b"), None) .await diff --git a/src/configure.rs b/src/configure.rs index 1d478beb3..e622743b1 100644 --- a/src/configure.rs +++ b/src/configure.rs @@ -146,7 +146,7 @@ impl Context { if let Err(err) = res.as_ref() { // We are using Anyhow's .context() and to show the // inner error, too, we need the {:#}: - let error_msg = stock_str::configuration_failed(self, &format!("{err:#}")).await; + let error_msg = stock_str::configuration_failed(self, &format!("{err:#}")); progress!(self, 0, Some(error_msg.clone())); bail!(error_msg); } else { @@ -637,10 +637,7 @@ async fn configure(ctx: &Context, param: &EnteredLoginParam) -> Result imap_session, Err(err) => { - bail!( - "{}", - nicer_configuration_error(ctx, format!("{err:#}")).await - ); + bail!("{}", nicer_configuration_error(ctx, format!("{err:#}"))); } }; @@ -781,7 +778,7 @@ async fn get_autoconfig( None } -async fn nicer_configuration_error(context: &Context, e: String) -> String { +fn nicer_configuration_error(context: &Context, e: String) -> String { if e.to_lowercase().contains("could not resolve") || e.to_lowercase().contains("connection attempts") || e.to_lowercase() @@ -790,7 +787,7 @@ async fn nicer_configuration_error(context: &Context, e: String) -> String { || e.to_lowercase() .contains("failed to lookup address information") { - return stock_str::error_no_network(context).await; + return stock_str::error_no_network(context); } e diff --git a/src/contact.rs b/src/contact.rs index 8eea7cee7..26271c5b5 100644 --- a/src/contact.rs +++ b/src/contact.rs @@ -688,7 +688,7 @@ impl Contact { .await? { if contact_id == ContactId::SELF { - contact.name = stock_str::self_msg(context).await; + contact.name = stock_str::self_msg(context); contact.authname = context .get_config(Config::Displayname) .await? @@ -705,9 +705,9 @@ impl Contact { .await? .unwrap_or_default(); } else if contact_id == ContactId::DEVICE { - contact.name = stock_str::device_messages(context).await; + contact.name = stock_str::device_messages(context); contact.addr = ContactId::DEVICE_ADDR.to_string(); - contact.status = stock_str::device_messages_hint(context).await; + contact.status = stock_str::device_messages_hint(context); } Ok(Some(contact)) } else { @@ -1240,7 +1240,7 @@ ORDER BY c.origin>=? DESC, c.last_seen DESC, c.id DESC if self_addr.contains(query) || self_name.contains(query) - || self_name2.await.contains(query) + || self_name2.contains(query) { add_self = true; } @@ -1392,17 +1392,17 @@ WHERE addr=? .unwrap_or_default(); let Some(fingerprint_other) = contact.fingerprint() else { - return Ok(stock_str::encr_none(context).await); + return Ok(stock_str::encr_none(context)); }; let fingerprint_other = fingerprint_other.to_string(); let stock_message = if contact.public_key(context).await?.is_some() { - stock_str::messages_are_e2ee(context).await + stock_str::messages_are_e2ee(context) } else { - stock_str::encr_none(context).await + stock_str::encr_none(context) }; - let finger_prints = stock_str::finger_prints(context).await; + let finger_prints = stock_str::finger_prints(context); let mut ret = format!("{stock_message}\n{finger_prints}:"); let fingerprint_self = load_self_public_key(context) @@ -1412,7 +1412,7 @@ WHERE addr=? if addr < contact.addr { cat_fingerprint( &mut ret, - &stock_str::self_msg(context).await, + &stock_str::self_msg(context), &addr, &fingerprint_self, ); @@ -1431,7 +1431,7 @@ WHERE addr=? ); cat_fingerprint( &mut ret, - &stock_str::self_msg(context).await, + &stock_str::self_msg(context), &addr, &fingerprint_self, ); diff --git a/src/contact/contact_tests.rs b/src/contact/contact_tests.rs index 6b6dae38a..ce4be4489 100644 --- a/src/contact/contact_tests.rs +++ b/src/contact/contact_tests.rs @@ -282,7 +282,7 @@ async fn test_add_or_lookup() { // check SELF let contact = Contact::get_by_id(&t, ContactId::SELF).await.unwrap(); - assert_eq!(contact.get_name(), stock_str::self_msg(&t).await); + assert_eq!(contact.get_name(), stock_str::self_msg(&t)); assert_eq!(contact.get_addr(), "alice@example.org"); assert!(!contact.is_blocked()); } diff --git a/src/imap.rs b/src/imap.rs index 35d20d869..56cc8953a 100644 --- a/src/imap.rs +++ b/src/imap.rs @@ -437,7 +437,7 @@ impl Imap { Err(err) => { let imap_user = lp.user.to_owned(); - let message = stock_str::cannot_login(context, &imap_user).await; + let message = stock_str::cannot_login(context, &imap_user); warn!(context, "IMAP failed to login: {err:#}."); first_error.get_or_insert(format_err!("{message} ({err:#})")); diff --git a/src/imex/transfer.rs b/src/imex/transfer.rs index 976d1b363..67206abe9 100644 --- a/src/imex/transfer.rs +++ b/src/imex/transfer.rs @@ -208,7 +208,7 @@ impl BackupProvider { info!(context, "Received backup reception acknowledgement."); context.emit_event(EventType::ImexProgress(1000)); - let mut msg = Message::new_text(backup_transfer_msg_body(&context).await); + let mut msg = Message::new_text(backup_transfer_msg_body(&context)); add_device_msg(&context, None, Some(&mut msg)).await?; Ok(()) diff --git a/src/location.rs b/src/location.rs index b6ea6cab3..911bfb831 100644 --- a/src/location.rs +++ b/src/location.rs @@ -288,13 +288,13 @@ pub async fn send_locations_to_chat( ) .await?; if 0 != seconds && !is_sending_locations_before { - let mut msg = Message::new_text(stock_str::msg_location_enabled(context).await); + let mut msg = Message::new_text(stock_str::msg_location_enabled(context)); msg.param.set_cmd(SystemMessage::LocationStreamingEnabled); chat::send_msg(context, chat_id, &mut msg) .await .unwrap_or_default(); } else if 0 == seconds && is_sending_locations_before { - let stock_str = stock_str::msg_location_disabled(context).await; + let stock_str = stock_str::msg_location_disabled(context); chat::add_info_msg(context, chat_id, &stock_str).await?; } context.emit_event(EventType::ChatModified(chat_id)); @@ -852,7 +852,7 @@ async fn maybe_send_locations(context: &Context) -> Result> { .await .context("failed to disable location streaming")?; - let stock_str = stock_str::msg_location_disabled(context).await; + let stock_str = stock_str::msg_location_disabled(context); chat::add_info_msg(context, chat_id, &stock_str).await?; context.emit_event(EventType::ChatModified(chat_id)); chatlist_events::emit_chatlist_item_changed(context, chat_id); diff --git a/src/message.rs b/src/message.rs index 7769bd924..ff3964f3c 100644 --- a/src/message.rs +++ b/src/message.rs @@ -598,7 +598,7 @@ impl Message { if let Some(msg) = &mut msg { msg.additional_text = - Self::get_additional_text(context, msg.download_state, &msg.param).await?; + Self::get_additional_text(context, msg.download_state, &msg.param)?; } Ok(msg) @@ -607,7 +607,7 @@ impl Message { /// Returns additional text which is appended to the message's text field /// when it is loaded from the database. /// Currently this is used to add infomation to pre-messages of what the download will be and how large it is - async fn get_additional_text( + fn get_additional_text( context: &Context, download_state: DownloadState, param: &Params, @@ -630,7 +630,7 @@ impl Message { return match viewtype { Viewtype::File => Ok(format!(" [{file_name} – {file_size}]")), _ => { - let translated_viewtype = viewtype.to_locale_string(context).await; + let translated_viewtype = viewtype.to_locale_string(context); Ok(format!(" [{translated_viewtype} – {file_size}]")) } }; diff --git a/src/mimefactory.rs b/src/mimefactory.rs index 4ed7fa58f..bef589a25 100644 --- a/src/mimefactory.rs +++ b/src/mimefactory.rs @@ -732,7 +732,7 @@ impl MimeFactory { Some(name) => name, None => context.get_config(Config::Addr).await?.unwrap_or_default(), }; - stock_str::subject_for_new_contact(context, self_name).await + stock_str::subject_for_new_contact(context, self_name) } Loaded::Mdn { .. } => "Receipt Notification".to_string(), // untranslated to no reveal sender's language }; diff --git a/src/qr_code_generator.rs b/src/qr_code_generator.rs index 5d42d2549..58f9c73ac 100644 --- a/src/qr_code_generator.rs +++ b/src/qr_code_generator.rs @@ -111,10 +111,10 @@ async fn generate_join_group_qr_code(context: &Context, chat_id: ChatId) -> Resu let qrcode_description = match chat.typ { crate::constants::Chattype::Group => { - stock_str::secure_join_group_qr_description(context, &chat).await + stock_str::secure_join_group_qr_description(context, &chat) } crate::constants::Chattype::OutBroadcast => { - stock_str::secure_join_broadcast_qr_description(context, &chat).await + stock_str::secure_join_broadcast_qr_description(context, &chat) } _ => bail!("Unexpected chat type {}", chat.typ), }; @@ -132,7 +132,7 @@ async fn generate_verification_qr(context: &Context) -> Result { let (avatar, displayname, addr, color) = self_info(context).await?; inner_generate_secure_join_qr_code( - &stock_str::setup_contact_qr_description(context, &displayname, &addr).await, + &stock_str::setup_contact_qr_description(context, &displayname, &addr), &securejoin::get_securejoin_qr(context, None).await?, &color, avatar, diff --git a/src/quota.rs b/src/quota.rs index ba6adbf01..6c34880c5 100644 --- a/src/quota.rs +++ b/src/quota.rs @@ -128,7 +128,7 @@ impl Context { let folders = get_watched_folders(self).await?; get_unique_quota_roots_and_usage(session, folders).await } else { - Err(anyhow!(stock_str::not_supported_by_provider(self).await)) + Err(anyhow!(stock_str::not_supported_by_provider(self))) }; if let Ok(quota) = "a { @@ -143,8 +143,7 @@ impl Context { Some(&highest.to_string()), ) .await?; - let mut msg = - Message::new_text(stock_str::quota_exceeding(self, highest).await); + let mut msg = Message::new_text(stock_str::quota_exceeding(self, highest)); add_device_msg_with_importance(self, None, Some(&mut msg), true).await?; } else if highest <= QUOTA_ALLCLEAR_PERCENTAGE { self.set_config_internal(Config::QuotaExceeding, None) diff --git a/src/receive_imf.rs b/src/receive_imf.rs index a9374fd38..249972024 100644 --- a/src/receive_imf.rs +++ b/src/receive_imf.rs @@ -3357,7 +3357,7 @@ async fn apply_chat_name_avatar_and_description_changes( let old_name = &sanitize_single_line(old_name); better_msg.get_or_insert( if matches!(chat.typ, Chattype::InBroadcast | Chattype::OutBroadcast) { - stock_str::msg_broadcast_name_changed(context, old_name, grpname).await + stock_str::msg_broadcast_name_changed(context, old_name, grpname) } else { stock_str::msg_grp_name(context, old_name, grpname, from_id).await }, @@ -3420,7 +3420,7 @@ async fn apply_chat_name_avatar_and_description_changes( // apart from that, the group-avatar is send along with various other messages better_msg.get_or_insert( if matches!(chat.typ, Chattype::InBroadcast | Chattype::OutBroadcast) { - stock_str::msg_broadcast_img_changed(context).await + stock_str::msg_broadcast_img_changed(context) } else { match avatar_action { AvatarAction::Delete => stock_str::msg_grp_img_deleted(context, from_id).await, @@ -3860,7 +3860,7 @@ async fn apply_in_broadcast_changes( info!(context, "No-op broadcast 'Member added' message (TRASH)"); "".to_string() } else { - stock_str::msg_you_joined_broadcast(context).await + stock_str::msg_you_joined_broadcast(context) }; better_msg.get_or_insert(msg); @@ -3876,7 +3876,7 @@ async fn apply_in_broadcast_changes( chat::delete_broadcast_secret(context, chat.id).await?; if from_id == ContactId::SELF { - better_msg.get_or_insert(stock_str::msg_you_left_broadcast(context).await); + better_msg.get_or_insert(stock_str::msg_you_left_broadcast(context)); } else { better_msg.get_or_insert( stock_str::msg_del_member_local(context, ContactId::SELF, from_id).await, diff --git a/src/scheduler/connectivity.rs b/src/scheduler/connectivity.rs index 6b761e5dd..72c7ec9e1 100644 --- a/src/scheduler/connectivity.rs +++ b/src/scheduler/connectivity.rs @@ -109,36 +109,36 @@ impl DetailedConnectivity { } } - async fn to_string_imap(&self, context: &Context) -> String { + fn to_string_imap(&self, context: &Context) -> String { match self { - DetailedConnectivity::Error(e) => stock_str::error(context, e).await, + DetailedConnectivity::Error(e) => stock_str::error(context, e), DetailedConnectivity::Uninitialized => "Not started".to_string(), - DetailedConnectivity::Connecting => stock_str::connecting(context).await, + DetailedConnectivity::Connecting => stock_str::connecting(context), DetailedConnectivity::Preparing | DetailedConnectivity::Working => { - stock_str::updating(context).await + stock_str::updating(context) } DetailedConnectivity::InterruptingIdle | DetailedConnectivity::Idle => { - stock_str::connected(context).await + stock_str::connected(context) } DetailedConnectivity::NotConfigured => "Not configured".to_string(), } } - async fn to_string_smtp(&self, context: &Context) -> String { + fn to_string_smtp(&self, context: &Context) -> String { match self { - DetailedConnectivity::Error(e) => stock_str::error(context, e).await, + DetailedConnectivity::Error(e) => stock_str::error(context, e), DetailedConnectivity::Uninitialized => { "You did not try to send a message recently.".to_string() } - DetailedConnectivity::Connecting => stock_str::connecting(context).await, - DetailedConnectivity::Working => stock_str::sending(context).await, + DetailedConnectivity::Connecting => stock_str::connecting(context), + DetailedConnectivity::Working => stock_str::sending(context), // We don't know any more than that the last message was sent successfully; // since sending the last message, connectivity could have changed, which we don't notice // until another message is sent DetailedConnectivity::InterruptingIdle | DetailedConnectivity::Preparing - | DetailedConnectivity::Idle => stock_str::last_msg_sent_successfully(context).await, + | DetailedConnectivity::Idle => stock_str::last_msg_sent_successfully(context), DetailedConnectivity::NotConfigured => "Not configured".to_string(), } } @@ -369,8 +369,8 @@ impl Context { .get_config_bool(crate::config::Config::ProxyEnabled) .await? { - let proxy_enabled = stock_str::proxy_enabled(self).await; - let proxy_description = stock_str::proxy_description(self).await; + let proxy_enabled = stock_str::proxy_enabled(self); + let proxy_description = stock_str::proxy_description(self); ret += &format!("

{proxy_enabled}

  • {proxy_description}
"); } @@ -396,7 +396,7 @@ impl Context { _ => { ret += &format!( "

{}

\n\n", - stock_str::not_connected(self).await + stock_str::not_connected(self) ); return Ok(ret); } @@ -412,7 +412,7 @@ impl Context { // ============================================================================================= let watched_folders = get_watched_folder_configs(self).await?; - let incoming_messages = stock_str::incoming_messages(self).await; + let incoming_messages = stock_str::incoming_messages(self); ret += &format!("

{incoming_messages}

    "); let transports = self @@ -449,7 +449,7 @@ impl Context { ret += &*escaper::encode_minimal(&foldername); } ret += ": "; - ret += &*escaper::encode_minimal(&detailed.to_string_imap(self).await); + ret += &*escaper::encode_minimal(&detailed.to_string_imap(self)); ret += "
    "; folder_added = true; @@ -464,7 +464,7 @@ impl Context { ret += &*detailed.to_icon(); ret += " "; - ret += &*escaper::encode_minimal(&detailed.to_string_imap(self).await); + ret += &*escaper::encode_minimal(&detailed.to_string_imap(self)); ret += "
    "; } } @@ -504,13 +504,12 @@ impl Context { ); } - let messages = stock_str::messages(self).await; + let messages = stock_str::messages(self); let part_of_total_used = stock_str::part_of_total_used( self, &resource.usage.to_string(), &resource.limit.to_string(), - ) - .await; + ); ret += &match &resource.name { Atom(resource_name) => { format!( @@ -531,7 +530,7 @@ impl Context { // - most times, this is the only item anyway let usage = &format_size(resource.usage * 1024, BINARY); let limit = &format_size(resource.limit * 1024, BINARY); - stock_str::part_of_total_used(self, usage, limit).await + stock_str::part_of_total_used(self, usage, limit) } }; @@ -565,12 +564,12 @@ impl Context { // Your last message was sent successfully // ============================================================================================= - let outgoing_messages = stock_str::outgoing_messages(self).await; + let outgoing_messages = stock_str::outgoing_messages(self); ret += &format!("

    {outgoing_messages}

    • "); let detailed = smtp.get_detailed(); ret += &*detailed.to_icon(); ret += " "; - ret += &*escaper::encode_minimal(&detailed.to_string_smtp(self).await); + ret += &*escaper::encode_minimal(&detailed.to_string_smtp(self)); ret += "
    "; // ============================================================================================= diff --git a/src/securejoin/bob.rs b/src/securejoin/bob.rs index fe03064e8..a585269fc 100644 --- a/src/securejoin/bob.rs +++ b/src/securejoin/bob.rs @@ -158,7 +158,7 @@ pub(super) async fn start_protocol(context: &Context, invite: QrInvite) -> Resul chat::add_info_msg_with_cmd( context, private_chat_id, - &stock_str::securejoin_wait(context).await, + &stock_str::securejoin_wait(context), SystemMessage::SecurejoinWait, None, time(), diff --git a/src/securejoin/securejoin_tests.rs b/src/securejoin/securejoin_tests.rs index af6568866..c8013cd9d 100644 --- a/src/securejoin/securejoin_tests.rs +++ b/src/securejoin/securejoin_tests.rs @@ -109,10 +109,10 @@ async fn test_setup_contact_ex(case: SetupContactCase) { let mut i = 0..msg_cnt; let msg = get_chat_msg(&bob, bob_chat.get_id(), i.next().unwrap(), msg_cnt).await; assert!(msg.is_info()); - assert_eq!(msg.get_text(), messages_e2ee_info_msg(&bob).await); + assert_eq!(msg.get_text(), messages_e2ee_info_msg(&bob)); let msg = get_chat_msg(&bob, bob_chat.get_id(), i.next().unwrap(), msg_cnt).await; assert!(msg.is_info()); - assert_eq!(msg.get_text(), stock_str::securejoin_wait(&bob).await); + assert_eq!(msg.get_text(), stock_str::securejoin_wait(&bob)); let contact_alice_id = bob.add_or_lookup_contact_no_key(&alice).await.id; let sent = bob.pop_sent_msg().await; @@ -250,7 +250,7 @@ async fn test_setup_contact_ex(case: SetupContactCase) { let chat = alice.get_chat(&bob).await; let msg = get_chat_msg(&alice, chat.get_id(), 0, 1).await; assert!(msg.is_info()); - let expected_text = messages_e2ee_info_msg(&alice).await; + let expected_text = messages_e2ee_info_msg(&alice); assert_eq!(msg.get_text(), expected_text); } @@ -295,7 +295,7 @@ async fn test_setup_contact_ex(case: SetupContactCase) { // The `SecurejoinWait` info message has been removed, but the e2ee notice remains. let msg = get_chat_msg(&bob, bob_chat.get_id(), 0, 1).await; assert!(msg.is_info()); - assert_eq!(msg.get_text(), messages_e2ee_info_msg(&bob).await); + assert_eq!(msg.get_text(), messages_e2ee_info_msg(&bob)); } #[tokio::test(flavor = "multi_thread", worker_threads = 2)] @@ -625,7 +625,7 @@ async fn test_secure_join_group_ex(v3: bool, remove_invite: bool) -> Result<()> // - You added member bob@example.net let msg = get_chat_msg(&alice, alice_chatid, 0, 2).await; assert!(msg.is_info()); - let expected_text = messages_e2ee_info_msg(&alice).await; + let expected_text = messages_e2ee_info_msg(&alice); assert_eq!(msg.get_text(), expected_text); } diff --git a/src/sql.rs b/src/sql.rs index 7e8b887ec..912a704a3 100644 --- a/src/sql.rs +++ b/src/sql.rs @@ -901,7 +901,7 @@ async fn maybe_add_mvbox_move_deprecation_message(context: &Context) -> Result<( if !context.get_config_bool(Config::OnlyFetchMvbox).await? && context.get_config_bool(Config::MvboxMove).await? { - let mut msg = Message::new_text(stock_str::mvbox_move_deprecation(context).await); + let mut msg = Message::new_text(stock_str::mvbox_move_deprecation(context)); add_device_msg(context, Some("mvbox_move_deprecation"), Some(&mut msg)).await?; } Ok(()) diff --git a/src/stats.rs b/src/stats.rs index 1dc15f586..c688b3341 100644 --- a/src/stats.rs +++ b/src/stats.rs @@ -281,7 +281,7 @@ async fn send_stats(context: &Context) -> Result { let chat_id = get_stats_chat_id(context).await?; let mut msg = Message::new(Viewtype::File); - msg.set_text(crate::stock_str::stats_msg_body(context).await); + msg.set_text(crate::stock_str::stats_msg_body(context)); let stats = get_stats(context).await?; diff --git a/src/stock_str.rs b/src/stock_str.rs index b45ef8c86..5231c6738 100644 --- a/src/stock_str.rs +++ b/src/stock_str.rs @@ -4,9 +4,9 @@ use std::collections::HashMap; use std::sync::Arc; use anyhow::{Result, bail}; +use parking_lot::RwLock; use strum::EnumProperty as EnumPropertyTrait; use strum_macros::EnumProperty; -use tokio::sync::RwLock; use crate::accounts::Accounts; use crate::blob::BlobObject; @@ -463,17 +463,16 @@ impl StockStrings { } } - async fn translated(&self, id: StockMessage) -> String { + fn translated(&self, id: StockMessage) -> String { self.translated_stockstrings .read() - .await .get(&(id as usize)) .map(AsRef::as_ref) .unwrap_or_else(|| id.fallback()) .to_string() } - async fn set_stock_translation(&self, id: StockMessage, stockstring: String) -> Result<()> { + fn set_stock_translation(&self, id: StockMessage, stockstring: String) -> Result<()> { if stockstring.contains("%1") && !id.fallback().contains("%1") { bail!( "translation {} contains invalid %1 placeholder, default is {}", @@ -490,14 +489,13 @@ impl StockStrings { } self.translated_stockstrings .write() - .await .insert(id as usize, stockstring); Ok(()) } } -async fn translated(context: &Context, id: StockMessage) -> String { - context.translated_stockstrings.translated(id).await +fn translated(context: &Context, id: StockMessage) -> String { + context.translated_stockstrings.translated(id) } /// Helper trait only meant to be implemented for [`String`]. @@ -546,43 +544,43 @@ impl ContactId { impl StockStringMods for String {} /// Stock string: `No messages.`. -pub(crate) async fn no_messages(context: &Context) -> String { - translated(context, StockMessage::NoMessages).await +pub(crate) fn no_messages(context: &Context) -> String { + translated(context, StockMessage::NoMessages) } /// Stock string: `Me`. -pub(crate) async fn self_msg(context: &Context) -> String { - translated(context, StockMessage::SelfMsg).await +pub(crate) fn self_msg(context: &Context) -> String { + translated(context, StockMessage::SelfMsg) } /// Stock string: `Draft`. -pub(crate) async fn draft(context: &Context) -> String { - translated(context, StockMessage::Draft).await +pub(crate) fn draft(context: &Context) -> String { + translated(context, StockMessage::Draft) } /// Stock string: `Voice message`. -pub(crate) async fn voice_message(context: &Context) -> String { - translated(context, StockMessage::VoiceMessage).await +pub(crate) fn voice_message(context: &Context) -> String { + translated(context, StockMessage::VoiceMessage) } /// Stock string: `Image`. -pub(crate) async fn image(context: &Context) -> String { - translated(context, StockMessage::Image).await +pub(crate) fn image(context: &Context) -> String { + translated(context, StockMessage::Image) } /// Stock string: `Video`. -pub(crate) async fn video(context: &Context) -> String { - translated(context, StockMessage::Video).await +pub(crate) fn video(context: &Context) -> String { + translated(context, StockMessage::Video) } /// Stock string: `Audio`. -pub(crate) async fn audio(context: &Context) -> String { - translated(context, StockMessage::Audio).await +pub(crate) fn audio(context: &Context) -> String { + translated(context, StockMessage::Audio) } /// Stock string: `File`. -pub(crate) async fn file(context: &Context) -> String { - translated(context, StockMessage::File).await +pub(crate) fn file(context: &Context) -> String { + translated(context, StockMessage::File) } /// Stock string: `Group name changed from "%1$s" to "%2$s".`. @@ -594,12 +592,10 @@ pub(crate) async fn msg_grp_name( ) -> String { if by_contact == ContactId::SELF { translated(context, StockMessage::MsgYouChangedGrpName) - .await .replace1(from_group) .replace2(to_group) } else { translated(context, StockMessage::MsgGrpNameChangedBy) - .await .replace1(from_group) .replace2(to_group) .replace3(&by_contact.get_stock_name(context).await) @@ -608,10 +604,9 @@ pub(crate) async fn msg_grp_name( pub(crate) async fn msg_grp_img_changed(context: &Context, by_contact: ContactId) -> String { if by_contact == ContactId::SELF { - translated(context, StockMessage::MsgYouChangedGrpImg).await + translated(context, StockMessage::MsgYouChangedGrpImg) } else { translated(context, StockMessage::MsgGrpImgChangedBy) - .await .replace1(&by_contact.get_stock_name(context).await) } } @@ -621,10 +616,9 @@ pub(crate) async fn msg_chat_description_changed( by_contact: ContactId, ) -> String { if by_contact == ContactId::SELF { - translated(context, StockMessage::MsgYouChangedDescription).await + translated(context, StockMessage::MsgYouChangedDescription) } else { translated(context, StockMessage::MsgChatDescriptionChangedBy) - .await .replace1(&by_contact.get_stock_name(context).await) } } @@ -640,16 +634,11 @@ pub(crate) async fn msg_add_member_local( ) -> String { let whom = added_member.get_stock_name(context).await; if by_contact == ContactId::UNDEFINED { - translated(context, StockMessage::MsgAddMember) - .await - .replace1(&whom) + translated(context, StockMessage::MsgAddMember).replace1(&whom) } else if by_contact == ContactId::SELF { - translated(context, StockMessage::MsgYouAddMember) - .await - .replace1(&whom) + translated(context, StockMessage::MsgYouAddMember).replace1(&whom) } else { translated(context, StockMessage::MsgAddMemberBy) - .await .replace1(&whom) .replace2(&by_contact.get_stock_name(context).await) } @@ -666,16 +655,11 @@ pub(crate) async fn msg_del_member_local( ) -> String { let whom = removed_member.get_stock_name(context).await; if by_contact == ContactId::UNDEFINED { - translated(context, StockMessage::MsgDelMember) - .await - .replace1(&whom) + translated(context, StockMessage::MsgDelMember).replace1(&whom) } else if by_contact == ContactId::SELF { - translated(context, StockMessage::MsgYouDelMember) - .await - .replace1(&whom) + translated(context, StockMessage::MsgYouDelMember).replace1(&whom) } else { translated(context, StockMessage::MsgDelMemberBy) - .await .replace1(&whom) .replace2(&by_contact.get_stock_name(context).await) } @@ -684,22 +668,21 @@ pub(crate) async fn msg_del_member_local( /// Stock string: `You left the group.` or `Group left by %1$s.`. pub(crate) async fn msg_group_left_local(context: &Context, by_contact: ContactId) -> String { if by_contact == ContactId::SELF { - translated(context, StockMessage::MsgYouLeftGroup).await + translated(context, StockMessage::MsgYouLeftGroup) } else { translated(context, StockMessage::MsgGroupLeftBy) - .await .replace1(&by_contact.get_stock_name(context).await) } } /// Stock string: `You left the channel.` -pub(crate) async fn msg_you_left_broadcast(context: &Context) -> String { - translated(context, StockMessage::MsgYouLeftBroadcast).await +pub(crate) fn msg_you_left_broadcast(context: &Context) -> String { + translated(context, StockMessage::MsgYouLeftBroadcast) } /// Stock string: `You joined the channel.` -pub(crate) async fn msg_you_joined_broadcast(context: &Context) -> String { - translated(context, StockMessage::MsgYouJoinedBroadcast).await +pub(crate) fn msg_you_joined_broadcast(context: &Context) -> String { + translated(context, StockMessage::MsgYouJoinedBroadcast) } /// Stock string: `%1$s invited you to join this channel. Waiting for the device of %2$s to reply…`. @@ -709,7 +692,6 @@ pub(crate) async fn secure_join_broadcast_started( ) -> String { if let Ok(contact) = Contact::get_by_id(context, inviter_contact_id).await { translated(context, StockMessage::SecureJoinBroadcastStarted) - .await .replace1(contact.get_display_name()) .replace2(contact.get_display_name()) } else { @@ -718,16 +700,15 @@ pub(crate) async fn secure_join_broadcast_started( } /// Stock string: `Channel name changed from "1%s" to "2$s".` -pub(crate) async fn msg_broadcast_name_changed(context: &Context, from: &str, to: &str) -> String { +pub(crate) fn msg_broadcast_name_changed(context: &Context, from: &str, to: &str) -> String { translated(context, StockMessage::MsgBroadcastNameChanged) - .await .replace1(from) .replace2(to) } /// Stock string `Channel image changed.` -pub(crate) async fn msg_broadcast_img_changed(context: &Context) -> String { - translated(context, StockMessage::MsgBroadcastImgChanged).await +pub(crate) fn msg_broadcast_img_changed(context: &Context) -> String { + translated(context, StockMessage::MsgBroadcastImgChanged) } /// Stock string: `You reacted %1$s to "%2$s"` or `%1$s reacted %2$s to "%3$s"`. @@ -739,12 +720,10 @@ pub(crate) async fn msg_reacted( ) -> String { if by_contact == ContactId::SELF { translated(context, StockMessage::MsgYouReacted) - .await .replace1(reaction) .replace2(summary) } else { translated(context, StockMessage::MsgReactedBy) - .await .replace1(&by_contact.get_stock_name(context).await) .replace2(reaction) .replace3(summary) @@ -752,27 +731,26 @@ pub(crate) async fn msg_reacted( } /// Stock string: `GIF`. -pub(crate) async fn gif(context: &Context) -> String { - translated(context, StockMessage::Gif).await +pub(crate) fn gif(context: &Context) -> String { + translated(context, StockMessage::Gif) } /// Stock string: `No encryption.`. -pub(crate) async fn encr_none(context: &Context) -> String { - translated(context, StockMessage::EncrNone).await +pub(crate) fn encr_none(context: &Context) -> String { + translated(context, StockMessage::EncrNone) } /// Stock string: `Fingerprints`. -pub(crate) async fn finger_prints(context: &Context) -> String { - translated(context, StockMessage::FingerPrints).await +pub(crate) fn finger_prints(context: &Context) -> String { + translated(context, StockMessage::FingerPrints) } /// Stock string: `Group image deleted.`. pub(crate) async fn msg_grp_img_deleted(context: &Context, by_contact: ContactId) -> String { if by_contact == ContactId::SELF { - translated(context, StockMessage::MsgYouDeletedGrpImg).await + translated(context, StockMessage::MsgYouDeletedGrpImg) } else { translated(context, StockMessage::MsgGrpImgDeletedBy) - .await .replace1(&by_contact.get_stock_name(context).await) } } @@ -784,7 +762,6 @@ pub(crate) async fn secure_join_started( ) -> String { if let Ok(contact) = Contact::get_by_id(context, inviter_contact_id).await { translated(context, StockMessage::SecureJoinStarted) - .await .replace1(contact.get_display_name()) .replace2(contact.get_display_name()) } else { @@ -795,22 +772,21 @@ pub(crate) async fn secure_join_started( /// Stock string: `%1$s replied, waiting for being added to the group…`. pub(crate) async fn secure_join_replies(context: &Context, contact_id: ContactId) -> String { translated(context, StockMessage::SecureJoinReplies) - .await .replace1(&contact_id.get_stock_name(context).await) } /// Stock string: `Establishing connection, please wait…`. -pub(crate) async fn securejoin_wait(context: &Context) -> String { - translated(context, StockMessage::SecurejoinWait).await +pub(crate) fn securejoin_wait(context: &Context) -> String { + translated(context, StockMessage::SecurejoinWait) } /// Stock string: `❤️ Seems you're enjoying Delta Chat!`… -pub(crate) async fn donation_request(context: &Context) -> String { - translated(context, StockMessage::DonationRequest).await +pub(crate) fn donation_request(context: &Context) -> String { + translated(context, StockMessage::DonationRequest) } /// Stock string: `Outgoing video call` or `Outgoing audio call`. -pub(crate) async fn outgoing_call(context: &Context, has_video: bool) -> String { +pub(crate) fn outgoing_call(context: &Context, has_video: bool) -> String { translated( context, if has_video { @@ -819,11 +795,10 @@ pub(crate) async fn outgoing_call(context: &Context, has_video: bool) -> String StockMessage::OutgoingAudioCall }, ) - .await } /// Stock string: `Incoming video call` or `Incoming audio call`. -pub(crate) async fn incoming_call(context: &Context, has_video: bool) -> String { +pub(crate) fn incoming_call(context: &Context, has_video: bool) -> String { translated( context, if has_video { @@ -832,26 +807,25 @@ pub(crate) async fn incoming_call(context: &Context, has_video: bool) -> String StockMessage::IncomingAudioCall }, ) - .await } /// Stock string: `Declined call`. -pub(crate) async fn declined_call(context: &Context) -> String { - translated(context, StockMessage::DeclinedCall).await +pub(crate) fn declined_call(context: &Context) -> String { + translated(context, StockMessage::DeclinedCall) } /// Stock string: `Canceled call`. -pub(crate) async fn canceled_call(context: &Context) -> String { - translated(context, StockMessage::CanceledCall).await +pub(crate) fn canceled_call(context: &Context) -> String { + translated(context, StockMessage::CanceledCall) } /// Stock string: `Missed call`. -pub(crate) async fn missed_call(context: &Context) -> String { - translated(context, StockMessage::MissedCall).await +pub(crate) fn missed_call(context: &Context) -> String { + translated(context, StockMessage::MissedCall) } /// Stock string: `Scan to chat with %1$s`. -pub(crate) async fn setup_contact_qr_description( +pub(crate) fn setup_contact_qr_description( context: &Context, display_name: &str, addr: &str, @@ -861,113 +835,100 @@ pub(crate) async fn setup_contact_qr_description( } else { display_name.to_owned() }; - translated(context, StockMessage::SetupContactQRDescription) - .await - .replace1(&name) + translated(context, StockMessage::SetupContactQRDescription).replace1(&name) } /// Stock string: `Scan to join group %1$s`. -pub(crate) async fn secure_join_group_qr_description(context: &Context, chat: &Chat) -> String { - translated(context, StockMessage::SecureJoinGroupQRDescription) - .await - .replace1(chat.get_name()) +pub(crate) fn secure_join_group_qr_description(context: &Context, chat: &Chat) -> String { + translated(context, StockMessage::SecureJoinGroupQRDescription).replace1(chat.get_name()) } /// Stock string: `Scan to join channel %1$s`. -pub(crate) async fn secure_join_broadcast_qr_description(context: &Context, chat: &Chat) -> String { - translated(context, StockMessage::SecureJoinBrodcastQRDescription) - .await - .replace1(chat.get_name()) +pub(crate) fn secure_join_broadcast_qr_description(context: &Context, chat: &Chat) -> String { + translated(context, StockMessage::SecureJoinBrodcastQRDescription).replace1(chat.get_name()) } /// Stock string: `%1$s verified.`. #[allow(dead_code)] -pub(crate) async fn contact_verified(context: &Context, contact: &Contact) -> String { +pub(crate) fn contact_verified(context: &Context, contact: &Contact) -> String { let addr = contact.get_display_name(); - translated(context, StockMessage::ContactVerified) - .await - .replace1(addr) + translated(context, StockMessage::ContactVerified).replace1(addr) } /// Stock string: `Archived chats`. -pub(crate) async fn archived_chats(context: &Context) -> String { - translated(context, StockMessage::ArchivedChats).await +pub(crate) fn archived_chats(context: &Context) -> String { + translated(context, StockMessage::ArchivedChats) } /// Stock string: `Multi Device Synchronization`. -pub(crate) async fn sync_msg_subject(context: &Context) -> String { - translated(context, StockMessage::SyncMsgSubject).await +pub(crate) fn sync_msg_subject(context: &Context) -> String { + translated(context, StockMessage::SyncMsgSubject) } /// Stock string: `This message is used to synchronize data between your devices.`. -pub(crate) async fn sync_msg_body(context: &Context) -> String { - translated(context, StockMessage::SyncMsgBody).await +pub(crate) fn sync_msg_body(context: &Context) -> String { + translated(context, StockMessage::SyncMsgBody) } /// Stock string: `Cannot login as \"%1$s\". Please check...`. -pub(crate) async fn cannot_login(context: &Context, user: &str) -> String { - translated(context, StockMessage::CannotLogin) - .await - .replace1(user) +pub(crate) fn cannot_login(context: &Context, user: &str) -> String { + translated(context, StockMessage::CannotLogin).replace1(user) } /// Stock string: `Location streaming enabled.`. -pub(crate) async fn msg_location_enabled(context: &Context) -> String { - translated(context, StockMessage::MsgLocationEnabled).await +pub(crate) fn msg_location_enabled(context: &Context) -> String { + translated(context, StockMessage::MsgLocationEnabled) } /// Stock string: `Location streaming enabled by ...`. pub(crate) async fn msg_location_enabled_by(context: &Context, contact: ContactId) -> String { if contact == ContactId::SELF { - translated(context, StockMessage::MsgYouEnabledLocation).await + translated(context, StockMessage::MsgYouEnabledLocation) } else { translated(context, StockMessage::MsgLocationEnabledBy) - .await .replace1(&contact.get_stock_name(context).await) } } /// Stock string: `Location streaming disabled.`. -pub(crate) async fn msg_location_disabled(context: &Context) -> String { - translated(context, StockMessage::MsgLocationDisabled).await +pub(crate) fn msg_location_disabled(context: &Context) -> String { + translated(context, StockMessage::MsgLocationDisabled) } /// Stock string: `Location`. -pub(crate) async fn location(context: &Context) -> String { - translated(context, StockMessage::Location).await +pub(crate) fn location(context: &Context) -> String { + translated(context, StockMessage::Location) } /// Stock string: `Sticker`. -pub(crate) async fn sticker(context: &Context) -> String { - translated(context, StockMessage::Sticker).await +pub(crate) fn sticker(context: &Context) -> String { + translated(context, StockMessage::Sticker) } /// Stock string: `Device messages`. -pub(crate) async fn device_messages(context: &Context) -> String { - translated(context, StockMessage::DeviceMessages).await +pub(crate) fn device_messages(context: &Context) -> String { + translated(context, StockMessage::DeviceMessages) } /// Stock string: `Saved messages`. -pub(crate) async fn saved_messages(context: &Context) -> String { - translated(context, StockMessage::SavedMessages).await +pub(crate) fn saved_messages(context: &Context) -> String { + translated(context, StockMessage::SavedMessages) } /// Stock string: `Messages in this chat are generated locally by...`. -pub(crate) async fn device_messages_hint(context: &Context) -> String { - translated(context, StockMessage::DeviceMessagesHint).await +pub(crate) fn device_messages_hint(context: &Context) -> String { + translated(context, StockMessage::DeviceMessagesHint) } /// Stock string: `Welcome to Delta Chat! – ...`. -pub(crate) async fn welcome_message(context: &Context) -> String { - translated(context, StockMessage::WelcomeMessage).await +pub(crate) fn welcome_message(context: &Context) -> String { + translated(context, StockMessage::WelcomeMessage) } /// Stock string: `Message from %1$s`. // TODO: This can compute `self_name` itself instead of asking the caller to do this. -pub(crate) async fn subject_for_new_contact(context: &Context, self_name: &str) -> String { - translated(context, StockMessage::SubjectForNewContact) - .await - .replace1(self_name) +pub(crate) fn subject_for_new_contact(context: &Context, self_name: &str) -> String { + translated(context, StockMessage::SubjectForNewContact).replace1(self_name) } /// Stock string: `Message deletion timer is disabled.`. @@ -976,10 +937,9 @@ pub(crate) async fn msg_ephemeral_timer_disabled( by_contact: ContactId, ) -> String { if by_contact == ContactId::SELF { - translated(context, StockMessage::MsgYouDisabledEphemeralTimer).await + translated(context, StockMessage::MsgYouDisabledEphemeralTimer) } else { translated(context, StockMessage::MsgEphemeralTimerDisabledBy) - .await .replace1(&by_contact.get_stock_name(context).await) } } @@ -991,12 +951,9 @@ pub(crate) async fn msg_ephemeral_timer_enabled( by_contact: ContactId, ) -> String { if by_contact == ContactId::SELF { - translated(context, StockMessage::MsgYouEnabledEphemeralTimer) - .await - .replace1(timer) + translated(context, StockMessage::MsgYouEnabledEphemeralTimer).replace1(timer) } else { translated(context, StockMessage::MsgEphemeralTimerEnabledBy) - .await .replace1(timer) .replace2(&by_contact.get_stock_name(context).await) } @@ -1005,10 +962,9 @@ pub(crate) async fn msg_ephemeral_timer_enabled( /// Stock string: `Message deletion timer is set to 1 hour.`. pub(crate) async fn msg_ephemeral_timer_hour(context: &Context, by_contact: ContactId) -> String { if by_contact == ContactId::SELF { - translated(context, StockMessage::MsgYouEphemeralTimerHour).await + translated(context, StockMessage::MsgYouEphemeralTimerHour) } else { translated(context, StockMessage::MsgEphemeralTimerHourBy) - .await .replace1(&by_contact.get_stock_name(context).await) } } @@ -1016,10 +972,9 @@ pub(crate) async fn msg_ephemeral_timer_hour(context: &Context, by_contact: Cont /// Stock string: `Message deletion timer is set to 1 day.`. pub(crate) async fn msg_ephemeral_timer_day(context: &Context, by_contact: ContactId) -> String { if by_contact == ContactId::SELF { - translated(context, StockMessage::MsgYouEphemeralTimerDay).await + translated(context, StockMessage::MsgYouEphemeralTimerDay) } else { translated(context, StockMessage::MsgEphemeralTimerDayBy) - .await .replace1(&by_contact.get_stock_name(context).await) } } @@ -1027,10 +982,9 @@ pub(crate) async fn msg_ephemeral_timer_day(context: &Context, by_contact: Conta /// Stock string: `Message deletion timer is set to 1 week.`. pub(crate) async fn msg_ephemeral_timer_week(context: &Context, by_contact: ContactId) -> String { if by_contact == ContactId::SELF { - translated(context, StockMessage::MsgYouEphemeralTimerWeek).await + translated(context, StockMessage::MsgYouEphemeralTimerWeek) } else { translated(context, StockMessage::MsgEphemeralTimerWeekBy) - .await .replace1(&by_contact.get_stock_name(context).await) } } @@ -1038,57 +992,52 @@ pub(crate) async fn msg_ephemeral_timer_week(context: &Context, by_contact: Cont /// Stock string: `Message deletion timer is set to 1 year.`. pub(crate) async fn msg_ephemeral_timer_year(context: &Context, by_contact: ContactId) -> String { if by_contact == ContactId::SELF { - translated(context, StockMessage::MsgYouEphemeralTimerYear).await + translated(context, StockMessage::MsgYouEphemeralTimerYear) } else { translated(context, StockMessage::MsgEphemeralTimerYearBy) - .await .replace1(&by_contact.get_stock_name(context).await) } } /// Stock string: `Error:\n\n“%1$s”`. -pub(crate) async fn configuration_failed(context: &Context, details: &str) -> String { - translated(context, StockMessage::ConfigurationFailed) - .await - .replace1(details) +pub(crate) fn configuration_failed(context: &Context, details: &str) -> String { + translated(context, StockMessage::ConfigurationFailed).replace1(details) } /// Stock string: `⚠️ Date or time of your device seem to be inaccurate (%1$s)...`. // TODO: This could compute now itself. -pub(crate) async fn bad_time_msg_body(context: &Context, now: &str) -> String { - translated(context, StockMessage::BadTimeMsgBody) - .await - .replace1(now) +pub(crate) fn bad_time_msg_body(context: &Context, now: &str) -> String { + translated(context, StockMessage::BadTimeMsgBody).replace1(now) } /// Stock string: `⚠️ Your Delta Chat version might be outdated...`. -pub(crate) async fn update_reminder_msg_body(context: &Context) -> String { - translated(context, StockMessage::UpdateReminderMsgBody).await +pub(crate) fn update_reminder_msg_body(context: &Context) -> String { + translated(context, StockMessage::UpdateReminderMsgBody) } /// Stock string: `Could not find your mail server...`. -pub(crate) async fn error_no_network(context: &Context) -> String { - translated(context, StockMessage::ErrorNoNetwork).await +pub(crate) fn error_no_network(context: &Context) -> String { + translated(context, StockMessage::ErrorNoNetwork) } /// Stock string: `Messages are end-to-end encrypted.`, used in info-messages, UI may add smth. as `Tap to learn more.` -pub(crate) async fn messages_e2ee_info_msg(context: &Context) -> String { - translated(context, StockMessage::ChatProtectionEnabled).await +pub(crate) fn messages_e2ee_info_msg(context: &Context) -> String { + translated(context, StockMessage::ChatProtectionEnabled) } /// Stock string: `Messages are end-to-end encrypted.` -pub(crate) async fn messages_are_e2ee(context: &Context) -> String { - translated(context, StockMessage::MessagesAreE2ee).await +pub(crate) fn messages_are_e2ee(context: &Context) -> String { + translated(context, StockMessage::MessagesAreE2ee) } /// Stock string: `Reply`. -pub(crate) async fn reply_noun(context: &Context) -> String { - translated(context, StockMessage::ReplyNoun).await +pub(crate) fn reply_noun(context: &Context) -> String { + translated(context, StockMessage::ReplyNoun) } /// Stock string: `You deleted the \"Saved messages\" chat...`. -pub(crate) async fn self_deleted_msg_body(context: &Context) -> String { - translated(context, StockMessage::SelfDeletedMsgBody).await +pub(crate) fn self_deleted_msg_body(context: &Context) -> String { + translated(context, StockMessage::SelfDeletedMsgBody) } /// Stock string: `Message deletion timer is set to %1$s minutes.`. @@ -1098,12 +1047,9 @@ pub(crate) async fn msg_ephemeral_timer_minutes( by_contact: ContactId, ) -> String { if by_contact == ContactId::SELF { - translated(context, StockMessage::MsgYouEphemeralTimerMinutes) - .await - .replace1(minutes) + translated(context, StockMessage::MsgYouEphemeralTimerMinutes).replace1(minutes) } else { translated(context, StockMessage::MsgEphemeralTimerMinutesBy) - .await .replace1(minutes) .replace2(&by_contact.get_stock_name(context).await) } @@ -1116,12 +1062,9 @@ pub(crate) async fn msg_ephemeral_timer_hours( by_contact: ContactId, ) -> String { if by_contact == ContactId::SELF { - translated(context, StockMessage::MsgYouEphemeralTimerHours) - .await - .replace1(hours) + translated(context, StockMessage::MsgYouEphemeralTimerHours).replace1(hours) } else { translated(context, StockMessage::MsgEphemeralTimerHoursBy) - .await .replace1(hours) .replace2(&by_contact.get_stock_name(context).await) } @@ -1134,12 +1077,9 @@ pub(crate) async fn msg_ephemeral_timer_days( by_contact: ContactId, ) -> String { if by_contact == ContactId::SELF { - translated(context, StockMessage::MsgYouEphemeralTimerDays) - .await - .replace1(days) + translated(context, StockMessage::MsgYouEphemeralTimerDays).replace1(days) } else { translated(context, StockMessage::MsgEphemeralTimerDaysBy) - .await .replace1(days) .replace2(&by_contact.get_stock_name(context).await) } @@ -1152,112 +1092,103 @@ pub(crate) async fn msg_ephemeral_timer_weeks( by_contact: ContactId, ) -> String { if by_contact == ContactId::SELF { - translated(context, StockMessage::MsgYouEphemeralTimerWeeks) - .await - .replace1(weeks) + translated(context, StockMessage::MsgYouEphemeralTimerWeeks).replace1(weeks) } else { translated(context, StockMessage::MsgEphemeralTimerWeeksBy) - .await .replace1(weeks) .replace2(&by_contact.get_stock_name(context).await) } } /// Stock string: `Forwarded`. -pub(crate) async fn forwarded(context: &Context) -> String { - translated(context, StockMessage::Forwarded).await +pub(crate) fn forwarded(context: &Context) -> String { + translated(context, StockMessage::Forwarded) } /// Stock string: `⚠️ Your provider's storage is about to exceed...`. -pub(crate) async fn quota_exceeding(context: &Context, highest_usage: u64) -> String { +pub(crate) fn quota_exceeding(context: &Context, highest_usage: u64) -> String { translated(context, StockMessage::QuotaExceedingMsgBody) - .await .replace1(&format!("{highest_usage}")) .replace("%%", "%") } /// Stock string: `Incoming Messages`. -pub(crate) async fn incoming_messages(context: &Context) -> String { - translated(context, StockMessage::IncomingMessages).await +pub(crate) fn incoming_messages(context: &Context) -> String { + translated(context, StockMessage::IncomingMessages) } /// Stock string: `Outgoing Messages`. -pub(crate) async fn outgoing_messages(context: &Context) -> String { - translated(context, StockMessage::OutgoingMessages).await +pub(crate) fn outgoing_messages(context: &Context) -> String { + translated(context, StockMessage::OutgoingMessages) } /// Stock string: `Not connected`. -pub(crate) async fn not_connected(context: &Context) -> String { - translated(context, StockMessage::NotConnected).await +pub(crate) fn not_connected(context: &Context) -> String { + translated(context, StockMessage::NotConnected) } /// Stock string: `Connected`. -pub(crate) async fn connected(context: &Context) -> String { - translated(context, StockMessage::Connected).await +pub(crate) fn connected(context: &Context) -> String { + translated(context, StockMessage::Connected) } /// Stock string: `Connecting…`. -pub(crate) async fn connecting(context: &Context) -> String { - translated(context, StockMessage::Connecting).await +pub(crate) fn connecting(context: &Context) -> String { + translated(context, StockMessage::Connecting) } /// Stock string: `Updating…`. -pub(crate) async fn updating(context: &Context) -> String { - translated(context, StockMessage::Updating).await +pub(crate) fn updating(context: &Context) -> String { + translated(context, StockMessage::Updating) } /// Stock string: `Sending…`. -pub(crate) async fn sending(context: &Context) -> String { - translated(context, StockMessage::Sending).await +pub(crate) fn sending(context: &Context) -> String { + translated(context, StockMessage::Sending) } /// Stock string: `Your last message was sent successfully.`. -pub(crate) async fn last_msg_sent_successfully(context: &Context) -> String { - translated(context, StockMessage::LastMsgSentSuccessfully).await +pub(crate) fn last_msg_sent_successfully(context: &Context) -> String { + translated(context, StockMessage::LastMsgSentSuccessfully) } /// Stock string: `Error: %1$s…`. /// `%1$s` will be replaced by a possibly more detailed, typically english, error description. -pub(crate) async fn error(context: &Context, error: &str) -> String { - translated(context, StockMessage::Error) - .await - .replace1(error) +pub(crate) fn error(context: &Context, error: &str) -> String { + translated(context, StockMessage::Error).replace1(error) } /// Stock string: `Not supported by your provider.`. -pub(crate) async fn not_supported_by_provider(context: &Context) -> String { - translated(context, StockMessage::NotSupportedByProvider).await +pub(crate) fn not_supported_by_provider(context: &Context) -> String { + translated(context, StockMessage::NotSupportedByProvider) } /// Stock string: `Messages`. /// Used as a subtitle in quota context; can be plural always. -pub(crate) async fn messages(context: &Context) -> String { - translated(context, StockMessage::Messages).await +pub(crate) fn messages(context: &Context) -> String { + translated(context, StockMessage::Messages) } /// Stock string: `%1$s of %2$s used`. -pub(crate) async fn part_of_total_used(context: &Context, part: &str, total: &str) -> String { +pub(crate) fn part_of_total_used(context: &Context, part: &str, total: &str) -> String { translated(context, StockMessage::PartOfTotallUsed) - .await .replace1(part) .replace2(total) } /// Stock string: `⚠️ Your email provider %1$s requires end-to-end encryption which is not setup yet. Tap to learn more.`. pub(crate) async fn unencrypted_email(context: &Context, provider: &str) -> String { - translated(context, StockMessage::InvalidUnencryptedMail) - .await - .replace1(provider) + translated(context, StockMessage::InvalidUnencryptedMail).replace1(provider) } /// Stock string: `The attachment contains anonymous usage statistics, which helps us improve Delta Chat. Thank you!` -pub(crate) async fn stats_msg_body(context: &Context) -> String { - translated(context, StockMessage::StatsMsgBody).await +pub(crate) fn stats_msg_body(context: &Context) -> String { + translated(context, StockMessage::StatsMsgBody) } /// Stock string: `Others will only see this group after you sent a first message.`. -pub(crate) async fn new_group_send_first_message(context: &Context) -> String { - translated(context, StockMessage::NewGroupSendFirstMessage).await +pub(crate) fn new_group_send_first_message(context: &Context) -> String { + translated(context, StockMessage::NewGroupSendFirstMessage) } /// Text to put in the [`Qr::Backup2`] rendered SVG image. @@ -1272,46 +1203,44 @@ pub(crate) async fn backup_transfer_qr(context: &Context) -> Result { } else { context.get_primary_self_addr().await? }; - Ok(translated(context, StockMessage::BackupTransferQr) - .await - .replace1(&name)) + Ok(translated(context, StockMessage::BackupTransferQr).replace1(&name)) } -pub(crate) async fn backup_transfer_msg_body(context: &Context) -> String { - translated(context, StockMessage::BackupTransferMsgBody).await +pub(crate) fn backup_transfer_msg_body(context: &Context) -> String { + translated(context, StockMessage::BackupTransferMsgBody) } /// Stock string: `Proxy Enabled`. -pub(crate) async fn proxy_enabled(context: &Context) -> String { - translated(context, StockMessage::ProxyEnabled).await +pub(crate) fn proxy_enabled(context: &Context) -> String { + translated(context, StockMessage::ProxyEnabled) } /// Stock string: `You are using a proxy. If you're having trouble connecting, try a different proxy.`. -pub(crate) async fn proxy_description(context: &Context) -> String { - translated(context, StockMessage::ProxyEnabledDescription).await +pub(crate) fn proxy_description(context: &Context) -> String { + translated(context, StockMessage::ProxyEnabledDescription) } /// Stock string: `Messages in this chat use classic email and are not encrypted.`. -pub(crate) async fn chat_unencrypted_explanation(context: &Context) -> String { - translated(context, StockMessage::ChatUnencryptedExplanation).await +pub(crate) fn chat_unencrypted_explanation(context: &Context) -> String { + translated(context, StockMessage::ChatUnencryptedExplanation) } /// Stock string: `You are using the legacy option "Move automatically to DeltaChat Folder`… -pub(crate) async fn mvbox_move_deprecation(context: &Context) -> String { - translated(context, StockMessage::MvboxMoveDeprecation).await +pub(crate) fn mvbox_move_deprecation(context: &Context) -> String { + translated(context, StockMessage::MvboxMoveDeprecation) } impl Viewtype { /// returns Localized name for message viewtype - pub async fn to_locale_string(&self, context: &Context) -> String { + pub fn to_locale_string(&self, context: &Context) -> String { match self { - Viewtype::Image => image(context).await, - Viewtype::Gif => gif(context).await, - Viewtype::Sticker => sticker(context).await, - Viewtype::Audio => audio(context).await, - Viewtype::Voice => voice_message(context).await, - Viewtype::Video => video(context).await, - Viewtype::File => file(context).await, + Viewtype::Image => image(context), + Viewtype::Gif => gif(context), + Viewtype::Sticker => sticker(context), + Viewtype::Audio => audio(context), + Viewtype::Voice => voice_message(context), + Viewtype::Video => video(context), + Viewtype::File => file(context), Viewtype::Webxdc => "Mini App".to_owned(), Viewtype::Vcard => "👤".to_string(), // The following shouldn't normally be shown to users, so translations aren't needed. @@ -1323,10 +1252,9 @@ impl Viewtype { impl Context { /// Set the stock string for the [StockMessage]. /// - pub async fn set_stock_translation(&self, id: StockMessage, stockstring: String) -> Result<()> { + pub fn set_stock_translation(&self, id: StockMessage, stockstring: String) -> Result<()> { self.translated_stockstrings - .set_stock_translation(id, stockstring) - .await?; + .set_stock_translation(id, stockstring)?; Ok(()) } @@ -1353,7 +1281,7 @@ impl Context { msg.param.set(Param::Filename, "welcome-image.jpg"); chat::add_device_msg(self, Some("core-welcome-image"), Some(&mut msg)).await?; - let mut msg = Message::new_text(welcome_message(self).await); + let mut msg = Message::new_text(welcome_message(self)); chat::add_device_msg(self, Some("core-welcome"), Some(&mut msg)).await?; Ok(()) } @@ -1362,10 +1290,8 @@ impl Context { impl Accounts { /// Set the stock string for the [StockMessage]. /// - pub async fn set_stock_translation(&self, id: StockMessage, stockstring: String) -> Result<()> { - self.stockstrings - .set_stock_translation(id, stockstring) - .await?; + pub fn set_stock_translation(&self, id: StockMessage, stockstring: String) -> Result<()> { + self.stockstrings.set_stock_translation(id, stockstring)?; Ok(()) } } diff --git a/src/stock_str/stock_str_tests.rs b/src/stock_str/stock_str_tests.rs index 37c03efab..62774a1ab 100644 --- a/src/stock_str/stock_str_tests.rs +++ b/src/stock_str/stock_str_tests.rs @@ -20,9 +20,8 @@ fn test_fallback() { async fn test_set_stock_translation() { let t = TestContext::new().await; t.set_stock_translation(StockMessage::NoMessages, "xyz".to_string()) - .await .unwrap(); - assert_eq!(no_messages(&t).await, "xyz") + assert_eq!(no_messages(&t), "xyz") } #[tokio::test(flavor = "multi_thread", worker_threads = 2)] @@ -31,13 +30,11 @@ async fn test_set_stock_translation_wrong_replacements() { assert!( t.ctx .set_stock_translation(StockMessage::NoMessages, "xyz %1$s ".to_string()) - .await .is_err() ); assert!( t.ctx .set_stock_translation(StockMessage::NoMessages, "xyz %2$s ".to_string()) - .await .is_err() ); } @@ -45,7 +42,7 @@ async fn test_set_stock_translation_wrong_replacements() { #[tokio::test(flavor = "multi_thread", worker_threads = 2)] async fn test_stock_str() { let t = TestContext::new().await; - assert_eq!(no_messages(&t).await, "No messages."); + assert_eq!(no_messages(&t), "No messages."); } #[tokio::test(flavor = "multi_thread", worker_threads = 2)] @@ -56,17 +53,14 @@ async fn test_stock_string_repl_str() { .unwrap(); let contact = Contact::get_by_id(&t.ctx, contact_id).await.unwrap(); // uses %1$s substitution - assert_eq!(contact_verified(&t, &contact).await, "Someone verified."); + assert_eq!(contact_verified(&t, &contact), "Someone verified."); // We have no string using %1$d to test... } #[tokio::test(flavor = "multi_thread", worker_threads = 2)] async fn test_stock_system_msg_simple() { let t = TestContext::new().await; - assert_eq!( - msg_location_enabled(&t).await, - "Location streaming enabled." - ) + assert_eq!(msg_location_enabled(&t), "Location streaming enabled.") } #[tokio::test(flavor = "multi_thread", worker_threads = 2)] @@ -111,7 +105,7 @@ async fn test_stock_system_msg_add_member_by_other_with_displayname() { #[tokio::test(flavor = "multi_thread", worker_threads = 2)] async fn test_quota_exceeding_stock_str() -> Result<()> { let t = TestContext::new().await; - let str = quota_exceeding(&t, 81).await; + let str = quota_exceeding(&t, 81); assert!(str.contains("81% ")); assert!(str.contains("100% ")); assert!(!str.contains("%%")); diff --git a/src/summary.rs b/src/summary.rs index 0c6e47de8..9f665f386 100644 --- a/src/summary.rs +++ b/src/summary.rs @@ -98,13 +98,13 @@ impl Summary { contact: Option<&Contact>, ) -> Result { let prefix = if msg.state == MessageState::OutDraft { - Some(SummaryPrefix::Draft(stock_str::draft(context).await)) + Some(SummaryPrefix::Draft(stock_str::draft(context))) } else if msg.from_id == ContactId::SELF { if msg.is_info() || msg.viewtype == Viewtype::Call || chat.typ == Chattype::OutBroadcast { None } else { - Some(SummaryPrefix::Me(stock_str::self_msg(context).await)) + Some(SummaryPrefix::Me(stock_str::self_msg(context))) } } else if chat.typ == Chattype::Group || chat.typ == Chattype::Mailinglist @@ -124,7 +124,7 @@ impl Summary { let mut text = msg.get_summary_text(context).await; if text.is_empty() && msg.quoted_text().is_some() { - text = stock_str::reply_noun(context).await + text = stock_str::reply_noun(context) } let thumbnail_path = if msg.viewtype == Viewtype::Image @@ -160,7 +160,7 @@ impl Message { let summary = self.get_summary_text_without_prefix(context).await; if self.is_forwarded() { - format!("{}: {}", stock_str::forwarded(context).await, summary) + format!("{}: {}", stock_str::forwarded(context), summary) } else { summary } @@ -180,43 +180,43 @@ impl Message { match viewtype { Viewtype::Image => { emoji = Some("📷"); - type_name = Some(stock_str::image(context).await); + type_name = Some(stock_str::image(context)); type_file = None; append_text = true; } Viewtype::Gif => { emoji = None; - type_name = Some(stock_str::gif(context).await); + type_name = Some(stock_str::gif(context)); type_file = None; append_text = true; } Viewtype::Sticker => { emoji = None; - type_name = Some(stock_str::sticker(context).await); + type_name = Some(stock_str::sticker(context)); type_file = None; append_text = true; } Viewtype::Video => { emoji = Some("🎥"); - type_name = Some(stock_str::video(context).await); + type_name = Some(stock_str::video(context)); type_file = None; append_text = true; } Viewtype::Voice => { emoji = Some("🎤"); - type_name = Some(stock_str::voice_message(context).await); + type_name = Some(stock_str::voice_message(context)); type_file = None; append_text = true; } Viewtype::Audio => { emoji = Some("🎵"); - type_name = Some(stock_str::audio(context).await); + type_name = Some(stock_str::audio(context)); type_file = self.get_filename(); append_text = true } Viewtype::File => { emoji = Some("📎"); - type_name = Some(stock_str::file(context).await); + type_name = Some(stock_str::file(context)); type_file = self.get_filename(); append_text = true } @@ -255,14 +255,14 @@ impl Message { type_name = Some(match call_state { CallState::Alerting | CallState::Active | CallState::Completed { .. } => { if self.from_id == ContactId::SELF { - stock_str::outgoing_call(context, has_video).await + stock_str::outgoing_call(context, has_video) } else { - stock_str::incoming_call(context, has_video).await + stock_str::incoming_call(context, has_video) } } - CallState::Missed => stock_str::missed_call(context).await, - CallState::Declined => stock_str::declined_call(context).await, - CallState::Canceled => stock_str::canceled_call(context).await, + CallState::Missed => stock_str::missed_call(context), + CallState::Declined => stock_str::declined_call(context), + CallState::Canceled => stock_str::canceled_call(context), }); type_file = None; append_text = false @@ -270,7 +270,7 @@ impl Message { Viewtype::Text | Viewtype::Unknown => { emoji = None; if self.param.get_cmd() == SystemMessage::LocationOnly { - type_name = Some(stock_str::location(context).await); + type_name = Some(stock_str::location(context)); type_file = None; append_text = false; } else { diff --git a/src/sync.rs b/src/sync.rs index 580710b6a..3e87bb05e 100644 --- a/src/sync.rs +++ b/src/sync.rs @@ -229,9 +229,9 @@ impl Context { let mut msg = Message { chat_id, viewtype: Viewtype::Text, - text: stock_str::sync_msg_body(self).await, + text: stock_str::sync_msg_body(self), hidden: true, - subject: stock_str::sync_msg_subject(self).await, + subject: stock_str::sync_msg_subject(self), ..Default::default() }; msg.param.set_cmd(SystemMessage::MultiDeviceSync); diff --git a/src/tests/verified_chats.rs b/src/tests/verified_chats.rs index 8ca5826f6..0c211c2af 100644 --- a/src/tests/verified_chats.rs +++ b/src/tests/verified_chats.rs @@ -195,7 +195,7 @@ async fn test_degrade_verified_oneonone_chat() -> Result<()> { .await?; let msg0 = get_chat_msg(&alice, alice_chat.id, 0, 1).await; - let enabled = stock_str::messages_e2ee_info_msg(&alice).await; + let enabled = stock_str::messages_e2ee_info_msg(&alice); assert_eq!(msg0.text, enabled); assert_eq!(msg0.param.get_cmd(), SystemMessage::ChatE2ee); diff --git a/src/tools.rs b/src/tools.rs index 30ec3ee08..a7fd5c1fd 100644 --- a/src/tools.rs +++ b/src/tools.rs @@ -233,8 +233,7 @@ async fn maybe_warn_on_bad_time(context: &Context, now: i64, known_past_timestam || "YY-MM-DD hh:mm:ss".to_string(), |ts| ts.format("%Y-%m-%d %H:%M:%S").to_string(), ), - ) - .await; + ); if let Some(timestamp) = chrono::DateTime::::from_timestamp(now, 0) { add_device_msg_with_importance( context, @@ -261,7 +260,7 @@ async fn maybe_warn_on_bad_time(context: &Context, now: i64, known_past_timestam #[expect(clippy::arithmetic_side_effects)] async fn maybe_warn_on_outdated(context: &Context, now: i64, approx_compile_time: i64) { if now > approx_compile_time + DC_OUTDATED_WARNING_DAYS * 24 * 60 * 60 { - let mut msg = Message::new_text(stock_str::update_reminder_msg_body(context).await); + let mut msg = Message::new_text(stock_str::update_reminder_msg_body(context)); if let Some(timestamp) = chrono::DateTime::::from_timestamp(now, 0) { add_device_msg( context,