X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=libmodest-dbus-client%2Flibmodest-dbus-client.c;h=35041ac8ca30ac2e07955331dbc48a646d48cac8;hp=85d9447d47d300cb79d5368825b25e6c722be0a8;hb=3449c1e0b6acdd87e28263928d9cf079f075e06f;hpb=1928e560fa179d8a6427ff3a1300f739b6fb847a diff --git a/libmodest-dbus-client/libmodest-dbus-client.c b/libmodest-dbus-client/libmodest-dbus-client.c index 85d9447..35041ac 100644 --- a/libmodest-dbus-client/libmodest-dbus-client.c +++ b/libmodest-dbus-client/libmodest-dbus-client.c @@ -61,60 +61,19 @@ static gchar* get_attachments_string (GSList *attachments) return attachments_str; } - -/* TODO: Is this actually used by anything? - * I guess that everything uses *_compose_mail() instead. murrayc. - */ - + /** - * libmodest_dbus_client_send_mail: + * libmodest_dbus_client_mail_to: * @osso_context: a valid #osso_context_t object. - * @to: The Recipients (From: line) - * @cc: Recipients for carbon copies - * @bcc: Recipients for blind carbon copies - * @subject: Subject line - * @body: The actual body of the mail to send - * @attachments: Additional list of attachments + * @mailto_uri: A mailto URI. * * This function will try to do a remote procedure call (rpc) - * into modest (or start it if necessary) and send a new - * email with the supplied parameters. + * into modest (or start it if necessary) and open a composer + * window with the supplied parameters prefilled. * * Return value: Whether or not the rpc call to modest * was successfull **/ -gboolean -libmodest_dbus_client_send_mail (osso_context_t *osso_context, const gchar *to, const gchar *cc, - const gchar *bcc, const gchar* subject, const gchar* body, GSList *attachments) -{ - gchar *attachments_str = get_attachments_string(attachments); - - osso_rpc_t retval; - const osso_return_t ret = osso_rpc_run_with_defaults(osso_context, - MODEST_DBUS_NAME, - MODEST_DBUS_METHOD_SEND_MAIL, &retval, - DBUS_TYPE_STRING, to, - DBUS_TYPE_STRING, cc, - DBUS_TYPE_STRING, bcc, - DBUS_TYPE_STRING, subject, - DBUS_TYPE_STRING, body, - DBUS_TYPE_STRING, attachments_str, - 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); - - g_free (attachments_str); - - return TRUE; -} - gboolean libmodest_dbus_client_mail_to (osso_context_t *osso_context, const gchar *mailto_uri) { @@ -144,8 +103,8 @@ libmodest_dbus_client_mail_to (osso_context_t *osso_context, const gchar *mailto * @cc: Recipients for carbon copies * @bcc: Recipients for blind carbon copies * @subject: Subject line - * @body: The actual body of the mail to send - * @attachments: Additional list of attachments + * @body: The actual body of the mail to compose. + * @attachments: Additional list of attachments. A list of URI strings. * * This function will try to do a remote procedure call (rpc) * into modest (or start it if necessary) and open a composer @@ -159,10 +118,10 @@ libmodest_dbus_client_compose_mail (osso_context_t *osso_context, const gchar *t const gchar *bcc, const gchar* subject, const gchar* body, GSList *attachments) { osso_rpc_t retval; - + gchar *attachments_str = get_attachments_string(attachments); - const osso_return_t ret = osso_rpc_run_with_defaults(osso_context, + const osso_return_t ret = osso_rpc_run_with_defaults(osso_context, MODEST_DBUS_NAME, MODEST_DBUS_METHOD_COMPOSE_MAIL, &retval, DBUS_TYPE_STRING, to, @@ -172,18 +131,19 @@ libmodest_dbus_client_compose_mail (osso_context_t *osso_context, const gchar *t DBUS_TYPE_STRING, body, DBUS_TYPE_STRING, attachments_str, DBUS_TYPE_INVALID); - + + g_free (attachments_str); + 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); - g_free (attachments_str); - + return TRUE; } @@ -263,6 +223,30 @@ libmodest_dbus_client_open_default_inbox (osso_context_t *osso_context) return TRUE; } +gboolean +libmodest_dbus_client_open_account (osso_context_t *osso_context, + const gchar *account_id) +{ + osso_rpc_t retval; + const osso_return_t ret = + osso_rpc_run_with_defaults(osso_context, + MODEST_DBUS_NAME, + MODEST_DBUS_METHOD_OPEN_ACCOUNT, &retval, + DBUS_TYPE_STRING, account_id, + 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; +} + /** * libmodest_dbus_client_delete_message: * @osso_context: a valid #osso_context_t object. @@ -617,7 +601,6 @@ libmodest_dbus_client_search (osso_context_t *osso_ctx, DBusMessage *msg; dbus_bool_t res; - DBusError err; DBusConnection *con; DBusMessageIter iter; DBusMessageIter child; @@ -656,8 +639,8 @@ libmodest_dbus_client_search (osso_context_t *osso_ctx, folder = ""; } - sd_v = start_date; - ed_v = end_date; + sd_v = (dbus_int64_t) start_date; + ed_v = (dbus_int64_t) end_date; flags_v = (dbus_int32_t) flags; size_v = (dbus_uint32_t) min_size; @@ -672,24 +655,30 @@ libmodest_dbus_client_search (osso_context_t *osso_ctx, dbus_message_set_auto_start (msg, TRUE); - dbus_error_init (&err); - - timeout = 1000; //XXX - osso_rpc_get_timeout (osso_ctx, &timeout); + /* Use a long timeout (2 minutes) because the search currently + * gets folders and messages from the servers. */ + timeout = 120000; //milliseconds. + //osso_rpc_get_timeout (osso_ctx, &timeout); + /*printf("DEBUG: %s: Before dbus_connection_send_with_reply_and_block().\n", + __FUNCTION__); */ + /* TODO: Detect the timeout somehow. */ + DBusError err; + dbus_error_init (&err); reply = dbus_connection_send_with_reply_and_block (con, msg, timeout, &err); + /* printf("DEBUG: %s: dbus_connection_send_with_reply_and_block() finished.\n", + __FUNCTION__); */ dbus_message_unref (msg); - - if (reply == NULL) { - //ULOG_ERR_F("dbus_connection_send_with_reply_and_block error: %s", err.message); - //XXX to GError?! - return FALSE; - } + if (!reply) { + g_warning("%s: dbus_connection_send_with_reply_and_block() error: %s", + __FUNCTION__, err.message); + return FALSE; + } switch (dbus_message_get_type (reply)) { @@ -895,8 +884,10 @@ libmodest_dbus_client_get_folders (osso_context_t *osso_ctx, dbus_message_set_auto_start (msg, TRUE); - gint timeout = 1000; //XXX - osso_rpc_get_timeout (osso_ctx, &timeout); + /* Use a long timeout (2 minutes) because the search currently + * gets folders from the servers. */ + gint timeout = 120000; + //osso_rpc_get_timeout (osso_ctx, &timeout); DBusError err; dbus_error_init (&err); @@ -909,8 +900,8 @@ libmodest_dbus_client_get_folders (osso_context_t *osso_ctx, msg = NULL; if (reply == NULL) { - //ULOG_ERR_F("dbus_connection_send_with_reply_and_block error: %s", err.message); - //XXX to GError?! + g_warning("%s: dbus_connection_send_with_reply_and_block() error:\n %s", + __FUNCTION__, err.message); return FALSE; }