aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mm-iface-modem-messaging.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/mm-iface-modem-messaging.c b/src/mm-iface-modem-messaging.c
index f63b115b..053b670c 100644
--- a/src/mm-iface-modem-messaging.c
+++ b/src/mm-iface-modem-messaging.c
@@ -110,6 +110,29 @@ handle_delete (MmGdbusModemMessaging *skeleton,
/*****************************************************************************/
+static gboolean
+handle_list (MmGdbusModemMessaging *skeleton,
+ GDBusMethodInvocation *invocation,
+ MMIfaceModemMessaging *self)
+{
+ GStrv paths;
+ MMSmsList *list = NULL;
+
+ g_object_get (self,
+ MM_IFACE_MODEM_MESSAGING_SMS_LIST, &list,
+ NULL);
+ g_assert (list != NULL);
+
+ paths = mm_sms_list_get_paths (list);
+ mm_gdbus_modem_messaging_complete_list (skeleton,
+ invocation,
+ (const gchar *const *)paths);
+ g_strfreev (paths);
+ return TRUE;
+}
+
+/*****************************************************************************/
+
gboolean
mm_iface_modem_messaging_take_part (MMIfaceModemMessaging *self,
MMSmsPart *sms_part,
@@ -589,6 +612,10 @@ interface_initialization_step (InitializationContext *ctx)
"handle-delete",
G_CALLBACK (handle_delete),
ctx->self);
+ g_signal_connect (ctx->skeleton,
+ "handle-list",
+ G_CALLBACK (handle_list),
+ ctx->self);
/* Finally, export the new interface */
mm_gdbus_object_skeleton_set_modem_messaging (MM_GDBUS_OBJECT_SKELETON (ctx->self),