mirror of
https://github.com/chatmail/core.git
synced 2026-05-13 11:56:30 +03:00
api: add JSON-RPC API markfresh_chat()
This commit is contained in:
@@ -11,8 +11,8 @@ use deltachat::blob::BlobObject;
|
|||||||
use deltachat::calls::ice_servers;
|
use deltachat::calls::ice_servers;
|
||||||
use deltachat::chat::{
|
use deltachat::chat::{
|
||||||
self, add_contact_to_chat, forward_msgs, forward_msgs_2ctx, get_chat_media, get_chat_msgs,
|
self, add_contact_to_chat, forward_msgs, forward_msgs_2ctx, get_chat_media, get_chat_msgs,
|
||||||
get_chat_msgs_ex, marknoticed_all_chats, marknoticed_chat, remove_contact_from_chat, Chat,
|
get_chat_msgs_ex, markfresh_chat, marknoticed_all_chats, marknoticed_chat,
|
||||||
ChatId, ChatItem, MessageListOptions,
|
remove_contact_from_chat, Chat, ChatId, ChatItem, MessageListOptions,
|
||||||
};
|
};
|
||||||
use deltachat::chatlist::Chatlist;
|
use deltachat::chatlist::Chatlist;
|
||||||
use deltachat::config::{get_all_ui_config_keys, Config};
|
use deltachat::config::{get_all_ui_config_keys, Config};
|
||||||
@@ -1249,6 +1249,15 @@ impl CommandApi {
|
|||||||
marknoticed_chat(&ctx, ChatId::new(chat_id)).await
|
marknoticed_chat(&ctx, ChatId::new(chat_id)).await
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Marks the last incoming message in the chat as _fresh_.
|
||||||
|
///
|
||||||
|
/// UI can use this to offer a "mark unread" option,
|
||||||
|
/// so that already noticed chats get a badge counter again.
|
||||||
|
async fn markfresh_chat(&self, account_id: u32, chat_id: u32) -> Result<()> {
|
||||||
|
let ctx = self.get_context(account_id).await?;
|
||||||
|
markfresh_chat(&ctx, ChatId::new(chat_id)).await
|
||||||
|
}
|
||||||
|
|
||||||
/// Returns the message that is immediately followed by the last seen
|
/// Returns the message that is immediately followed by the last seen
|
||||||
/// message.
|
/// message.
|
||||||
/// From the point of view of the user this is effectively
|
/// From the point of view of the user this is effectively
|
||||||
|
|||||||
@@ -219,6 +219,10 @@ class Chat:
|
|||||||
"""Mark all messages in this chat as noticed."""
|
"""Mark all messages in this chat as noticed."""
|
||||||
self._rpc.marknoticed_chat(self.account.id, self.id)
|
self._rpc.marknoticed_chat(self.account.id, self.id)
|
||||||
|
|
||||||
|
def mark_fresh(self) -> None:
|
||||||
|
"""Mark the last incoming message in the chat as fresh."""
|
||||||
|
self._rpc.markfresh_chat(self.account.id, self.id)
|
||||||
|
|
||||||
def add_contact(self, *contact: Union[int, str, Contact, "Account"]) -> None:
|
def add_contact(self, *contact: Union[int, str, Contact, "Account"]) -> None:
|
||||||
"""Add contacts to this group."""
|
"""Add contacts to this group."""
|
||||||
from .account import Account
|
from .account import Account
|
||||||
|
|||||||
@@ -273,6 +273,9 @@ def test_chat(acfactory) -> None:
|
|||||||
assert group.get_messages()
|
assert group.get_messages()
|
||||||
group.get_fresh_message_count()
|
group.get_fresh_message_count()
|
||||||
group.mark_noticed()
|
group.mark_noticed()
|
||||||
|
assert group.get_fresh_message_count() == 0
|
||||||
|
group.mark_fresh()
|
||||||
|
assert group.get_fresh_message_count() > 0
|
||||||
assert group.get_contacts()
|
assert group.get_contacts()
|
||||||
assert group.get_past_contacts() == []
|
assert group.get_past_contacts() == []
|
||||||
group.remove_contact(alice_contact_bob)
|
group.remove_contact(alice_contact_bob)
|
||||||
|
|||||||
Reference in New Issue
Block a user