aboutsummaryrefslogtreecommitdiff
path: root/libmm-glib/mm-modem.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmm-glib/mm-modem.c')
-rw-r--r--libmm-glib/mm-modem.c48
1 files changed, 29 insertions, 19 deletions
diff --git a/libmm-glib/mm-modem.c b/libmm-glib/mm-modem.c
index 37c5ab79..0f2f420a 100644
--- a/libmm-glib/mm-modem.c
+++ b/libmm-glib/mm-modem.c
@@ -2226,9 +2226,13 @@ modem_get_sim_ready (GDBusConnection *connection,
GSimpleAsyncResult *simple)
{
GError *error = NULL;
- MMSim *sim;
+ GObject *sim;
+ GObject *source_object;
+
+ source_object = g_async_result_get_source_object (res);
+ sim = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, &error);
+ g_object_unref (source_object);
- sim = mm_gdbus_sim_proxy_new_finish (res, &error);
if (error)
g_simple_async_result_take_error (simple, error);
else
@@ -2278,15 +2282,17 @@ mm_modem_get_sim (MMModem *self,
return;
}
- mm_gdbus_sim_proxy_new (
- g_dbus_proxy_get_connection (
- G_DBUS_PROXY (self)),
- G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
- MM_DBUS_SERVICE,
- sim_path,
- cancellable,
- (GAsyncReadyCallback)modem_get_sim_ready,
- result);
+ g_async_initable_new_async (MM_TYPE_SIM,
+ G_PRIORITY_DEFAULT,
+ cancellable,
+ (GAsyncReadyCallback)modem_get_sim_ready,
+ result,
+ "g-flags", G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
+ "g-name", MM_DBUS_SERVICE,
+ "g-connection", g_dbus_proxy_get_connection (G_DBUS_PROXY (self)),
+ "g-object-path", sim_path,
+ "g-interface-name", "org.freedesktop.ModemManager1.Sim",
+ NULL);
}
/**
@@ -2307,6 +2313,7 @@ mm_modem_get_sim_sync (MMModem *self,
GCancellable *cancellable,
GError **error)
{
+ GObject *sim;
const gchar *sim_path;
g_return_val_if_fail (MM_IS_MODEM (self), NULL);
@@ -2315,14 +2322,17 @@ mm_modem_get_sim_sync (MMModem *self,
if (!sim_path)
return NULL;
- return (MMSim *)(mm_gdbus_sim_proxy_new_sync (
- g_dbus_proxy_get_connection (
- G_DBUS_PROXY (self)),
- G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
- MM_DBUS_SERVICE,
- sim_path,
- cancellable,
- error));
+ sim = g_initable_new (MM_TYPE_SIM,
+ cancellable,
+ error,
+ "g-flags", G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
+ "g-name", MM_DBUS_SERVICE,
+ "g-connection", g_dbus_proxy_get_connection (G_DBUS_PROXY (self)),
+ "g-object-path", sim_path,
+ "g-interface-name", "org.freedesktop.ModemManager1.Sim",
+ NULL);
+
+ return (sim ? MM_SIM (sim) : NULL);
}
/*****************************************************************************/