#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);
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,
}
}
-static inline int app_create(void)
+static inline int app_create(int restart_count)
{
int ret;
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);
if (ret < 0)
WARN("shortcut [%d]", ret);
- ret = notification_service_init();
+ ret = notification_service_init(restart_count);
if (ret < 0)
WARN("notification [%d]", ret);
vconf_get_int(VCONFKEY_MASTER_RESTART_COUNT, &restart_count);
- app_create();
+ app_create(restart_count);
sd_notify(0, "READY=1");
restart_count++;
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();
}
}
};
-HAPI int notification_ex_service_init() {
+HAPI int notification_ex_service_init(int restart_count) {
facade_ = new DPMFacade(
unique_ptr<Reporter>(
new DPMReporter(
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();
* 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;
}
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);