aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-07-19 15:41:37 +0200
committerAleksander Morgado <aleksander@lanedo.com>2012-08-06 20:07:26 +0200
commite70fea145e3c113a37e515d5511268dc8915c591 (patch)
treed13d39f98f418a44aae0a91cad6ffadc97e640dc
parent268db7fe0b29df8ab5962e8ebac89c6a0b3a9ebc (diff)
samsung: user Icera-based timezone loading
-rw-r--r--plugins/icera/mm-iface-icera.c12
-rw-r--r--plugins/samsung/mm-broadband-modem-samsung.c11
2 files changed, 19 insertions, 4 deletions
diff --git a/plugins/icera/mm-iface-icera.c b/plugins/icera/mm-iface-icera.c
index aa588250..febe5377 100644
--- a/plugins/icera/mm-iface-icera.c
+++ b/plugins/icera/mm-iface-icera.c
@@ -665,7 +665,8 @@ void mm_iface_icera_modem_reset (MMIfaceModem *self,
static gboolean
parse_tlts_query_reply (const gchar *response,
gchar **iso8601,
- MMNetworkTimezone **tz)
+ MMNetworkTimezone **tz,
+ GError **error)
{
gint year;
gint month;
@@ -710,7 +711,11 @@ parse_tlts_query_reply (const gchar *response,
return TRUE;
}
- mm_warn ("Unknown *TLTS response: %s", response);
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Unknown *TLTS response: %s",
+ response);
return FALSE;
}
@@ -722,7 +727,6 @@ mm_iface_icera_modem_time_load_network_timezone_finish (MMIfaceModemTime *self,
const gchar *response;
MMNetworkTimezone *tz;
-
response = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, NULL);
if (!response) {
/* We'll assume we can retry a bit later */
@@ -733,7 +737,7 @@ mm_iface_icera_modem_time_load_network_timezone_finish (MMIfaceModemTime *self,
return NULL;
}
- return (parse_tlts_query_reply (response, NULL, &tz) ? tz : NULL);
+ return (parse_tlts_query_reply (response, NULL, &tz, error) ? tz : NULL);
}
void
diff --git a/plugins/samsung/mm-broadband-modem-samsung.c b/plugins/samsung/mm-broadband-modem-samsung.c
index d2ace40e..2a74f87c 100644
--- a/plugins/samsung/mm-broadband-modem-samsung.c
+++ b/plugins/samsung/mm-broadband-modem-samsung.c
@@ -29,18 +29,21 @@
#include "mm-iface-icera.h"
#include "mm-iface-modem.h"
#include "mm-iface-modem-3gpp.h"
+#include "mm-iface-modem-time.h"
#include "mm-modem-helpers.h"
#include "mm-log.h"
static void iface_icera_init (MMIfaceIcera *iface);
static void iface_modem_init (MMIfaceModem *iface);
static void iface_modem_3gpp_init (MMIfaceModem3gpp *iface);
+static void iface_modem_time_init (MMIfaceModemTime *iface);
static MMIfaceModem3gpp *iface_modem_3gpp_parent;
G_DEFINE_TYPE_EXTENDED (MMBroadbandModemSamsung, mm_broadband_modem_samsung, MM_TYPE_BROADBAND_MODEM, 0,
G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM, iface_modem_init)
G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_3GPP, iface_modem_3gpp_init)
+ G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_TIME, iface_modem_time_init)
G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_ICERA, iface_icera_init));
/*****************************************************************************/
@@ -726,6 +729,14 @@ iface_modem_init (MMIfaceModem *iface)
}
static void
+iface_modem_time_init (MMIfaceModemTime *iface)
+{
+ /* Use default Icera implementation */
+ iface->load_network_timezone = mm_iface_icera_modem_time_load_network_timezone;
+ iface->load_network_timezone_finish = mm_iface_icera_modem_time_load_network_timezone_finish;
+}
+
+static void
iface_icera_init (MMIfaceIcera *iface)
{
}