diff options
author | Pierre-Luc Beaudoin <pierre-luc@pierlux.com> | 2009-05-27 23:57:14 +0800 |
---|---|---|
committer | Pierre-Luc Beaudoin <pierre-luc@pierlux.com> | 2009-05-28 00:52:10 +0800 |
commit | d13ba3658eded1649daff133cb04c76f6e3a906b (patch) | |
tree | cb5d54411cee9d12c97d3561e4e5452b6173cca7 /src | |
parent | 46663cfe8954970c167251c987f8b6998dcdf341 (diff) | |
download | gsoc2013-empathy-d13ba3658eded1649daff133cb04c76f6e3a906b.tar gsoc2013-empathy-d13ba3658eded1649daff133cb04c76f6e3a906b.tar.gz gsoc2013-empathy-d13ba3658eded1649daff133cb04c76f6e3a906b.tar.bz2 gsoc2013-empathy-d13ba3658eded1649daff133cb04c76f6e3a906b.tar.lz gsoc2013-empathy-d13ba3658eded1649daff133cb04c76f6e3a906b.tar.xz gsoc2013-empathy-d13ba3658eded1649daff133cb04c76f6e3a906b.tar.zst gsoc2013-empathy-d13ba3658eded1649daff133cb04c76f6e3a906b.zip |
Move the geoclue geocoding in EmpathyTpContactFactory
This code needs to be run when ever there is a new location available
It makes more sens for it to be there. This makes the geolocation informtion
ritcher as it can be displayed on a map.
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 4 | ||||
-rw-r--r-- | src/empathy-map-view.c | 115 |
2 files changed, 1 insertions, 118 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index ef6311f29..8973d533f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -4,7 +4,6 @@ AM_CPPFLAGS = \ -I$(top_srcdir) \ $(EMPATHY_CFLAGS) \ $(LIBNOTIFY_CFLAGS) \ - $(GEOCLUE_CFLAGS) \ $(LIBCHAMPLAIN_CFLAGS) \ $(DISABLE_DEPRECATED) $(WARN_CFLAGS) @@ -15,8 +14,7 @@ LDADD = \ $(top_builddir)/extensions/libemp-extensions.la \ $(LIBNOTIFY_LIBS) \ $(EMPATHY_LIBS) \ - $(LIBCHAMPLAIN_LIBS) \ - $(GEOCLUE_LIBS) + $(LIBCHAMPLAIN_LIBS) bin_PROGRAMS = \ empathy \ diff --git a/src/empathy-map-view.c b/src/empathy-map-view.c index 692bdc0f2..c55e5c73a 100644 --- a/src/empathy-map-view.c +++ b/src/empathy-map-view.c @@ -27,9 +27,6 @@ #include <champlain/champlain.h> #include <champlain-gtk/champlain-gtk.h> #include <clutter-gtk/gtk-clutter-embed.h> -#if HAVE_GEOCLUE -#include <geoclue/geoclue-geocode.h> -#endif #include <telepathy-glib/util.h> #include <libempathy/empathy-contact.h> @@ -71,8 +68,6 @@ static void map_view_zoom_out_cb (GtkWidget *widget, static void map_view_contact_location_notify (GObject *gobject, GParamSpec *arg1, gpointer user_data); -static gchar * get_dup_string (GHashTable *location, - gchar *key); GtkWidget * empathy_map_view_show (void) @@ -170,74 +165,6 @@ map_view_destroy_cb (GtkWidget *widget, g_slice_free (EmpathyMapView, window); } -#if HAVE_GEOCLUE -#define GEOCODE_SERVICE "org.freedesktop.Geoclue.Providers.Yahoo" -#define GEOCODE_PATH "/org/freedesktop/Geoclue/Providers/Yahoo" - -/* This callback is called by geoclue when it found a position - * for the given address. A position is necessary for a contact - * to show up on the map - */ -static void -map_view_geocode_cb (GeoclueGeocode *geocode, - GeocluePositionFields fields, - double latitude, - double longitude, - double altitude, - GeoclueAccuracy *accuracy, - GError *error, - gpointer userdata) -{ - GValue *new_value; - GHashTable *location; - - location = empathy_contact_get_location (EMPATHY_CONTACT (userdata)); - - if (error != NULL) - { - DEBUG ("Error geocoding location : %s", error->message); - return; - } - - if (fields & GEOCLUE_POSITION_FIELDS_LONGITUDE) - { - new_value = tp_g_value_slice_new_double (longitude); - g_hash_table_replace (location, EMPATHY_LOCATION_LON, new_value); - DEBUG ("\t - Longitude: %f", longitude); - } - if (fields & GEOCLUE_POSITION_FIELDS_LATITUDE) - { - new_value = tp_g_value_slice_new_double (latitude); - g_hash_table_replace (location, EMPATHY_LOCATION_LAT, new_value); - DEBUG ("\t - Latitude: %f", latitude); - } - if (fields & GEOCLUE_POSITION_FIELDS_ALTITUDE) - { - new_value = tp_g_value_slice_new_double (altitude); - g_hash_table_replace (location, EMPATHY_LOCATION_ALT, new_value); - DEBUG ("\t - Altitude: %f", altitude); - } - - /* Don't change the accuracy as we used an address to get this position */ - - g_object_notify (userdata, "location"); - g_object_unref (geocode); -} -#endif - -static gchar * -get_dup_string (GHashTable *location, - gchar *key) -{ - GValue *value; - - value = g_hash_table_lookup (location, key); - if (value != NULL) - return g_value_dup_string (value); - - return NULL; -} - static void map_view_marker_update_position (ChamplainMarker *marker, EmpathyContact *contact) @@ -248,48 +175,6 @@ map_view_marker_update_position (ChamplainMarker *marker, location = empathy_contact_get_location (contact); -#if HAVE_GEOCLUE - gchar *str; - GHashTable *address; - - value = g_hash_table_lookup (location, EMPATHY_LOCATION_LON); - if (value == NULL) - { - static GeoclueGeocode *geocode; - if (geocode == NULL) - { - geocode = geoclue_geocode_new (GEOCODE_SERVICE, GEOCODE_PATH); - g_object_add_weak_pointer (G_OBJECT (geocode), (gpointer*)&geocode); - } - else - g_object_ref (geocode); - - address = geoclue_address_details_new(); - - str = get_dup_string (location, EMPATHY_LOCATION_COUNTRY); - if (str != NULL) - g_hash_table_insert (address, g_strdup ("country"), str); - - str = get_dup_string (location, EMPATHY_LOCATION_POSTAL_CODE); - if (str != NULL) - g_hash_table_insert (address, g_strdup ("postalcode"), str); - - str = get_dup_string (location, EMPATHY_LOCATION_LOCALITY); - if (str != NULL) - g_hash_table_insert (address, g_strdup ("locality"), str); - - str = get_dup_string (location, EMPATHY_LOCATION_STREET); - if (str != NULL) - g_hash_table_insert (address, g_strdup ("street"), str); - - geoclue_geocode_address_to_position_async (geocode, address, - map_view_geocode_cb, contact); - - g_hash_table_unref (address); - return; - } -#endif - if (location == NULL || g_hash_table_size (location) == 0) { |