aboutsummaryrefslogtreecommitdiff
path: root/src/mm-iface-modem.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-10-22 17:06:14 +0200
committerAleksander Morgado <aleksander@lanedo.com>2012-10-22 19:06:49 +0200
commit219aff47e075a5bfc7b7fdc2c7f251a5133c93ab (patch)
treefbdc39060f2974c07f6bc569c1111170243ef01e /src/mm-iface-modem.c
parentb317996a8e18ba039d3d8ffb9968139d6d0bf9c1 (diff)
iface-modem: try to avoid showing 'any' as current bands
Just expose the list of supported bands when the current bands is set to 'any'.
Diffstat (limited to 'src/mm-iface-modem.c')
-rw-r--r--src/mm-iface-modem.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c
index f29ad273..79f54aab 100644
--- a/src/mm-iface-modem.c
+++ b/src/mm-iface-modem.c
@@ -1526,8 +1526,20 @@ set_bands_ready (MMIfaceModem *self,
if (!MM_IFACE_MODEM_GET_INTERFACE (self)->set_bands_finish (self, res, &error))
g_simple_async_result_take_error (ctx->result, error);
else {
- mm_gdbus_modem_set_bands (ctx->skeleton,
- mm_common_bands_garray_to_variant (ctx->bands_array));
+ /* Never show just 'any' in the interface */
+ if (ctx->bands_array->len == 1 &&
+ g_array_index (ctx->bands_array, MMModemBand, 0) == MM_MODEM_BAND_ANY) {
+ GArray *supported_bands;
+
+ supported_bands = (mm_common_bands_variant_to_garray (
+ mm_gdbus_modem_get_supported_bands (ctx->skeleton)));
+ mm_gdbus_modem_set_bands (ctx->skeleton,
+ mm_common_bands_garray_to_variant (supported_bands));
+ g_array_unref (supported_bands);
+ } else
+ mm_gdbus_modem_set_bands (ctx->skeleton,
+ mm_common_bands_garray_to_variant (ctx->bands_array));
+
g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE);
}