aboutsummaryrefslogtreecommitdiff
path: root/src/mm-sms.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-sms.c')
-rw-r--r--src/mm-sms.c53
1 files changed, 44 insertions, 9 deletions
diff --git a/src/mm-sms.c b/src/mm-sms.c
index aa0bf289..29733e80 100644
--- a/src/mm-sms.c
+++ b/src/mm-sms.c
@@ -186,10 +186,10 @@ sms_delete_parts_context_complete_and_free (SmsDeletePartsContext *ctx)
g_free (ctx);
}
-gboolean
-mm_sms_delete_parts_finish (MMSms *self,
- GAsyncResult *res,
- GError **error)
+static gboolean
+sms_delete_finish (MMSms *self,
+ GAsyncResult *res,
+ GError **error)
{
return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
}
@@ -254,10 +254,10 @@ delete_next_part (SmsDeletePartsContext *ctx)
g_free (cmd);
}
-void
-mm_sms_delete_parts (MMSms *self,
- GAsyncReadyCallback callback,
- gpointer user_data)
+static void
+sms_delete (MMSms *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
{
SmsDeletePartsContext *ctx;
@@ -265,7 +265,7 @@ mm_sms_delete_parts (MMSms *self,
ctx->result = g_simple_async_result_new (G_OBJECT (self),
callback,
user_data,
- mm_sms_delete_parts);
+ sms_delete);
ctx->self = g_object_ref (self);
ctx->modem = g_object_ref (self->priv->modem);
@@ -278,6 +278,38 @@ mm_sms_delete_parts (MMSms *self,
/*****************************************************************************/
+gboolean
+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);
+
+ return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
+}
+
+void
+mm_sms_delete (MMSms *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ if (MM_SMS_GET_CLASS (self)->delete &&
+ MM_SMS_GET_CLASS (self)->delete_finish) {
+ MM_SMS_GET_CLASS (self)->delete (self, callback, user_data);
+ return;
+ }
+
+ g_simple_async_report_error_in_idle (G_OBJECT (self),
+ callback,
+ user_data,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_UNSUPPORTED,
+ "Deleting SMS is not supported by this modem");
+}
+
+/*****************************************************************************/
+
static gboolean
assemble_sms (MMSms *self,
GError **error)
@@ -606,6 +638,9 @@ mm_sms_class_init (MMSmsClass *klass)
object_class->finalize = finalize;
object_class->dispose = dispose;
+ klass->delete = sms_delete;
+ klass->delete_finish = sms_delete_finish;
+
properties[PROP_CONNECTION] =
g_param_spec_object (MM_SMS_CONNECTION,
"Connection",