// Detect SIM card
Sy_sms_state find_simcard_is_valid (void)
{
If (! (Mmi_frm_sms_get_sms_list_size (0 )! = 0 xFFFF) & mmi_frm_sms_check_action_pending () = false ))
{
Return sy_sim_busy; // The system is busy.
}
# Ifdef _ mmi_dual_sim_master __
If (mmi_bootup_is_sim_removed () = true) & (mmi_bootup_is_sim2_removed () = true ))
{
Return sy_sim_nosim; // No SIM card found
}
If (mmi_bootup_is_sim_valid () = false) & (mmi_bootup_is_sim2_valid () = false ))
{
Return sy_sim_fail; // invalid card
}
If (mmi_bootup_is_sim_valid () = false) & (mmi_bootup_is_sim2_removed () = true ))
{
Return sy_sim_fail; // invalid card
}
If (mmi_bootup_is_sim_removed () = true) & (mmi_bootup_is_sim2_valid () = false ))
{
Return sy_sim_fail; // invalid card
}
# Else
If (mmi_bootup_is_sim_removed () = true ))
{
Return sy_sim_nosim; // No SIM card found
}
If (mmi_bootup_is_sim_valid () = false)
{
Return sy_sim_fail; // the SIM card is invalid.
}
If (mmi_bootup_is_sim_valid () = true)
{
Return sy_sim_fail; // valid SIM card
}
# Endif
Return sy_sim_normal;
}