virtual void onKeyboardReply(const std::string &text, int cursorPos) {};
virtual void onTemplateReply(const std::string &text) {};
virtual void onVoiceReply(const std::string &text, const std::list<std::string> &filePath) {};
+ virtual void onImageReply(const std::list<std::string> &filePath) {};
virtual void onEmoticonReply(const std::string &emoticon) {};
};
}
{
setOperation(APP_CONTROL_OPERATION_GET_INPUT);
addExtraData("return_key_type", "DONE");
- setMime("text/plain");
+ setMime("*/*");
}
InputSelector::~InputSelector()
m_pListener->onVoiceReply(text, fileList);
} else if (replyType == "template") {
m_pListener->onTemplateReply(text);
+ } else if (replyType == "image") {
+ auto fileList = AppControlUtils::getExtraDataArray(reply, APP_CONTROL_DATA_PATH);
+ m_pListener->onImageReply(fileList);
}
}
}
void onKeyboardReply(const std::string &text, int cursorPos) override;
void onVoiceReply(const std::string &text, const std::list<std::string> &fileList) override;
void onEmoticonReply(const std::string &emoticon) override;
+ void onImageReply(const std::list<std::string> &fileList) override;
void onTerminate(InputSelector &) override;
private:
void MsgInputController::notifyOnSendRequest()
{
- if (m_pListener)
- m_pListener->onSendRequest(*this);
+ if (m_pListener) {
+ bool isEmpty = m_InputData.files.empty() && m_InputData.text.empty();
+ if (!isEmpty)
+ m_pListener->onSendRequest(*this);
+ }
}
void MsgInputController::onDestroy(MsgBodyFrame &frame)
void MsgInputController::onVoiceReply(const std::string &text, const std::list<std::string> &fileList)
{
MSG_LOG("");
+ m_InputData.files = fileList;
+ m_InputData.text = text;
+ notifyOnSendRequest();
+}
- // TODO: Dummy file for test
- #if (0)
- std::string file = PathUtils::getResourcePath("dummy_res/1.mp3");
- m_InputData.files.push_back(file);
- m_InputData.files = fileList;
- #endif
-
+void MsgInputController::onImageReply(const std::list<std::string> &fileList)
+{
+ MSG_LOG("");
+ m_InputData.files = fileList;
notifyOnSendRequest();
}
bool MsgSenderController::addFile(const std::string &file)
{
- std::string newFilePath = m_WorkingDir->addFile(file);
- bool isValid = !newFilePath.empty();
- if (isValid)
- m_Files.push_back(std::move(newFilePath));
+ bool isValid = FileUtils::isExists(file);
+ if (isValid) {
+ std::string newFilePath = m_WorkingDir->addFile(file);
+ isValid = !newFilePath.empty();
+ if (isValid)
+ m_Files.push_back(std::move(newFilePath));
+ } else {
+ MSG_LOG_ERROR("File path is not valid: ", file);
+ }
return isValid;
}
return {};
}
- MSG_LOG("");
if (m_Files.empty()) {
- MSG_LOG("");
// Text messages:
auto textList = MsgUtils::splitUtf8String(m_Text, maxMsgSize);
for (auto &&text : textList) {
}
}
} else {
- MSG_LOG("");
// Create MMS:
auto mms = msgEngine.getComposer().createMms();
if (mms) {