use webxdc app name in chatlist/quotes/replies/etc

this uses `get_webxdc_info().name` for chatlist etc.
the previuosly used static strings comes from a time
where we just did not had the correct name.

i was also thinking about adding `get_webxdc_info().summary`,
however, as this information is dynamic,
that may open several issues, eg. quoted text may change
so that the answer is out of context.
This commit is contained in:
B. Petersen
2022-01-29 12:57:55 +01:00
committed by bjoern
parent 2690fa2da5
commit d342d59e65
3 changed files with 28 additions and 1 deletions

View File

@@ -2,6 +2,9 @@
## 1.72.0
### Changes
- use webxdc app name in chatlist/quotes/replies etc. #3027
### Fixes
- run migrations on backup import #3006

View File

@@ -139,7 +139,10 @@ impl Message {
}
Viewtype::Webxdc => {
append_text = true;
"Webxdc".to_string()
self.get_webxdc_info(context)
.await
.map(|info| info.name)
.unwrap_or_else(|_| "ErrWebxdcName".to_string())
}
Viewtype::Text | Viewtype::Unknown => {
if self.param.get_cmd() != SystemMessage::LocationOnly {

View File

@@ -488,6 +488,7 @@ mod tests {
add_contact_to_chat, create_group_chat, forward_msgs, send_msg, send_text_msg, ChatId,
ProtectionStatus,
};
use crate::chatlist::Chatlist;
use crate::contact::Contact;
use crate::dc_receive_imf::dc_receive_imf;
use crate::test_utils::TestContext;
@@ -1514,4 +1515,24 @@ sth_for_the = "future""#
Ok(())
}
#[async_std::test]
async fn test_webxdc_chatlist_summary() -> Result<()> {
let t = TestContext::new_alice().await;
let chat_id = create_group_chat(&t, ProtectionStatus::Unprotected, "chat").await?;
let mut instance = create_webxdc_instance(
&t,
"with-minimal-manifest.xdc",
include_bytes!("../test-data/webxdc/with-minimal-manifest.xdc"),
)
.await?;
send_msg(&t, chat_id, &mut instance).await?;
let chatlist = Chatlist::try_load(&t, 0, None, None).await?;
assert_eq!(chatlist.len(), 1);
let summary = chatlist.get_summary(&t, 0, None).await?;
assert_eq!(summary.text, "nice app!".to_string());
Ok(())
}
}