From: José Dapena Paz Date: Mon, 18 Jan 2010 13:13:04 +0000 (+0100) Subject: New DBUS API for update_folder_counts method. X-Git-Tag: 3.2.10-1~12 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=527ab5d715bf2302443e229919b0f33cc6c03eed;hp=e4620a534ca85516c0ac1e53141aad0b5b7a9491 New DBUS API for update_folder_counts method. --- diff --git a/debian/control b/debian/control index efa4df4..ae61120 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: modest Section: mail Priority: optional Maintainer: Moises Martinez -Build-Depends: debhelper (>= 4.0.0), cdbs, libmodest-dbus-client-dev (>= 3.2.0), gnome-common, gtkhtml3.14-dev, +Build-Depends: debhelper (>= 4.0.0), cdbs, libmodest-dbus-client-dev (>= 3.2.1), gnome-common, gtkhtml3.14-dev, libconic0-dev, libhildon1-dev, libdbus-1-dev, libdbus-glib-1-dev, libebook-dev, osso-af-settings, libedataserver-dev, libhildonnotify-dev, libgconf2-dev, libglib2.0-dev, libosso-gnomevfs2-dev, libhildonmime-dev, libtinymail-1.0-0-dev, libtinymail-camel-1.0-0-dev, libtinymail-maemo-1.0-0-dev, libtinymailui-1.0-0-dev, libtinymail-gnomevfs-1.0-0-dev, diff --git a/debian/control.maemo-fremantle b/debian/control.maemo-fremantle index 836f8a4..5eba975 100644 --- a/debian/control.maemo-fremantle +++ b/debian/control.maemo-fremantle @@ -2,7 +2,7 @@ Source: modest Section: mail Priority: optional Maintainer: Moises Martinez -Build-Depends: debhelper (>= 4.0.0), cdbs, libmodest-dbus-client-dev, gnome-common, gtkhtml3.14-dev, libconic0-dev, libhildon1-dev, libdbus-1-dev, +Build-Depends: debhelper (>= 4.0.0), cdbs, libmodest-dbus-client-dev (>= 3.2.1), gnome-common, gtkhtml3.14-dev, libconic0-dev, libhildon1-dev, libdbus-1-dev, libdbus-glib-1-dev, libebook-dev, osso-af-settings, libedataserver-dev, libhildonnotify-dev, libgconf2-dev, libglib2.0-dev, libosso-abook-dev, libosso-gnomevfs2-dev, libhildonmime-dev, libprofile-dev, libtime-dev, libtinymail-1.0-0-dev, libtinymail-camel-1.0-0-dev, libtinymail-maemo-1.0-0-dev, libtinymailui-1.0-0-dev, libtinymail-gnomevfs-1.0-0-dev, libtinymailui-gtk-1.0-0-dev, wpeditor0, diff --git a/libmodest-dbus-client/configure.ac b/libmodest-dbus-client/configure.ac index e820261..a088195 100644 --- a/libmodest-dbus-client/configure.ac +++ b/libmodest-dbus-client/configure.ac @@ -26,12 +26,12 @@ # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -AC_INIT([libmodestclient],[3.2.0],[http://maemo.org]) +AC_INIT([libmodestclient],[3.2.1],[http://maemo.org]) AC_CONFIG_HEADERS([config.h]) m4_define([modest_api_major_version], [1]) m4_define([modest_api_minor_version], [99]) -m4_define([modest_api_micro_version], [2]) +m4_define([modest_api_micro_version], [3]) m4_define([modest_api_version], [modest_api_major_version.modest_api_minor_version.modest_api_micro_version]) diff --git a/libmodest-dbus-client/debian/changelog b/libmodest-dbus-client/debian/changelog index dad6035..3b4e6c1 100644 --- a/libmodest-dbus-client/debian/changelog +++ b/libmodest-dbus-client/debian/changelog @@ -1,3 +1,9 @@ +libmodest-dbus-client (4:3.2.1-0) unstable; urgency=low + + * Add API method UpdateFolderCounts + + -- Moises Martinez Mon, 18 Jan 2010 14:00:44 +0100 + libmodest-dbus-client (4:3.2.0-0) unstable; urgency=low * Week 45, 2009 - release diff --git a/libmodest-dbus-client/src/libmodest-dbus-api.h b/libmodest-dbus-client/src/libmodest-dbus-api.h index b06ac27..d4bda8c 100644 --- a/libmodest-dbus-client/src/libmodest-dbus-api.h +++ b/libmodest-dbus-client/src/libmodest-dbus-api.h @@ -117,4 +117,11 @@ enum ModestDbusDeleteMessageArguments **/ #define MODEST_DBUS_METHOD_TOP_APPLICATION "top_application" +#define MODEST_DBUS_METHOD_UPDATE_FOLDER_COUNTS "update_folder_counts" +enum ModestDbusUpdateFolderCountsArguments +{ + MODEST_DBUS_UPDATE_FOLDER_COUNTS_ARG_ACCOUNT_ID, + MODEST_DBUS_UPDATE_FOLDER_COUNTS_ARGS_COUNT +}; + #endif /* __MODEST_DBUS_API__ */ diff --git a/libmodest-dbus-client/src/libmodest-dbus-client.c b/libmodest-dbus-client/src/libmodest-dbus-client.c index 8b5f330..7775f56 100644 --- a/libmodest-dbus-client/src/libmodest-dbus-client.c +++ b/libmodest-dbus-client/src/libmodest-dbus-client.c @@ -230,6 +230,29 @@ libmodest_dbus_client_send_and_receive_full (osso_context_t *osso_context, } gboolean +libmodest_dbus_client_update_folder_counts (osso_context_t *osso_context, + const gchar *account) +{ + osso_rpc_t retval = { 0 }; + const osso_return_t ret = osso_rpc_run_with_defaults(osso_context, + MODEST_DBUS_NAME, + MODEST_DBUS_METHOD_UPDATE_FOLDER_COUNTS, &retval, + DBUS_TYPE_STRING, account, + DBUS_TYPE_INVALID); + + if (ret != OSSO_OK) { + printf("debug: %s: osso_rpc_run() failed.\n", __FUNCTION__); + return FALSE; + } else { + printf("debug: %s: osso_rpc_run() succeeded.\n", __FUNCTION__); + } + + osso_rpc_free_val(&retval); + + return TRUE; +} + +gboolean libmodest_dbus_client_open_default_inbox (osso_context_t *osso_context) { osso_rpc_t retval = { 0 }; diff --git a/libmodest-dbus-client/src/libmodest-dbus-client.h b/libmodest-dbus-client/src/libmodest-dbus-client.h index d196b17..33c7c56 100644 --- a/libmodest-dbus-client/src/libmodest-dbus-client.h +++ b/libmodest-dbus-client/src/libmodest-dbus-client.h @@ -119,6 +119,18 @@ gboolean libmodest_dbus_client_send_and_receive_full (osso_context_t *osso_conte const gchar *account, gboolean manual); +/** + * libmodest_dbus_client_update_folder_counts: + * @osso_context: a valid osso_context instance + * @account: the account name + * + * updates folder counts of @account. + * + * Returns: %TRUE upon success, %FALSE otherwise + */ +gboolean libmodest_dbus_client_update_folder_counts (osso_context_t *osso_context, + const gchar *account); + /** diff --git a/src/dbus_api/modest-dbus-callbacks.c b/src/dbus_api/modest-dbus-callbacks.c index d813c62..112a0a2 100644 --- a/src/dbus_api/modest-dbus-callbacks.c +++ b/src/dbus_api/modest-dbus-callbacks.c @@ -983,8 +983,6 @@ on_idle_send_receive(gpointer user_data) return FALSE; } - - static gint on_dbus_method_dump_send_queues (DBusConnection *con, DBusMessage *message) { @@ -1255,6 +1253,41 @@ on_send_receive_full (GArray *arguments, gpointer data, osso_rpc_t * retval) return OSSO_OK; } +static gboolean +on_idle_update_folder_counts (gpointer userdata) +{ + ModestMailOperation *mail_op; + gchar *account_id = (gchar *) userdata; + + mail_op = modest_mail_operation_new (NULL); + modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), + mail_op); + modest_mail_operation_update_folder_counts (mail_op, account_id); + g_object_unref (mail_op); + g_free (account_id); + + return FALSE; + +} + +static gint +on_update_folder_counts (GArray *arguments, gpointer data, osso_rpc_t * retval) +{ + osso_rpc_t val; + gchar *account_id; + + val = g_array_index (arguments, osso_rpc_t, MODEST_DBUS_SEND_RECEIVE_FULL_ARG_ACCOUNT_ID); + account_id = g_strdup (val.value.s); + + if (account_id != NULL) { + g_idle_add (on_idle_update_folder_counts, g_strdup (account_id)); + } + + g_free (account_id); + + return OSSO_OK; +} + static gint on_open_default_inbox(GArray * arguments, gpointer data, osso_rpc_t * retval) { @@ -1544,6 +1577,10 @@ modest_dbus_req_handler(const gchar * interface, const gchar * method, if (arguments->len != MODEST_DBUS_SEND_RECEIVE_FULL_ARGS_COUNT) goto param_error; return on_send_receive_full (arguments, data, retval); + } else if (g_ascii_strcasecmp (method, MODEST_DBUS_METHOD_UPDATE_FOLDER_COUNTS) == 0) { + if (arguments->len != MODEST_DBUS_UPDATE_FOLDER_COUNTS_ARGS_COUNT) + goto param_error; + return on_update_folder_counts (arguments, data, retval); } else if (g_ascii_strcasecmp (method, MODEST_DBUS_METHOD_COMPOSE_MAIL) == 0) { if (arguments->len != MODEST_DBUS_COMPOSE_MAIL_ARGS_COUNT) goto param_error;