diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2016-08-11 14:03:45 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2016-10-12 13:24:09 +0200 |
commit | 292914cf65df5e5f87d95fb948a113b56635d1be (patch) | |
tree | ab019d9fc25757f19d51da8ee5e886f048cd10ff | |
parent | ca1b9cb686bcf634701d4a6421d60e4e82b6784c (diff) | |
download | ModemManager-292914cf65df5e5f87d95fb948a113b56635d1be.tar.gz |
iface-modem: always sort supported and current bands before exposing them
-rw-r--r-- | libmm-glib/mm-common-helpers.c | 6 | ||||
-rw-r--r-- | libmm-glib/mm-common-helpers.h | 3 | ||||
-rw-r--r-- | src/mm-iface-modem.c | 7 |
3 files changed, 14 insertions, 2 deletions
diff --git a/libmm-glib/mm-common-helpers.c b/libmm-glib/mm-common-helpers.c index 3a5883b2a..7bd845b93 100644 --- a/libmm-glib/mm-common-helpers.c +++ b/libmm-glib/mm-common-helpers.c @@ -655,6 +655,12 @@ mm_common_bands_garray_cmp (GArray *a, GArray *b) return !different; } +void +mm_common_bands_garray_sort (GArray *array) +{ + g_array_sort (array, (GCompareFunc) cmp_band); +} + GArray * mm_common_mode_combinations_variant_to_garray (GVariant *variant) { diff --git a/libmm-glib/mm-common-helpers.h b/libmm-glib/mm-common-helpers.h index ab5777d1e..772068e99 100644 --- a/libmm-glib/mm-common-helpers.h +++ b/libmm-glib/mm-common-helpers.h @@ -100,7 +100,8 @@ GVariant *mm_common_bands_garray_to_variant (GArray *array); GVariant *mm_common_build_bands_any (void); GVariant *mm_common_build_bands_unknown (void); -gboolean mm_common_bands_garray_cmp (GArray *a, GArray *b); +gboolean mm_common_bands_garray_cmp (GArray *a, GArray *b); +void mm_common_bands_garray_sort (GArray *array); GArray *mm_common_mode_combinations_variant_to_garray (GVariant *variant); MMModemModeCombination *mm_common_mode_combinations_variant_to_array (GVariant *variant, diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c index 4619cd66e..046b3455c 100644 --- a/src/mm-iface-modem.c +++ b/src/mm-iface-modem.c @@ -2188,12 +2188,15 @@ set_current_bands_ready (MMIfaceModem *self, supported_bands = (mm_common_bands_variant_to_garray ( mm_gdbus_modem_get_supported_bands (ctx->skeleton))); + mm_common_bands_garray_sort (supported_bands); mm_gdbus_modem_set_current_bands (ctx->skeleton, mm_common_bands_garray_to_variant (supported_bands)); g_array_unref (supported_bands); - } else + } else { + mm_common_bands_garray_sort (ctx->bands_array); mm_gdbus_modem_set_current_bands (ctx->skeleton, mm_common_bands_garray_to_variant (ctx->bands_array)); + } g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE); } @@ -3992,6 +3995,7 @@ load_supported_bands_ready (MMIfaceModem *self, bands_array = MM_IFACE_MODEM_GET_INTERFACE (self)->load_supported_bands_finish (self, res, &error); if (bands_array) { + mm_common_bands_garray_sort (bands_array); mm_gdbus_modem_set_supported_bands (ctx->skeleton, mm_common_bands_garray_to_variant (bands_array)); g_array_unref (bands_array); @@ -4193,6 +4197,7 @@ load_current_bands_ready (MMIfaceModem *self, g_array_unref (supported_bands); if (filtered_bands) { + mm_common_bands_garray_sort (filtered_bands); mm_gdbus_modem_set_current_bands (ctx->skeleton, mm_common_bands_garray_to_variant (filtered_bands)); g_array_unref (filtered_bands); |