New DBUS API for update_folder_counts method.
authorJosé Dapena Paz <jdapena@igalia.com>
Mon, 18 Jan 2010 13:13:04 +0000 (14:13 +0100)
committerJosé Dapena Paz <jdapena@igalia.com>
Mon, 18 Jan 2010 13:35:11 +0000 (14:35 +0100)
debian/control
debian/control.maemo-fremantle
libmodest-dbus-client/configure.ac
libmodest-dbus-client/debian/changelog
libmodest-dbus-client/src/libmodest-dbus-api.h
libmodest-dbus-client/src/libmodest-dbus-client.c
libmodest-dbus-client/src/libmodest-dbus-client.h
src/dbus_api/modest-dbus-callbacks.c

index efa4df4..ae61120 100644 (file)
@@ -2,7 +2,7 @@ Source: modest
 Section: mail
 Priority: optional
 Maintainer: Moises Martinez <moises.martinez@nokia.com>
-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,
index 836f8a4..5eba975 100644 (file)
@@ -2,7 +2,7 @@ Source: modest
 Section: mail
 Priority: optional
 Maintainer: Moises Martinez <moises.martinez@nokia.com>
-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,
index e820261..a088195 100644 (file)
 # 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])
 
 
index a876179..57a18b6 100644 (file)
@@ -1,3 +1,9 @@
+libmodest-dbus-client (4:3.2.1-0) unstable; urgency=low
+
+  * Add API method UpdateFolderCounts
+
+ -- Moises Martinez <moises.martinez@nokia.com>  Mon, 18 Jan 2010 14:00:44 +0100
+
 libmodest-dbus-client (4:3.2.0-0) unstable; urgency=low
 
   * Week 43, 2009 - third release
index b06ac27..d4bda8c 100644 (file)
@@ -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__ */
index 8b5f330..7775f56 100644 (file)
@@ -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 };
index d196b17..33c7c56 100644 (file)
@@ -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);
+
 
 
 /**
index 597ad77..8bff930 100644 (file)
@@ -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;