shared-qmi: move indication callbacks out of the SIM hot swap setup
This commit is contained in:

committed by
Aleksander Morgado

parent
ba3b15fe29
commit
c994ae1b3a
@@ -3561,46 +3561,10 @@ mm_shared_qmi_set_primary_sim_slot (MMIfaceModem *self,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* SIM hot swap detection */
|
/* UIM refresh indication handling */
|
||||||
|
|
||||||
#define REFRESH_START_TIMEOUT_SECS 3
|
#define REFRESH_START_TIMEOUT_SECS 3
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
SETUP_SIM_HOT_SWAP_STEP_FIRST,
|
|
||||||
SETUP_SIM_HOT_SWAP_STEP_UIM_REGISTER_SLOT_STATUS,
|
|
||||||
SETUP_SIM_HOT_SWAP_STEP_UIM_CHECK_SLOT_STATUS,
|
|
||||||
SETUP_SIM_HOT_SWAP_STEP_UIM_SLOT_STATUS_INDICATION,
|
|
||||||
SETUP_SIM_HOT_SWAP_STEP_UIM_REFRESH_REGISTER_ALL,
|
|
||||||
SETUP_SIM_HOT_SWAP_STEP_UIM_REFRESH_REGISTER_ICCID,
|
|
||||||
SETUP_SIM_HOT_SWAP_STEP_UIM_REFRESH_REGISTER_IMSI,
|
|
||||||
SETUP_SIM_HOT_SWAP_STEP_UIM_REFRESH_INDICATION,
|
|
||||||
SETUP_SIM_HOT_SWAP_STEP_LAST,
|
|
||||||
} SetupSimHotSwapStep;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
SetupSimHotSwapStep step;
|
|
||||||
gboolean register_slot_status_supported;
|
|
||||||
gboolean get_slot_status_supported;
|
|
||||||
gboolean refresh_all_supported;
|
|
||||||
gboolean refresh_file_supported;
|
|
||||||
} SetupSimHotSwapContext;
|
|
||||||
|
|
||||||
static void setup_sim_hot_swap_step (GTask *task);
|
|
||||||
|
|
||||||
static void
|
|
||||||
setup_sim_hot_swap_context_free (SetupSimHotSwapContext *ctx)
|
|
||||||
{
|
|
||||||
g_slice_free (SetupSimHotSwapContext, ctx);
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean
|
|
||||||
mm_shared_qmi_setup_sim_hot_swap_finish (MMIfaceModem *self,
|
|
||||||
GAsyncResult *res,
|
|
||||||
GError **error)
|
|
||||||
{
|
|
||||||
return g_task_propagate_boolean (G_TASK (res), error);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
uim_refresh_complete (QmiClientUim *client,
|
uim_refresh_complete (QmiClientUim *client,
|
||||||
QmiUimSessionType session_type)
|
QmiUimSessionType session_type)
|
||||||
@@ -3712,6 +3676,9 @@ uim_refresh_indication_cb (QmiClientUim *client,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/* UIM slot status indication handling */
|
||||||
|
|
||||||
/* Modifies the sim at slot == index+1, based on the content of slot_status.
|
/* Modifies the sim at slot == index+1, based on the content of slot_status.
|
||||||
* Primarily used when a hotswap occurs on the inactive slot */
|
* Primarily used when a hotswap occurs on the inactive slot */
|
||||||
static void
|
static void
|
||||||
@@ -3870,6 +3837,45 @@ uim_slot_status_indication_cb (QmiClientUim *client,
|
|||||||
priv->slots_status = g_array_ref (new_slots_status);
|
priv->slots_status = g_array_ref (new_slots_status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/* SIM hot swap setup */
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
SETUP_SIM_HOT_SWAP_STEP_FIRST,
|
||||||
|
SETUP_SIM_HOT_SWAP_STEP_UIM_REGISTER_SLOT_STATUS,
|
||||||
|
SETUP_SIM_HOT_SWAP_STEP_UIM_CHECK_SLOT_STATUS,
|
||||||
|
SETUP_SIM_HOT_SWAP_STEP_UIM_SLOT_STATUS_INDICATION,
|
||||||
|
SETUP_SIM_HOT_SWAP_STEP_UIM_REFRESH_REGISTER_ALL,
|
||||||
|
SETUP_SIM_HOT_SWAP_STEP_UIM_REFRESH_REGISTER_ICCID,
|
||||||
|
SETUP_SIM_HOT_SWAP_STEP_UIM_REFRESH_REGISTER_IMSI,
|
||||||
|
SETUP_SIM_HOT_SWAP_STEP_UIM_REFRESH_INDICATION,
|
||||||
|
SETUP_SIM_HOT_SWAP_STEP_LAST,
|
||||||
|
} SetupSimHotSwapStep;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
SetupSimHotSwapStep step;
|
||||||
|
gboolean register_slot_status_supported;
|
||||||
|
gboolean get_slot_status_supported;
|
||||||
|
gboolean refresh_all_supported;
|
||||||
|
gboolean refresh_file_supported;
|
||||||
|
} SetupSimHotSwapContext;
|
||||||
|
|
||||||
|
static void setup_sim_hot_swap_step (GTask *task);
|
||||||
|
|
||||||
|
static void
|
||||||
|
setup_sim_hot_swap_context_free (SetupSimHotSwapContext *ctx)
|
||||||
|
{
|
||||||
|
g_slice_free (SetupSimHotSwapContext, ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
mm_shared_qmi_setup_sim_hot_swap_finish (MMIfaceModem *self,
|
||||||
|
GAsyncResult *res,
|
||||||
|
GError **error)
|
||||||
|
{
|
||||||
|
return g_task_propagate_boolean (G_TASK (res), error);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
uim_refresh_register_file_ready (QmiClientUim *client,
|
uim_refresh_register_file_ready (QmiClientUim *client,
|
||||||
GAsyncResult *res,
|
GAsyncResult *res,
|
||||||
|
Reference in New Issue
Block a user