From 9092d88775d5a4f41a4e63b94e18a45d5e51bf69 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 6 Mar 2018 17:50:25 +0100 Subject: [PATCH] Added method on chat message to know whether or not a download is in progress --- include/linphone/api/c-chat-message.h | 7 +++++++ src/c-wrapper/api/c-chat-message.cpp | 4 ++++ src/chat/chat-message/chat-message.cpp | 5 +++++ src/chat/chat-message/chat-message.h | 1 + 4 files changed, 17 insertions(+) diff --git a/include/linphone/api/c-chat-message.h b/include/linphone/api/c-chat-message.h index 1b66980bf..75445e0b5 100644 --- a/include/linphone/api/c-chat-message.h +++ b/include/linphone/api/c-chat-message.h @@ -362,6 +362,13 @@ LINPHONE_PUBLIC bool_t linphone_chat_message_has_text_content(const LinphoneChat */ LINPHONE_PUBLIC const char* linphone_chat_message_get_text_content(const LinphoneChatMessage *msg); +/** + * Gets whether or not a received file is currently being downloaded + * @param[in] msg LinphoneChatMessage object + * @return true if download is in progress, false otherwise + */ +LINPHONE_PUBLIC bool_t linphone_chat_message_is_download_in_progress(LinphoneChatMessage *msg); + /** * @} */ diff --git a/src/c-wrapper/api/c-chat-message.cpp b/src/c-wrapper/api/c-chat-message.cpp index 4b99e8bcb..693a1789a 100644 --- a/src/c-wrapper/api/c-chat-message.cpp +++ b/src/c-wrapper/api/c-chat-message.cpp @@ -242,6 +242,10 @@ const char *linphone_chat_message_get_text_content(const LinphoneChatMessage *ms return L_STRING_TO_C(msg->cache.textContentBody); } +bool_t linphone_chat_message_is_download_in_progress(LinphoneChatMessage *msg) { + return L_GET_CPP_PTR_FROM_C_OBJECT(msg)->isDownloadInProgress(); +} + // ============================================================================= // Old listener // ============================================================================= diff --git a/src/chat/chat-message/chat-message.cpp b/src/chat/chat-message/chat-message.cpp index 4031ceedb..6f50162b4 100644 --- a/src/chat/chat-message/chat-message.cpp +++ b/src/chat/chat-message/chat-message.cpp @@ -1040,6 +1040,11 @@ bool ChatMessage::downloadFile(FileTransferContent &fileTransferContent) { return d->fileTransferChatMessageModifier.downloadFile(getSharedFromThis(), &fileTransferContent); } +bool ChatMessage::isDownloadInProgress() { + L_D(); + return d->fileTransferChatMessageModifier.isFileTransferInProgressAndValid(); +} + void ChatMessage::cancelFileTransfer () { L_D(); if (d->fileTransferChatMessageModifier.isFileTransferInProgressAndValid()) { diff --git a/src/chat/chat-message/chat-message.h b/src/chat/chat-message/chat-message.h index 5ed06b1e9..501fb2b83 100644 --- a/src/chat/chat-message/chat-message.h +++ b/src/chat/chat-message/chat-message.h @@ -106,6 +106,7 @@ public: void removeCustomHeader (const std::string &headerName); bool downloadFile (FileTransferContent &content); + bool isDownloadInProgress(); private: ChatMessage (const std::shared_ptr &chatRoom, ChatMessage::Direction direction);