aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mm-sms.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/mm-sms.c b/src/mm-sms.c
index b1182e4e..bf4488e1 100644
--- a/src/mm-sms.c
+++ b/src/mm-sms.c
@@ -213,8 +213,14 @@ handle_send_ready (MMSms *self,
if (!MM_SMS_GET_CLASS (self)->send_finish (self, res, &error))
g_dbus_method_invocation_take_error (ctx->invocation, error);
- else
+ else {
+ /* Transition from Unknown->Sent or Stored->Sent */
+ if (mm_gdbus_sms_get_state (MM_GDBUS_SMS (ctx->self)) == MM_SMS_STATE_UNKNOWN ||
+ mm_gdbus_sms_get_state (MM_GDBUS_SMS (ctx->self)) == MM_SMS_STATE_STORED)
+ mm_gdbus_sms_set_state (MM_GDBUS_SMS (ctx->self), MM_SMS_STATE_SENT);
+
mm_gdbus_sms_complete_send (MM_GDBUS_SMS (ctx->self), ctx->invocation);
+ }
handle_send_context_free (ctx);
}