From: hyunho Date: Tue, 2 Jul 2019 04:37:52 +0000 (+0900) Subject: Add Get by a channel feature to a manager X-Git-Tag: submit/tizen/20190709.093200~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=510c94a36e214f82b24c2ad291312f0bf83893d7;p=platform%2Fcore%2Fapi%2Fnotification.git Add Get by a channel feature to a manager Change-Id: Ifbc6177a7f362f02b0376dc9f5d9259e1d621579 Signed-off-by: hyunho --- diff --git a/notification-ex/db_manager.cc b/notification-ex/db_manager.cc index 34ceedb4..3710d36a 100644 --- a/notification-ex/db_manager.cc +++ b/notification-ex/db_manager.cc @@ -44,6 +44,7 @@ " root_id TEXT NOT NULL,\n" \ " app_id TEXT NOT NULL,\n" \ " uid INTEGER,\n" \ + " channel TEXT,\n" \ " priv_id INTEGER,\n" \ " pkg_id TEXT,\n" \ " policy INTEGER,\n" \ @@ -404,11 +405,12 @@ int DBManager::InsertNotification(list> addedItem Bundle b = i->Serialize(); query = sqlite3_mprintf("INSERT INTO noti_ex_list" - " (root_id, app_id, uid, priv_id, pkg_id, policy, data, insert_time)" - " VALUES (%Q, %Q, %d, %d, %Q, %d, %Q, %d)", + " (root_id, app_id, uid, channel, priv_id, pkg_id, policy, data, insert_time)" + " VALUES (%Q, %Q, %d, %Q, %d, %Q, %d, %Q, %d)", i->GetId().c_str(), i->GetSenderAppId().c_str(), uid, + i->GetChannel().c_str(), util::GetQuarkFromString(i->GetId() + to_string(uid)), GetPkgId(i->GetSenderAppId(),uid).c_str(), static_cast(i->GetPolicy()), @@ -584,10 +586,11 @@ int DBManager::UpdateNotification(shared_ptr updatedItem) { Bundle b = updatedItem->Serialize(); query = sqlite3_mprintf("UPDATE noti_ex_list SET" - " priv_id = %d, pkg_id = %Q, policy = %d, data = %Q, insert_time = %d" + " priv_id = %d, pkg_id = %Q, channel = %Q, policy = %d, data = %Q, insert_time = %d" " WHERE root_id = %Q AND app_id = %Q AND uid = %d", util::GetQuarkFromString(updatedItem->GetId() + to_string(uid)), GetPkgId(updatedItem->GetSenderAppId(), uid).c_str(), + updatedItem->GetChannel().c_str(), static_cast(updatedItem->GetPolicy()), reinterpret_cast(b.ToRaw().first.get()), static_pointer_cast(updatedItem->GetInfo())->GetTime(), @@ -704,7 +707,8 @@ list> DBManager::GetNotificationList return item_list; } -list> DBManager::GetNotificationList(uid_t uid) { +list> DBManager::GetNotificationList( + uid_t uid, string channel) { int ret, sim_mode; char* query; list> item_list; @@ -716,15 +720,22 @@ list> DBManager::GetNotificationList(uid_t uid) { LOGI("vconf_get_int"); } - if (sim_mode == VCONFKEY_TELEPHONY_SIM_INSERTED) { - query = sqlite3_mprintf("SELECT data FROM noti_ex_list WHERE uid = %d" - " ORDER BY insert_time DESC", uid); - } else { - query = sqlite3_mprintf("SELECT data FROM noti_ex_list" - " WHERE uid = %d AND (policy & %d) == 0 ORDER BY insert_time DESC", - uid, static_cast(item::AbstractItem::Policy::SimMode)); + string channel_query; + if (!channel.empty()) + channel_query = " AND channel = '" + channel + "' "; + + string simmode_query; + if (sim_mode != VCONFKEY_TELEPHONY_SIM_INSERTED) { + simmode_query = " AND (policy & " + + to_string(static_cast(item::AbstractItem::Policy::SimMode)) + + ") == 0 "; } + string query_str = "SELECT data FROM noti_ex_list WHERE uid = %d " + + channel_query + + simmode_query; + + query = sqlite3_mprintf(query_str.c_str(), uid); if (!query) { LOGE("OOM - sql query"); return item_list; diff --git a/notification-ex/db_manager.h b/notification-ex/db_manager.h index cf687e1e..f2751ada 100644 --- a/notification-ex/db_manager.h +++ b/notification-ex/db_manager.h @@ -43,7 +43,7 @@ class EXPORT_API DBManager { static int GetCount(const std::string& root_id, const std::string& app_id, uid_t uid, int* count); static int GetCount(const std::string& app_id, uid_t uid, int* count); static int DeleteNotification(std::shared_ptr deletedItem); - static std::list> GetNotificationList(uid_t uid); + static std::list> GetNotificationList(uid_t uid, std::string channel = ""); static std::list> GetNotificationList(std::string app_id, uid_t uid); static std::list> GetNotificationList(std::string app_id, std::string root_id, uid_t uid); diff --git a/notification-ex/manager.cc b/notification-ex/manager.cc index 8067aa6b..9bf5cac1 100644 --- a/notification-ex/manager.cc +++ b/notification-ex/manager.cc @@ -118,8 +118,8 @@ unique_ptr Manager::FindByRootID(string id) { return move(gen_item); } -list> Manager::Get() { - EventInfo info(EventInfo::Get, util::GetAppId(), ""); +list> Manager::Get(string channel) { + EventInfo info(EventInfo::Get, util::GetAppId(), channel); list result = impl_->sender_->Request(info); list> gen_list; for (auto& i : result) { diff --git a/notification-ex/manager.h b/notification-ex/manager.h index 9fd69a31..c0092264 100644 --- a/notification-ex/manager.h +++ b/notification-ex/manager.h @@ -39,7 +39,7 @@ class EXPORT_API Manager : public IEventObserver { std::unique_ptr listener, std::string receiver_group = ""); virtual ~Manager(); - std::list> Get(); + std::list> Get(std::string channel = ""); int Update(std::shared_ptr noti); int Delete(std::shared_ptr noti); int DeleteAll();