Fix data initialization bug 02/215902/4
authorJusung Son <jusung07.son@samsung.com>
Thu, 17 Oct 2019 10:04:47 +0000 (19:04 +0900)
committerjusung son <jusung07.son@samsung.com>
Mon, 21 Oct 2019 02:39:27 +0000 (02:39 +0000)
- DPM only need to initialize the data when the device boots up

Change-Id: I7411c3b1f6faadd3f6a10ab1b21d9492059bf6b8
Signed-off-by: Jusung Son <jusung07.son@samsung.com>
include/notification_ex_service.h
include/notification_service.h
src/main.cc
src/notification_ex_service.cc
src/notification_service.c [changed mode: 0644->0755]

index c6b3477..9defe26 100644 (file)
@@ -19,7 +19,7 @@
 #ifndef NOTIFICATION_EX_SERVICE_H_
 #define NOTIFICATION_EX_SERVICE_H_
 
-extern int notification_ex_service_init(void);
+extern int notification_ex_service_init(int restart_count);
 extern int notification_ex_service_fini(void);
 extern GDBusConnection* notification_ex_service_get_gdbus_connection(void);
 
index 6d2e44e..d4c411f 100755 (executable)
@@ -23,7 +23,7 @@
 extern "C" {
 #endif
 
-int notification_service_init(void);
+int notification_service_init(int restart_count);
 int notification_service_fini(void);
 
 int notification_add_noti(GVariant *parameters, GVariant **reply_body,
index eb33ba7..945c259 100755 (executable)
@@ -63,7 +63,7 @@ static void lang_key_changed_cb(keynode_t *node, void *first)
        }
 }
 
-static inline int app_create(void)
+static inline int app_create(int restart_count)
 {
        int ret;
 
@@ -73,7 +73,7 @@ static inline int app_create(void)
 
        lang_key_changed_cb(NULL, NULL);
 
-       ret = notification_ex_service_init();
+       ret = notification_ex_service_init(restart_count);
        if (ret < 0)
                WARN("notification_ex [%d]", ret);
 
@@ -84,7 +84,7 @@ static inline int app_create(void)
        if (ret < 0)
                WARN("shortcut [%d]", ret);
 
-       ret = notification_service_init();
+       ret = notification_service_init(restart_count);
        if (ret < 0)
                WARN("notification [%d]", ret);
 
@@ -208,7 +208,7 @@ int main(int argc, char *argv[])
 
        vconf_get_int(VCONFKEY_MASTER_RESTART_COUNT, &restart_count);
 
-       app_create();
+       app_create(restart_count);
        sd_notify(0, "READY=1");
 
        restart_count++;
index 1d36b95..67faf91 100644 (file)
@@ -48,10 +48,13 @@ using namespace notification::item;
 
 class DPMFacade {
  public:
-  DPMFacade(unique_ptr<Reporter> reporter, unique_ptr<Manager> manager)
+  DPMFacade(unique_ptr<Reporter> reporter, unique_ptr<Manager> manager, int restartCount)
       : reporter_(move(reporter)), manager_(move(manager)) {
     DBManager::InitializeDB();
-    DBManager::InitializeData();
+
+    if (restartCount == 0)
+      DBManager::InitializeData();
+
     hide_map_ = DBManager::GetHideMap();
   }
 
@@ -359,7 +362,7 @@ class DPMManager : public Manager {
   }
 };
 
-HAPI int notification_ex_service_init() {
+HAPI int notification_ex_service_init(int restart_count) {
   facade_ = new DPMFacade(
     unique_ptr<Reporter>(
       new DPMReporter(
@@ -368,7 +371,8 @@ HAPI int notification_ex_service_init() {
     unique_ptr<Manager>(
       new DPMManager(
         unique_ptr<DBusSender>(new DBusSender(Reporter::GetPath())),
-        unique_ptr<DBusEventListener>(new DBusEventListener(Manager::GetPath())))));
+        unique_ptr<DBusEventListener>(new DBusEventListener(Manager::GetPath())))),
+        restart_count);
 
   notification_init_default_viewer();
 
old mode 100644 (file)
new mode 100755 (executable)
index 73cbc87..f082d75
@@ -2624,7 +2624,7 @@ static gboolean __refresh_setting_table(gpointer data)
  * MAIN THREAD
  * Do not try to do any other operation in these functions
  */
-HAPI int notification_service_init(void)
+HAPI int notification_service_init(int restart_count)
 {
        int ret, i;
        int count = 0;
@@ -2644,7 +2644,10 @@ HAPI int notification_service_init(void)
        }
 
        notification_init_default_viewer();
-       notification_noti_init_data();
+
+       if (restart_count == 0)
+               notification_noti_init_data();
+
        notification_system_setting_init_system_setting_table(tzplatform_getuid(TZ_SYS_DEFAULT_USER));
 
        ret = notification_system_setting_get_dnd_schedule_enabled_uid(&uids, &count);