From: Murray Cumming Date: Thu, 3 May 2007 10:40:33 +0000 (+0000) Subject: 2007-05-03 Murray Cumming X-Git-Tag: git_migration_finished~3718 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=7dcb08b5d1082fdb9a991b2e67ba9f7d14bd1272;hp=56fd99766e8082e2f9e34c50d209b8410cf1fbf8 2007-05-03 Murray Cumming * src/maemo/modest-platform.c: (modest_platform_set_update_interval): * src/modest-defs.h: Store the alarmd cookie ID in gconf, because it aparently stays valid between application instances, so we can use this to remove and reset it later. According to a maemo-developers email from David Weinehall. pmo-trunk-r1743 --- diff --git a/ChangeLog2 b/ChangeLog2 index 296f1e9..c947032 100644 --- a/ChangeLog2 +++ b/ChangeLog2 @@ -1,5 +1,14 @@ 2007-05-03 Murray Cumming + * src/maemo/modest-platform.c: + (modest_platform_set_update_interval): + * src/modest-defs.h: Store the alarmd cookie ID in gconf, because it + aparently stays valid between application instances, so we can use this + to remove and reset it later. According to a maemo-developers email from + David Weinehall. + +2007-05-03 Murray Cumming + * configure.ac: Depend on libalarm for Maemo. * src/dbus_api/modest-dbus-api.h: diff --git a/src/maemo/modest-platform.c b/src/maemo/modest-platform.c index 691da5d..8a0f938 100644 --- a/src/maemo/modest-platform.c +++ b/src/maemo/modest-platform.c @@ -45,9 +45,7 @@ #include #include #include - -static cookie_t alarm_cookie = 0; - + gboolean modest_platform_init (void) { @@ -643,12 +641,19 @@ modest_platform_run_sort_dialog (GtkWindow *parent_window, gboolean modest_platform_set_update_interval (guint minutes) { + ModestConf *conf = modest_runtime_get_conf (); + if (!conf) + return FALSE; + + cookie_t alarm_cookie = modest_conf_get_int (conf, MODEST_CONF_ALARM_ID, NULL); + /* Delete any existing alarm, * because we will replace it: */ if (alarm_cookie) { /* TODO: What does the alarm_event_del() return value mean? */ alarm_event_del(alarm_cookie); alarm_cookie = 0; + modest_conf_set_int (conf, MODEST_CONF_ALARM_ID, 0, NULL); } /* 0 means no updates: */ @@ -684,9 +689,29 @@ gboolean modest_platform_set_update_interval (guint minutes) alarm_cookie = alarm_event_add (&event); + /* Store the alarm ID in GConf, so we can remove it later: + * This is apparently valid between application instances. */ + modest_conf_set_int (conf, MODEST_CONF_ALARM_ID, alarm_cookie, NULL); + if (!alarm_cookie) { /* Error */ - printf ("Error setting alarm event. Error code: '%d'\n", alarmd_get_error ()); + const alarm_error_t alarm_error = alarmd_get_error (); + printf ("Error setting alarm event. Error code: '%d'\n", alarm_error); + + /* Give people some clue: */ + /* The alarm API should have a function for this: */ + if (alarm_error == ALARMD_ERROR_DBUS) { + printf (" ALARMD_ERROR_DBUS: An error with D-Bus occurred, probably coudn't get a D-Bus connection.\n"); + } else if (alarm_error == ALARMD_ERROR_CONNECTION) { + printf (" ALARMD_ERROR_CONNECTION: Could not contact alarmd via D-Bus.\n"); + } else if (alarm_error == ALARMD_ERROR_INTERNAL) { + printf (" ALARMD_ERROR_INTERNAL: Some alarmd or libalarm internal error, possibly a version mismatch.\n"); + } else if (alarm_error == ALARMD_ERROR_MEMORY) { + printf (" ALARMD_ERROR_MEMORY: A memory allocation failed.\n"); + } else if (alarm_error == ALARMD_ERROR_ARGUMENT) { + printf (" ALARMD_ERROR_ARGUMENT: An argument given by caller was invalid.\n"); + } + return FALSE; } diff --git a/src/modest-defs.h b/src/modest-defs.h index 77acaf2..fb7f0e3 100644 --- a/src/modest-defs.h +++ b/src/modest-defs.h @@ -69,6 +69,12 @@ #define MODEST_CONF_SHOW_TOOLBAR MODEST_CONF_NAMESPACE "/show_toolbar" #define MODEST_CONF_SHOW_TOOLBAR_FULLSCREEN MODEST_CONF_NAMESPACE "/show_toolbar_fullscreen" +/* This is the alarmd cookie, obtained from alarm_event_add(), + * which apparently remains valid between application instances. + * We store it so that we can remove it later. + */ +#define MODEST_CONF_ALARM_ID MODEST_CONF_NAMESPACE "/alarm_id" + /* * in the maemo case, we try to replace this * with the device name