diff options
-rw-r--r-- | src/mm-base-modem.c | 22 | ||||
-rw-r--r-- | src/mm-base-modem.h | 2 | ||||
-rw-r--r-- | src/mm-broadband-modem.c | 19 |
3 files changed, 25 insertions, 18 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) { diff --git a/src/mm-base-modem.h b/src/mm-base-modem.h index 0c4b95f2..ef20ecba 100644 --- a/src/mm-base-modem.h +++ b/src/mm-base-modem.h @@ -214,4 +214,6 @@ gboolean mm_base_modem_disable_finish (MMBaseModem *self, GAsyncResult *res, GError **error); +void mm_base_modem_process_sim_switch (MMBaseModem *self); + #endif /* MM_BASE_MODEM_H */ diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c index 9b10f83e..8441a2cf 100644 --- a/src/mm-broadband-modem.c +++ b/src/mm-broadband-modem.c @@ -11900,20 +11900,6 @@ mm_broadband_modem_create_device_identifier (MMBroadbandModem *self, /*****************************************************************************/ -static void -after_hotswap_event_disable_ready (MMBaseModem *self, - GAsyncResult *res, - gpointer user_data) -{ - GError *error = NULL; - - mm_base_modem_disable_finish (self, res, &error); - if (error) { - mm_obj_err (self, "failed to disable after hotswap event: %s", error->message); - g_error_free (error); - } else - mm_base_modem_set_valid (self, FALSE); -} void mm_broadband_modem_sim_hot_swap_detected (MMBroadbandModem *self) @@ -11924,10 +11910,7 @@ mm_broadband_modem_sim_hot_swap_detected (MMBroadbandModem *self) self->priv->sim_hot_swap_ports_ctx = NULL; } - mm_base_modem_set_reprobe (MM_BASE_MODEM (self), TRUE); - mm_base_modem_disable (MM_BASE_MODEM (self), - (GAsyncReadyCallback) after_hotswap_event_disable_ready, - NULL); + mm_base_modem_process_sim_switch (MM_BASE_MODEM (self)); } /*****************************************************************************/ |