[empathy] Don't use geoclue's timestamp



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]