#define LOG_TAG "NOTIFICATION_EX"
#define CHATMESSAGE_NAME_KEY "__CHATMESSAGE_NAME_KEY__"
#define CHATMESSAGE_TEXT_KEY "__CHATMESSAGE_TEXT_KEY__"
-#define CHATMESSAGE_DATA_KEY "__CHATMESSAGE_DATA_KEY__"
+#define CHATMESSAGE_IMAGE_KEY "__CHATMESSAGE_IMAGE_KEY__"
#define CHATMESSAGE_TIME_KEY "__CHATMESSAGE_TIME_KEY__"
#define CHATMESSAGE_TYPE_KEY "__CHATMESSAGE_TYPE_KEY__"
namespace notification {
namespace item {
-ChatMessageItem::ChatMessageItem(std::string id, std::shared_ptr<TextItem> name,
- std::shared_ptr<TextItem> text, std::shared_ptr<TextItem> data,
- std::shared_ptr<TimeItem> time, Type type,
- std::shared_ptr<AbstractAction> action)
+ChatMessageItem::ChatMessageItem(std::string id,
+ std::shared_ptr<TextItem> name, std::shared_ptr<TextItem> text,
+ std::shared_ptr<ImageItem> image, std::shared_ptr<TimeItem> time,
+ Type type, std::shared_ptr<AbstractAction> action)
: AbstractItem(id, action),
- impl_(new Impl(this, name, text, data, time, type)) {
+ impl_(new Impl(this, name, text, image, time, type)) {
}
ChatMessageItem::Impl::Impl(ChatMessageItem* parent,
std::shared_ptr<TextItem> name, std::shared_ptr<TextItem> text,
- std::shared_ptr<TextItem> data, std::shared_ptr<TimeItem> time, Type type)
- : parent_(parent), name_(name), text_(text), data_(data), time_(time),
+ std::shared_ptr<ImageItem> image, std::shared_ptr<TimeItem> time, Type type)
+ : parent_(parent), name_(name), text_(text), image_(image), time_(time),
type_(type) {
LOGI("ChatMessageItem impl created");
}
reinterpret_cast<char*>(impl_->name_->Serialize().ToRaw().first.get()));
b.Add(CHATMESSAGE_TEXT_KEY,
reinterpret_cast<char*>(impl_->text_->Serialize().ToRaw().first.get()));
- b.Add(CHATMESSAGE_DATA_KEY,
- reinterpret_cast<char*>(impl_->data_->Serialize().ToRaw().first.get()));
+ b.Add(CHATMESSAGE_IMAGE_KEY,
+ reinterpret_cast<char*>(impl_->image_->Serialize().ToRaw().first.get()));
b.Add(CHATMESSAGE_TIME_KEY,
reinterpret_cast<char*>(impl_->time_->Serialize().ToRaw().first.get()));
b.Add(CHATMESSAGE_TYPE_KEY, std::to_string((int)impl_->type_));
text.get()->Deserialize(Bundle(b.GetString(CHATMESSAGE_TEXT_KEY)));
impl_->text_ = std::static_pointer_cast<TextItem>(text);
- std::shared_ptr<AbstractItem> data =
- FactoryManager::GetInst().CreateItem(AbstractItem::Text);
- data.get()->Deserialize(Bundle(b.GetString(CHATMESSAGE_DATA_KEY)));
- impl_->data_ = std::static_pointer_cast<TextItem>(data);
+ std::shared_ptr<AbstractItem> image =
+ FactoryManager::GetInst().CreateItem(AbstractItem::Image);
+ image.get()->Deserialize(Bundle(b.GetString(CHATMESSAGE_IMAGE_KEY)));
+ impl_->image_ = std::static_pointer_cast<ImageItem>(image);
std::shared_ptr<AbstractItem> time =
FactoryManager::GetInst().CreateItem(AbstractItem::Time);
return *(impl_->text_);
}
-TextItem& ChatMessageItem::GetDataItem() const {
- return *(impl_->data_);
+ImageItem& ChatMessageItem::GetImageItem() const {
+ return *(impl_->image_);
}
TimeItem& ChatMessageItem::GetTimeItem() const {
#include "notification-ex/abstract_item.h"
#include "notification-ex/text_item.h"
+#include "notification-ex/image_item.h"
#include "notification-ex/time_item.h"
namespace notification {
public:
ChatMessageItem(std::string id, std::shared_ptr<TextItem> name,
- std::shared_ptr<TextItem> text, std::shared_ptr<TextItem> data,
+ std::shared_ptr<TextItem> text, std::shared_ptr<ImageItem> image,
std::shared_ptr<TimeItem> time, Type type,
std::shared_ptr<AbstractAction> action = std::shared_ptr<AbstractAction>({}));
virtual ~ChatMessageItem();
AbstractItem& FindByID(std::string id) override;
TextItem& GetNameItem() const;
TextItem& GetTextItem() const;
- TextItem& GetDataItem() const;
+ ImageItem& GetImageItem() const;
TimeItem& GetTimeItem() const;
Type GetMessageType() const;
item = new ChatMessageItem(id,
std::make_shared<TextItem>("name_id", "name"),
std::make_shared<TextItem>("text_id", "text"),
- std::make_shared<TextItem>("data_id", "data"),
+ std::make_shared<ImageItem>("image_id", "path"),
std::make_shared<TimeItem>(current_time),type);
}
virtual void TearDown() {
ChatMessageItem& message = static_cast<ChatMessageItem&>(child);
ASSERT_EQ(message.GetNameItem().GetContents(), "name");
ASSERT_EQ(message.GetTextItem().GetContents(), "text");
- ASSERT_EQ(message.GetDataItem().GetContents(), "data");
+ ASSERT_EQ(message.GetImageItem().GetImagePath(), "path");
ASSERT_EQ(message.GetMessageType(), ChatMessageItemTest::type);
}
auto gen_message = std::static_pointer_cast<ChatMessageItem>(gen_item);
ASSERT_EQ(gen_message->GetNameItem().GetContents(), "name");
ASSERT_EQ(gen_message->GetTextItem().GetContents(), "text");
- ASSERT_EQ(gen_message->GetDataItem().GetContents(), "data");
+ ASSERT_EQ(gen_message->GetImageItem().GetImagePath(), "path");
ASSERT_EQ(gen_message->GetTimeItem().GetTime(), ChatMessageItemTest::current_time);
ASSERT_EQ(gen_message->GetMessageType(), ChatMessageItemTest::type);
}