]> git.0d.be Git - empathy.git/commitdiff
location-manager: use geoclue_master_client_create_address_async()
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Wed, 14 Mar 2012 14:42:05 +0000 (15:42 +0100)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Thu, 15 Mar 2012 07:48:47 +0000 (08:48 +0100)
https://bugzilla.gnome.org/show_bug.cgi?id=671994

libempathy-gtk/empathy-location-manager.c

index 9c72d301070d39492ccd2cf2f869ba98812692ae..22b2c2362570fefd40543283e3f3081495b86343 100644 (file)
@@ -475,6 +475,28 @@ update_resources (EmpathyLocationManager *self)
   set_requirements (self, update_resources_set_requirements_cb);
 }
 
+static void
+create_address_cb (GeoclueMasterClient *client,
+    GeoclueAddress *address,
+    GError *error,
+    gpointer userdata)
+{
+  EmpathyLocationManager *self = userdata;
+
+  if (error != NULL)
+    {
+      DEBUG ("Failed to create GeoclueAddress: %s", error->message);
+      return;
+    }
+
+  self->priv->gc_address = address;
+
+  g_signal_connect (G_OBJECT (self->priv->gc_address), "address-changed",
+      G_CALLBACK (address_changed_cb), self);
+
+  self->priv->geoclue_is_setup = TRUE;
+}
+
 static void
 create_position_cb (GeoclueMasterClient *client,
     GeocluePosition *position,
@@ -495,19 +517,8 @@ create_position_cb (GeoclueMasterClient *client,
       G_CALLBACK (position_changed_cb), self);
 
   /* Get updated when the address changes */
-  self->priv->gc_address = geoclue_master_client_create_address (
-      self->priv->gc_client, &error);
-  if (self->priv->gc_address == NULL)
-    {
-      DEBUG ("Failed to create GeoclueAddress: %s", error->message);
-      g_error_free (error);
-      return;
-    }
-
-  g_signal_connect (G_OBJECT (self->priv->gc_address), "address-changed",
-      G_CALLBACK (address_changed_cb), self);
-
-  self->priv->geoclue_is_setup = TRUE;
+  geoclue_master_client_create_address_async (self->priv->gc_client,
+      create_address_cb, self);
 }
 
 static void