93 lines
2.8 KiB
Rust
93 lines
2.8 KiB
Rust
use super::{
|
|
DeletedMessages, EditedMessage, FakeTdClient, ForwardedMessages, SearchQuery, SentMessage,
|
|
TdUpdate,
|
|
};
|
|
use crate::tdlib::types::FolderInfo;
|
|
use crate::tdlib::{ChatInfo, MessageInfo, NetworkState};
|
|
use tokio::sync::mpsc;
|
|
|
|
#[allow(dead_code)]
|
|
impl FakeTdClient {
|
|
pub fn get_chats(&self) -> Vec<ChatInfo> {
|
|
self.chats.lock().unwrap().clone()
|
|
}
|
|
|
|
pub fn get_folders(&self) -> Vec<FolderInfo> {
|
|
self.folders.lock().unwrap().clone()
|
|
}
|
|
|
|
pub fn get_messages(&self, chat_id: i64) -> Vec<MessageInfo> {
|
|
self.messages
|
|
.lock()
|
|
.unwrap()
|
|
.get(&chat_id)
|
|
.cloned()
|
|
.unwrap_or_default()
|
|
}
|
|
|
|
pub fn get_sent_messages(&self) -> Vec<SentMessage> {
|
|
self.sent_messages.lock().unwrap().clone()
|
|
}
|
|
|
|
pub fn get_edited_messages(&self) -> Vec<EditedMessage> {
|
|
self.edited_messages.lock().unwrap().clone()
|
|
}
|
|
|
|
pub fn get_deleted_messages(&self) -> Vec<DeletedMessages> {
|
|
self.deleted_messages.lock().unwrap().clone()
|
|
}
|
|
|
|
pub fn get_forwarded_messages(&self) -> Vec<ForwardedMessages> {
|
|
self.forwarded_messages.lock().unwrap().clone()
|
|
}
|
|
|
|
pub fn get_search_queries(&self) -> Vec<SearchQuery> {
|
|
self.searched_queries.lock().unwrap().clone()
|
|
}
|
|
|
|
pub fn get_viewed_messages(&self) -> Vec<(i64, Vec<i64>)> {
|
|
self.viewed_messages.lock().unwrap().clone()
|
|
}
|
|
|
|
pub fn get_chat_actions(&self) -> Vec<(i64, String)> {
|
|
self.chat_actions.lock().unwrap().clone()
|
|
}
|
|
|
|
pub fn get_network_state(&self) -> NetworkState {
|
|
self.network_state.lock().unwrap().clone()
|
|
}
|
|
|
|
pub fn get_current_chat_id(&self) -> Option<i64> {
|
|
*self.current_chat_id.lock().unwrap()
|
|
}
|
|
|
|
pub fn set_current_pinned_message(&mut self, msg: Option<MessageInfo>) {
|
|
*self.current_pinned_message.lock().unwrap() = msg;
|
|
}
|
|
|
|
pub async fn process_pending_view_messages(&mut self) {
|
|
let mut pending = self.pending_view_messages.lock().unwrap();
|
|
for (chat_id, message_ids) in pending.drain(..) {
|
|
let ids: Vec<i64> = message_ids.iter().map(|id| id.as_i64()).collect();
|
|
self.viewed_messages
|
|
.lock()
|
|
.unwrap()
|
|
.push((chat_id.as_i64(), ids));
|
|
}
|
|
}
|
|
|
|
pub fn set_update_channel(&self, tx: mpsc::UnboundedSender<TdUpdate>) {
|
|
*self.update_tx.lock().unwrap() = Some(tx);
|
|
}
|
|
|
|
pub fn clear_all_history(&self) {
|
|
self.sent_messages.lock().unwrap().clear();
|
|
self.edited_messages.lock().unwrap().clear();
|
|
self.deleted_messages.lock().unwrap().clear();
|
|
self.forwarded_messages.lock().unwrap().clear();
|
|
self.searched_queries.lock().unwrap().clear();
|
|
self.viewed_messages.lock().unwrap().clear();
|
|
self.chat_actions.lock().unwrap().clear();
|
|
}
|
|
}
|