Add Api for ItemInfo 71/201871/6
authorSukHyung, Kang <shine.kang@samsung.com>
Wed, 20 Mar 2019 09:35:39 +0000 (18:35 +0900)
committerSukHyung, Kang <shine.kang@samsung.com>
Fri, 22 Mar 2019 00:42:48 +0000 (09:42 +0900)
Change-Id: Ib51ef18a4d286d3b7a787c7b11f7fc9a4bcb7ce0
Signed-off-by: SukHyung, Kang <shine.kang@samsung.com>
notification-ex/abstract_item.cc
notification-ex/abstract_item.h
notification-ex/iitem_info.h
notification-ex/iitem_info_internal.h
notification-ex/item_info.cc
notification-ex/item_info_internal.h
unittest/src/test_abstract_item.cc

index 5c1f0f2..6b625b8 100644 (file)
@@ -35,7 +35,6 @@
 #define ABSTRACT_ITEM_TYPE_KEY "__ABSTRACT_ITEM_TYPE_KEY__"
 #define ABSTRACT_ITEM_ID_KEY "__ABSTRACT_ITEM_ID_KEY__"
 #define ABSTRACT_ITEM_UID_KEY "__ABSTRACT_ITEM_UID_KEY__"
-#define ABSTRACT_ITEM_REQUEST_ID_KEY "__ABSTRACT_ITEM_REQUEST_ID_KEY__"
 #define ABSTRACT_ITEM_TIME_KEY "__ABSTRACT_ITEM_TIME_KEY__"
 #define ABSTRACT_ITEM_SENDER_APPID_KEY "__ABSTRACT_ITEM_SENDER_APPID_KEY__"
 #define ABSTRACT_ITEM_CHANNEL_KEY "__ABSTRACT_ITEM_CHANNEL_KEY__"
@@ -70,6 +69,7 @@
 #define ABSTRACT_ITEM_LED_COLOR_B_KEY "__ABSTRACT_ITEM_LED_COLOR_B_KEY__"
 #define ABSTRACT_ITEM_LED_IS_EXIST_KEY "__ABSTRACT_ITEM_LED_IS_EXIST_KEY__"
 #define ABSTRACT_ITEM_ACTION_KEY "__ABSTRACT_ITEM_ACTION_KEY__"
+#define ABSTRACT_ITEM_HIDE_VIEWER_KEY "__ABSTRACT_ITEM_HIDE_VIEWER_KEY__"
 #define ABSTRACT_ITEM_TRUE "TRUE"
 
 using namespace std;
@@ -132,7 +132,6 @@ Bundle AbstractItem::Serialize() const {
   b.Add(ABSTRACT_ITEM_HIDE_TIME_KEY, to_string(impl_->hide_time_));
   b.Add(ABSTRACT_ITEM_DELETE_TIME_KEY, to_string(impl_->delete_time_));
   b.Add(ABSTRACT_ITEM_UID_KEY, to_string(impl_->uid_));
-  b.Add(ABSTRACT_ITEM_REQUEST_ID_KEY, to_string(impl_->request_id_));
 
   timeinfo = localtime(&impl_->time_);
   strftime (buf, sizeof(buf), "%s", timeinfo);
@@ -148,9 +147,7 @@ Bundle AbstractItem::Serialize() const {
     b.Add(ABSTRACT_ITEM_VIBRATION_PATH_KEY, impl_->vibration_path_);
 
   b.Add(ABSTRACT_ITEM_VISIBLE_KEY, to_string((int)impl_->visible_));
-
   b.Add(ABSTRACT_ITEM_ENABLE_KEY, to_string((int)impl_->enable_));
-
   b.Add(ABSTRACT_ITEM_POLICY_KEY, to_string((int)impl_->policy_));
 
   if (impl_->receiver_group_list_.size() != 0) {
@@ -209,6 +206,17 @@ Bundle AbstractItem::Serialize() const {
       reinterpret_cast<char*>(impl_->action_->Serialize().ToRaw().first.get()));
   }
 
+  if (impl_->hide_viewer_list_.size() != 0) {
+    vector<string> arr;
+
+    for (auto& i : impl_->hide_viewer_list_) {
+      string viewer = i;
+
+      arr.push_back(viewer);
+    }
+    b.Add(ABSTRACT_ITEM_HIDE_VIEWER_KEY, arr);
+  }
+
   return b;
 }
 
@@ -230,7 +238,6 @@ void AbstractItem::Deserialize(Bundle b) {
   impl_->sound_path_ = b.GetString(ABSTRACT_ITEM_SOUND_PATH_KEY);
   impl_->vibration_path_ = b.GetString(ABSTRACT_ITEM_VIBRATION_PATH_KEY);
   impl_->uid_ = stoi(b.GetString(ABSTRACT_ITEM_UID_KEY));
-  impl_->request_id_ = stoi(b.GetString(ABSTRACT_ITEM_REQUEST_ID_KEY));
 
   time_s = b.GetString(ABSTRACT_ITEM_TIME_KEY);
   strptime(time_s.c_str(), "%s", &timeinfo);
@@ -244,10 +251,9 @@ void AbstractItem::Deserialize(Bundle b) {
 
   impl_->enable_ = (bool)stoi(b.GetString(ABSTRACT_ITEM_ENABLE_KEY));
 
-  vector<string> str_arr = b.GetStringArray(ABSTRACT_ITEM_RECEIVER_GROUP_KEY);
-
-  if (str_arr.size() != 0) {
-    for (string str : str_arr) {
+  vector<string> receiver_group = b.GetStringArray(ABSTRACT_ITEM_RECEIVER_GROUP_KEY);
+  if (receiver_group.size() != 0) {
+    for (string str : receiver_group) {
       impl_->receiver_group_list_.push_back(str);
     }
   }
@@ -285,9 +291,15 @@ void AbstractItem::Deserialize(Bundle b) {
   }
 
   string action_str = b.GetString(ABSTRACT_ITEM_ACTION_KEY);
-
   if (!action_str.empty())
     impl_->action_ = ActionInflator::Create(Bundle(action_str));
+
+  vector<string> hide_viewer = b.GetStringArray(ABSTRACT_ITEM_HIDE_VIEWER_KEY);
+  if (hide_viewer.size() != 0) {
+    for (string str : hide_viewer) {
+      impl_->hide_viewer_list_.push_back(str);
+    }
+  }
 }
 
 string AbstractItem::GetId() const {
@@ -402,17 +414,5 @@ void AbstractItem::SetSenderAppId(std::string sender_appid) {
   impl_->sender_appid_ = sender_appid;
 }
 
-time_t AbstractItem::GetTime() {
-  return impl_->time_;
-}
-
-int AbstractItem::GetUid() {
-  return impl_->uid_;
-}
-
-void AbstractItem::SetUid(int uid) {
-  impl_->uid_ = uid;
-}
-
 }  // namespace item
 }  // namespace notification
index dd8bf24..98d3ad2 100644 (file)
@@ -255,9 +255,6 @@ class EXPORT_API AbstractItem {
   void SetSenderAppId(std::string sender_appid);
   std::string GetTag();
   void SetTag();
-  time_t GetTime();
-  int GetUid();
-  void SetUid(int uid);
 
  private:
   class Impl;
index b6b096b..e1e40ff 100644 (file)
 #ifndef NOTIFICATION_EX_IITEM_INFO_H_
 #define NOTIFICATION_EX_IITEM_INFO_H_
 
+#include <time.h>
+
 namespace notification {
 namespace item {
 
 class EXPORT_API IItemInfo {
  public:
   virtual ~IItemInfo() = default;
-  virtual int GetVersion() const = 0;
-  virtual void SetVersion(int ver) = 0;
+  virtual int GetHideTime() const = 0;
+  virtual void SetHideTime(int hide_time) = 0;
+  virtual int GetDeleteTime() const = 0;
+  virtual void SetDeleteTime(int delete_time)  = 0;
+  virtual time_t GetTime() const = 0;
 };
 
 }  // namespace item
index cf584e5..39b22b0 100644 (file)
@@ -29,13 +29,13 @@ namespace item {
 class EXPORT_API IItemInfoInternal : public IItemInfo {
  public:
   virtual ~IItemInfoInternal() = default;
-  virtual void SetHideTime(int hide_time) = 0;
-  virtual int GetHideTime() const = 0;
-  virtual void SetDeleteTime(int delete_time)  = 0;
-  virtual int GetDeleteTime() const = 0;
+  virtual int GetUid() const = 0;
+  virtual void SetUid(int uid) = 0;
+  virtual int GetVersion() const = 0;
+  virtual void SetVersion(int ver) = 0;
   virtual void AddHideViewer(std::string appid) = 0;
-  virtual void RemoveHideViewer(std::string appid) = 0;
   virtual std::list<std::string> GetHideViewerList() const = 0;
+  virtual void SetTime(time_t time) = 0;
 };
 
 }  // namespace item
index 13cfd0b..94a900c 100644 (file)
@@ -33,6 +33,21 @@ namespace item {
 
 AbstractItem::Impl::ItemInfo::ItemInfo(AbstractItem::Impl* impl) : impl_(impl) {
 }
+int AbstractItem::Impl::ItemInfo::GetUid() const {
+  return impl_->uid_;
+}
+
+void AbstractItem::Impl::ItemInfo::SetUid(int uid) {
+  impl_->uid_ = uid;
+}
+
+time_t AbstractItem::Impl::ItemInfo::GetTime() const {
+  return impl_->time_;
+}
+
+void AbstractItem::Impl::ItemInfo::SetTime(time_t time) {
+  impl_->time_ = time;
+}
 
 int AbstractItem::Impl::ItemInfo::GetVersion() const {
   return impl_->version_;
@@ -67,10 +82,6 @@ void AbstractItem::Impl::ItemInfo::AddHideViewer(std::string appid) {
   impl_->hide_viewer_list_.push_back(appid);
 }
 
-void AbstractItem::Impl::ItemInfo::RemoveHideViewer(std::string appid) {
-  impl_->hide_viewer_list_.remove(appid);
-}
-
 std::list<std::string> AbstractItem::Impl::ItemInfo::GetHideViewerList() const {
   return impl_->hide_viewer_list_;
 }
index 10b0c4f..fad736d 100644 (file)
@@ -27,6 +27,10 @@ class AbstractItem::Impl::ItemInfo : public IItemInfoInternal {
  public:
   ItemInfo(AbstractItem::Impl* impl);
   virtual ~ItemInfo() = default;
+  int GetUid() const override;
+  void SetUid(int uid) override;
+  time_t GetTime() const override;
+  void SetTime(time_t time) override;
   int GetVersion() const override;
   void SetVersion(int ver) override;
   void SetHideTime(int hide_time) override;
@@ -34,7 +38,6 @@ class AbstractItem::Impl::ItemInfo : public IItemInfoInternal {
   void SetDeleteTime(int delete_time) override;
   int GetDeleteTime() const override;
   void AddHideViewer(std::string appid) override;
-  void RemoveHideViewer(std::string appid) override;
   std::list<std::string> GetHideViewerList() const override;
 
  private:
index f66f1ec..252340b 100644 (file)
@@ -84,6 +84,7 @@ TEST_F(AbstractItemTest, SerializeDeserialize) {
   /* Serialize */
   app_control_h app_control;
   char* app_id = NULL;
+  time_t current_time;
 
   app_control_create(&app_control);
   app_control_set_app_id(app_control, "new_appid");
@@ -101,16 +102,21 @@ TEST_F(AbstractItemTest, SerializeDeserialize) {
   item.SetEnable(false);
   item.AddReceiver("receiver_1");
   item.AddReceiver("receiver_2");
+  std::static_pointer_cast<IItemInfoInternal>(item.GetInfo())->AddHideViewer("hide_1");
+  std::static_pointer_cast<IItemInfoInternal>(item.GetInfo())->AddHideViewer("hide_2");
   item.SetPolicy(AbstractItem::Policy::OnBootClear);
-  item.GetInfo()->SetVersion(3);
-  std::static_pointer_cast<IItemInfoInternal>(item.GetInfo())->SetHideTime(5);
-  std::static_pointer_cast<IItemInfoInternal>(item.GetInfo())->SetDeleteTime(9);
+  std::static_pointer_cast<IItemInfoInternal>(item.GetInfo())->SetVersion(3);
+  item.GetInfo()->SetHideTime(5);
+  item.GetInfo()->SetDeleteTime(9);
   item.SetChannel("channel99");
   item.SetSoundPath("soundpath");
   item.SetVibrationPath("vibrationpath");
-  item.SetUid(3);
+  std::static_pointer_cast<IItemInfoInternal>(item.GetInfo())->SetUid(3);
   item.SetSenderAppId("sender");
 
+  time(&current_time);
+  std::static_pointer_cast<IItemInfoInternal>(item.GetInfo())->SetTime(current_time);
+
   Color color2(150, 160, 170, 180);
 
   std::shared_ptr<LEDInfo> led = std::make_shared<LEDInfo>(color2);
@@ -127,18 +133,18 @@ TEST_F(AbstractItemTest, SerializeDeserialize) {
 
   ASSERT_EQ(gen_test->GetId(), "test_id");
   ASSERT_EQ(gen_test->GetType(), MY_ITEM_TYPE);
-  ASSERT_EQ(gen_test->GetUid(), 3);
+  ASSERT_EQ(std::static_pointer_cast<IItemInfoInternal>(gen_test->GetInfo())->GetUid(), 3);
   ASSERT_EQ(gen_test->GetEnable(), false);
   ASSERT_EQ(gen_test->GetVisible(),false);
   ASSERT_EQ(gen_test->GetPolicy(), AbstractItem::Policy::OnBootClear);
-  ASSERT_EQ(gen_test->GetInfo()->GetVersion(), 3);
-  ASSERT_EQ(std::static_pointer_cast<IItemInfoInternal>(gen_test->GetInfo())->GetHideTime(), 5);
-  ASSERT_EQ(std::static_pointer_cast<IItemInfoInternal>(gen_test->GetInfo())->GetDeleteTime(), 9);
+  ASSERT_EQ(std::static_pointer_cast<IItemInfoInternal>(gen_test->GetInfo())->GetVersion(), 3);
+  ASSERT_EQ(gen_test->GetInfo()->GetHideTime(), 5);
+  ASSERT_EQ(gen_test->GetInfo()->GetDeleteTime(), 9);
   ASSERT_EQ(gen_test->GetChannel(), "channel99");
   ASSERT_EQ(gen_test->GetSoundPath(), "soundpath");
   ASSERT_EQ(gen_test->GetVibrationPath(), "vibrationpath");
   ASSERT_EQ(gen_test->GetSenderAppId(), "sender");
-  ASSERT_EQ(gen_test->GetTime(), 0);
+  ASSERT_EQ(gen_test->GetInfo()->GetTime(), current_time);
 
   ASSERT_EQ(gen_test->GetStyle()->GetPadding().GetLeft(), 10);
   ASSERT_EQ(gen_test->GetStyle()->GetPadding().GetTop(), 20);
@@ -173,6 +179,19 @@ TEST_F(AbstractItemTest, SerializeDeserialize) {
     receiver2.pop_front();
   }
 
+  std::list<std::string> hide1 =
+      std::static_pointer_cast<IItemInfoInternal>(item.GetInfo())->GetHideViewerList();
+  std::list<std::string> hide2 =
+      std::static_pointer_cast<IItemInfoInternal>(gen_test->GetInfo())->GetHideViewerList();
+
+  ASSERT_EQ(hide1.size(), hide2.size());
+
+  for (unsigned int i = 0; i < hide1.size(); i++) {
+    ASSERT_EQ(hide1.front(), hide2.front());
+    hide1.pop_front();
+    hide2.pop_front();
+  }
+
   ASSERT_EQ(gen_test->GetAction()->GetType(), AbstractAction::Type::AppControl);
 
   std::shared_ptr<AppControlAction> ac =