Added and using isFileTransfer

This commit is contained in:
Sylvain Berfini 2018-02-08 17:38:16 +01:00
parent 1b74fdadef
commit dbdbeaa46f
9 changed files with 28 additions and 13 deletions

View file

@ -162,7 +162,7 @@ const Content* ChatMessagePrivate::getTextContent() const {
bool ChatMessagePrivate::hasFileTransferContent() const {
for (const Content *c : contents) {
if (c->getContentType() == ContentType::FileTransfer) {
if (c->isFileTransfer()) {
return true;
}
}
@ -171,7 +171,7 @@ bool ChatMessagePrivate::hasFileTransferContent() const {
const Content* ChatMessagePrivate::getFileTransferContent() const {
for (const Content *c : contents) {
if (c->getContentType() == ContentType::FileTransfer) {
if (c->isFileTransfer()) {
return c;
}
}
@ -321,8 +321,8 @@ bool ChatMessagePrivate::downloadFile () {
L_Q();
for (auto &content : contents)
if (content->getContentType() == ContentType::FileTransfer)
return q->downloadFile(*static_cast<FileTransferContent *>(content));
if (content->isFileTransfer())
return q->downloadFile(static_cast<FileTransferContent *>(content));
return false;
}
@ -674,8 +674,8 @@ void ChatMessagePrivate::send () {
list<Content*>::iterator it = contents.begin();
while (it != contents.end()) {
Content *content = *it;
if (content->getContentType() == ContentType::FileTransfer) {
FileTransferContent *fileTransferContent = (FileTransferContent *)content;
if (content->isFileTransfer()) {
FileTransferContent *fileTransferContent = static_cast<FileTransferContent *>(content);
it = contents.erase(it);
q->addContent(fileTransferContent->getFileContent());
delete fileTransferContent;
@ -965,9 +965,9 @@ void ChatMessage::sendDisplayNotification () {
d->sendImdn(Imdn::Type::Display, LinphoneReasonNone);
}
bool ChatMessage::downloadFile(FileTransferContent &fileTransferContent) {
bool ChatMessage::downloadFile(FileTransferContent *fileTransferContent) {
L_D();
return d->fileTransferChatMessageModifier.downloadFile(getSharedFromThis(), &fileTransferContent);
return d->fileTransferChatMessageModifier.downloadFile(getSharedFromThis(), fileTransferContent);
}
void ChatMessage::cancelFileTransfer () {

View file

@ -104,7 +104,7 @@ public:
void addCustomHeader (const std::string &headerName, const std::string &headerValue);
void removeCustomHeader (const std::string &headerName);
bool downloadFile (FileTransferContent &content);
bool downloadFile (FileTransferContent *content);
private:
ChatMessage (const std::shared_ptr<AbstractChatRoom> &chatRoom, ChatMessage::Direction direction);

View file

@ -587,8 +587,8 @@ ChatMessageModifier::Result FileTransferChatMessageModifier::decode (const share
}
for (Content *content : message->getContents()) {
if (content->getContentType() == ContentType::FileTransfer) {
FileTransferContent *fileTransferContent = (FileTransferContent *)content;
if (content->isFileTransfer()) {
FileTransferContent *fileTransferContent = static_cast<FileTransferContent *>(content);
fillFileTransferContentInformationsFromVndGsmaRcsFtHttpXml(fileTransferContent);
}
}
@ -779,8 +779,8 @@ void FileTransferChatMessageModifier::onRecvEnd (belle_sip_user_body_handler_t *
FileContent *fileContent = currentFileContentToTransfer;
message->addContent(fileContent);
for (Content *content : message->getContents()) {
if (content->getContentType() == ContentType::FileTransfer) {
FileTransferContent *fileTransferContent = (FileTransferContent*)content;
if (content->isFileTransfer()) {
FileTransferContent *fileTransferContent = static_cast<FileTransferContent *>(content);
if (fileTransferContent->getFileContent() == fileContent) {
message->removeContent(content);
delete fileTransferContent;

View file

@ -172,4 +172,8 @@ bool Content::isFile () const {
return false;
}
bool Content::isFileTransfer () const {
return false;
}
LINPHONE_END_NAMESPACE

View file

@ -70,6 +70,7 @@ public:
bool isEmpty () const;
virtual bool isFile () const;
virtual bool isFileTransfer () const;
protected:
explicit Content (ContentPrivate &p);

View file

@ -119,4 +119,8 @@ bool FileContent::isFile () const {
return true;
}
bool FileContent::isFileTransfer () const {
return false;
}
LINPHONE_END_NAMESPACE

View file

@ -49,6 +49,7 @@ public:
const std::string &getFilePath () const;
bool isFile () const override;
bool isFileTransfer () const override;
private:
L_DECLARE_PRIVATE(FileContent);

View file

@ -170,4 +170,8 @@ bool FileTransferContent::isFile () const {
return false;
}
bool FileTransferContent::isFileTransfer () const {
return true;
}
LINPHONE_END_NAMESPACE

View file

@ -62,6 +62,7 @@ public:
const char *getFileKeyAsString () const;
bool isFile () const override;
bool isFileTransfer () const override;
private:
L_DECLARE_PRIVATE(FileTransferContent);