aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mm-generic-gsm.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/mm-generic-gsm.c b/src/mm-generic-gsm.c
index e8a72a25..87df005c 100644
--- a/src/mm-generic-gsm.c
+++ b/src/mm-generic-gsm.c
@@ -1492,6 +1492,16 @@ roam_disconnect_done (MMModem *modem,
g_message ("Disconnected because roaming is not allowed");
}
+static void
+get_reg_act_done (MMModem *modem,
+ guint32 act,
+ GError *error,
+ gpointer user_data)
+{
+ if (modem && !error)
+ mm_generic_gsm_update_access_technology (MM_GENERIC_GSM (modem), act);
+}
+
void
mm_generic_gsm_set_reg_status (MMGenericGsm *self,
MMModemGsmNetworkRegStatus status)
@@ -1528,7 +1538,11 @@ mm_generic_gsm_set_reg_status (MMGenericGsm *self,
mm_at_serial_port_queue_command (port, "+COPS=3,2;+COPS?", 3, read_operator_code_done, self);
mm_at_serial_port_queue_command (port, "+COPS=3,0;+COPS?", 3, read_operator_name_done, self);
}
+
+ /* And update signal quality and access technology */
mm_modem_gsm_network_get_signal_quality (MM_MODEM_GSM_NETWORK (self), got_signal_quality, NULL);
+ if (MM_GENERIC_GSM_GET_CLASS (self)->get_access_technology)
+ MM_GENERIC_GSM_GET_CLASS (self)->get_access_technology (self, get_reg_act_done, NULL);
}
} else
reg_info_updated (self, FALSE, 0, TRUE, NULL, TRUE, NULL);