diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2018-08-05 14:24:25 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2018-09-22 10:09:18 +0200 |
commit | 9541fc20a6991e35b3c0a67fb4fd4d38adc0f014 (patch) | |
tree | 8adc50d778e40e6d3c7adffd60e569a67250bfba | |
parent | b90c142ad8f107963a99d59e3a3e499705c1901e (diff) | |
download | ModemManager-9541fc20a6991e35b3c0a67fb4fd4d38adc0f014.tar.gz |
signal: cleanup previous extended info if no new one given
E.g. if the modem switches from 4G to 3G while the extended signal
information is enabled, we should no longer expose LTE specific signal
quality values, only the UMTS specific ones.
E.g. to avoid this:
$ mmcli -m 1 --signal-get
-------------------------
UMTS | RSSI: '0,00' dBm
| RSCP: '-92,00' dBm
| EcIo: '-13,00' dB
-------------------------
LTE | RSSI: '0,00' dBm
| RSRQ: '-6,50' dB
| RSRP: '-96,00' dBm
| SNR: '0,00' dB
(cherry picked from commit ae9efa05c855c94122ef25ab6ee43dee13c1a64c)
-rw-r--r-- | src/mm-iface-modem-signal.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/mm-iface-modem-signal.c b/src/mm-iface-modem-signal.c index 99096a957..c43b1b9f2 100644 --- a/src/mm-iface-modem-signal.c +++ b/src/mm-iface-modem-signal.c @@ -113,35 +113,40 @@ load_values_ready (MMIfaceModemSignal *self, mm_gdbus_modem_signal_set_cdma (skeleton, dictionary); g_variant_unref (dictionary); g_object_unref (cdma); - } + } else + mm_gdbus_modem_signal_set_cdma (skeleton, NULL); if (evdo) { dictionary = mm_signal_get_dictionary (evdo); mm_gdbus_modem_signal_set_evdo (skeleton, dictionary); g_variant_unref (dictionary); g_object_unref (evdo); - } + } else + mm_gdbus_modem_signal_set_evdo (skeleton, NULL); if (gsm) { dictionary = mm_signal_get_dictionary (gsm); mm_gdbus_modem_signal_set_gsm (skeleton, dictionary); g_variant_unref (dictionary); g_object_unref (gsm); - } + } else + mm_gdbus_modem_signal_set_gsm (skeleton, NULL); if (umts) { dictionary = mm_signal_get_dictionary (umts); mm_gdbus_modem_signal_set_umts (skeleton, dictionary); g_variant_unref (dictionary); g_object_unref (umts); - } + } else + mm_gdbus_modem_signal_set_umts (skeleton, NULL); if (lte) { dictionary = mm_signal_get_dictionary (lte); mm_gdbus_modem_signal_set_lte (skeleton, dictionary); g_variant_unref (dictionary); g_object_unref (lte); - } + } else + mm_gdbus_modem_signal_set_lte (skeleton, NULL); /* Flush right away */ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (skeleton)); |