diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-09-06 19:14:07 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-09-06 19:58:02 +0200 |
commit | 018d9b458f1c5456cf131659548c3dec09965aad (patch) | |
tree | 858ed618a30ca93daa145b4ae4f09e57ca4b3201 | |
parent | c9a80609d49ccf0c52f175b7d2a7a96b9756cd2a (diff) |
sms: set state back to UNKNOWN when all SMS parts were deleted
-rw-r--r-- | src/mm-sms.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/mm-sms.c b/src/mm-sms.c index bf4488e1..31dcdb78 100644 --- a/src/mm-sms.c +++ b/src/mm-sms.c @@ -863,12 +863,9 @@ delete_next_part (SmsDeletePartsContext *ctx) MM_CORE_ERROR_FAILED, "Couldn't delete %u parts from this SMS", ctx->n_failed); - else { - /* We do change the state of this SMS back to UNKNOWN, as it is no - * longer stored in the device */ - mm_gdbus_sms_set_state (MM_GDBUS_SMS (ctx->self), MM_SMS_STATE_UNKNOWN); + else g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE); - } + sms_delete_parts_context_complete_and_free (ctx); return; } @@ -911,8 +908,17 @@ mm_sms_delete_finish (MMSms *self, GAsyncResult *res, GError **error) { - if (MM_SMS_GET_CLASS (self)->delete_finish) - return MM_SMS_GET_CLASS (self)->delete_finish (self, res, error); + if (MM_SMS_GET_CLASS (self)->delete_finish) { + gboolean deleted; + + deleted = MM_SMS_GET_CLASS (self)->delete_finish (self, res, error); + if (deleted) + /* We do change the state of this SMS back to UNKNOWN, as it is no + * longer stored in the device */ + mm_gdbus_sms_set_state (MM_GDBUS_SMS (self), MM_SMS_STATE_UNKNOWN); + + return deleted; + } return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error); } |