From 07dad25b5df19f8c5a79351246c2cf65419dac98 Mon Sep 17 00:00:00 2001 From: Sascha Silbe Date: Mon, 09 Jan 2012 18:45:38 +0000 Subject: (Partial) fix for GSM connection time (see SL#2992) The connection time has apparently been off by a couple of hours (depending on the time zone; see SL#2992 [1]) ever since we had this feature (commit f5daf6e). This patch addresses the most important use case (controlling the GSM connection using the Sugar UI) by fixing the time format. If a system connection is used and brought up before Sugar starts, connection time calculation will still be off; this seems to be unfixable [1]. [1] http://mail.gnome.org/archives/networkmanager-list/2012-January/thread.html#00022 Signed-off-by: Sascha Silbe --- diff --git a/extensions/deviceicon/network.py b/extensions/deviceicon/network.py index 234b06b..c70db70 100644 --- a/extensions/deviceicon/network.py +++ b/extensions/deviceicon/network.py @@ -364,11 +364,10 @@ class GsmPalette(Palette): self.error_description_label.set_text(message) self.error_description_label.show() - def update_connection_time(self, connection_time=None): - if connection_time is not None: - formatted_time = connection_time.strftime('%H:%M:%S') - else: - formatted_time = '00:00:00' + def update_connection_time(self, connection_time=0): + """Set the time we have been connected for, in seconds""" + formatted_time = time.strftime('%H:%M:%S', + time.gmtime(connection_time)) text = _('Connected for %s') % (formatted_time, ) self.props.secondary_text = glib.markup_escape_text(text) @@ -888,8 +887,8 @@ class GsmDeviceView(TrayIcon): connection = network.find_gsm_connection() if connection is not None: connection.set_connected() - self._connection_timestamp = time.time() - \ - connection.get_settings().connection.timestamp + settings = connection.get_settings() + self._connection_timestamp = settings.connection.timestamp self._connection_time_handler = gobject.timeout_add_seconds( \ 1, self.__connection_timecount_cb) self._palette.update_connection_time() @@ -932,9 +931,7 @@ class GsmDeviceView(TrayIcon): self._palette.update_stats(in_bytes, out_bytes) def __connection_timecount_cb(self): - self._connection_timestamp = self._connection_timestamp + 1 - connection_time = \ - datetime.datetime.fromtimestamp(self._connection_timestamp) + connection_time = time.time() - self._connection_timestamp self._palette.update_connection_time(connection_time) return True -- cgit v0.9.1