aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-09-06 19:14:07 +0200
committerAleksander Morgado <aleksander@lanedo.com>2012-09-06 19:58:02 +0200
commit018d9b458f1c5456cf131659548c3dec09965aad (patch)
tree858ed618a30ca93daa145b4ae4f09e57ca4b3201
parentc9a80609d49ccf0c52f175b7d2a7a96b9756cd2a (diff)
sms: set state back to UNKNOWN when all SMS parts were deleted
-rw-r--r--src/mm-sms.c20
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);
}