[empathy] Don't use geoclue's timestamp
- From: Pierre-Luc Beaudoin <plbeaudoin src gnome org>
- To: svn-commits-list gnome org
- Subject: [empathy] Don't use geoclue's timestamp
- Date: Mon, 1 Jun 2009 11:45:29 -0400 (EDT)
commit d64c42ef982318c23562986a4b82a0f4f77f7122
Author: Pierre-Luc Beaudoin <pierre-luc beaudoin collabora co uk>
Date: Wed May 27 21:42:47 2009 -0400
Don't use geoclue's timestamp
It turns out that the timestamp are not reliable (they
are often set to 0).
---
libempathy-gtk/empathy-location-manager.c | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/libempathy-gtk/empathy-location-manager.c b/libempathy-gtk/empathy-location-manager.c
index 040bc61..899850b 100644
--- a/libempathy-gtk/empathy-location-manager.c
+++ b/libempathy-gtk/empathy-location-manager.c
@@ -283,14 +283,16 @@ empathy_location_manager_get_default (void)
}
static void
-update_timestamp (EmpathyLocationManager *location_manager,
- int timestamp)
+update_timestamp (EmpathyLocationManager *location_manager)
{
EmpathyLocationManagerPriv *priv;
priv = GET_PRIV (location_manager);
GValue *new_value;
- gint64 stamp64 = (gint64) timestamp;
+ gint64 stamp64;
+ time_t timestamp;
+ timestamp = time (NULL);
+ stamp64 = (gint64) timestamp;
new_value = tp_g_value_slice_new (G_TYPE_INT64);
g_value_set_int64 (new_value, stamp64);
g_hash_table_insert (priv->location, g_strdup (EMPATHY_LOCATION_TIMESTAMP),
@@ -377,7 +379,7 @@ position_changed_cb (GeocluePosition *position,
DEBUG ("\t - Accuracy: %f", mean);
}
- update_timestamp (location_manager, timestamp);
+ update_timestamp (location_manager);
publish_location_to_all_accounts (EMPATHY_LOCATION_MANAGER (location_manager),
FALSE);
}
@@ -438,9 +440,12 @@ address_changed_cb (GeoclueAddress *address,
priv = GET_PRIV (location_manager);
g_hash_table_remove_all (priv->location);
+ if (g_hash_table_size (details) == 0)
+ return;
+
g_hash_table_foreach (details, address_foreach_cb, (gpointer)location_manager);
- update_timestamp (location_manager, timestamp);
+ update_timestamp (location_manager);
publish_location_to_all_accounts (EMPATHY_LOCATION_MANAGER (location_manager),
FALSE);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]