aboutsummaryrefslogtreecommitdiff
path: root/src/mm-base-modem.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-base-modem.c')
-rw-r--r--src/mm-base-modem.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index 0805cedb..a11f15a4 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -1435,6 +1435,28 @@ mm_base_modem_get_product_id (MMBaseModem *self)
/*****************************************************************************/
+static void
+after_sim_switch_disable_ready (MMBaseModem *self,
+ GAsyncResult *res)
+{
+ g_autoptr(GError) error = NULL;
+
+ mm_base_modem_disable_finish (self, res, &error);
+ if (error)
+ mm_obj_err (self, "failed to disable after SIM switch event: %s", error->message);
+ else
+ mm_base_modem_set_valid (self, FALSE);
+}
+
+void
+mm_base_modem_process_sim_switch (MMBaseModem *self)
+{
+ mm_base_modem_set_reprobe (self, TRUE);
+ mm_base_modem_disable (self, (GAsyncReadyCallback) after_sim_switch_disable_ready, NULL);
+}
+
+/*****************************************************************************/
+
static gboolean
base_modem_invalid_idle (MMBaseModem *self)
{