aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/reference/api/ModemManager-sections.txt3
-rw-r--r--docs/reference/libmm-glib/libmm-glib-sections.txt18
-rw-r--r--include/ModemManager-enums.h48
-rw-r--r--libmm-glib/mm-sim.c56
-rw-r--r--libmm-glib/mm-sim.h4
5 files changed, 129 insertions, 0 deletions
diff --git a/docs/reference/api/ModemManager-sections.txt b/docs/reference/api/ModemManager-sections.txt
index 5184503a..2e85ce35 100644
--- a/docs/reference/api/ModemManager-sections.txt
+++ b/docs/reference/api/ModemManager-sections.txt
@@ -55,6 +55,9 @@ MMSmsStorage
MMSmsValidityType
MMSmsCdmaTeleserviceId
MMSmsCdmaServiceCategory
+MMSimType
+MMSimEsimStatus
+MMSimRemovability
</SECTION>
<SECTION>
diff --git a/docs/reference/libmm-glib/libmm-glib-sections.txt b/docs/reference/libmm-glib/libmm-glib-sections.txt
index 1d95b042..3f03ea6d 100644
--- a/docs/reference/libmm-glib/libmm-glib-sections.txt
+++ b/docs/reference/libmm-glib/libmm-glib-sections.txt
@@ -1358,6 +1358,9 @@ mm_sim_dup_operator_name
mm_sim_get_emergency_numbers
mm_sim_dup_emergency_numbers
mm_sim_get_preferred_networks
+mm_sim_get_sim_type
+mm_sim_get_esim_status
+mm_sim_get_removability
<SUBSECTION Methods>
mm_sim_send_pin
mm_sim_send_pin_finish
@@ -1695,6 +1698,9 @@ mm_bearer_ip_family_get_string
mm_bearer_allowed_auth_build_string_from_mask
mm_bearer_multiplex_support_get_string
mm_bearer_apn_type_build_string_from_mask
+mm_sim_type_get_string
+mm_sim_esim_status_get_string
+mm_sim_removability_get_string
mm_modem_capability_build_string_from_mask
mm_modem_state_get_string
mm_modem_state_failed_reason_get_string
@@ -1760,6 +1766,9 @@ mm_bearer_ip_method_build_string_from_mask
mm_bearer_allowed_auth_get_string
mm_bearer_multiplex_support_build_string_from_mask
mm_bearer_apn_type_get_string
+mm_sim_type_build_string_from_mask
+mm_sim_esim_status_build_string_from_mask
+mm_sim_removability_build_string_from_mask
mm_modem_cdma_registration_state_build_string_from_mask
mm_modem_cdma_activation_state_build_string_from_mask
mm_modem_cdma_rm_protocol_build_string_from_mask
@@ -1787,6 +1796,9 @@ MM_TYPE_BEARER_IP_METHOD
MM_TYPE_BEARER_ALLOWED_AUTH
MM_TYPE_BEARER_MULTIPLEX_SUPPORT
MM_TYPE_BEARER_APN_TYPE
+MM_TYPE_SIM_TYPE
+MM_TYPE_ESIM_STATUS
+MM_TYPE_SIM_REMOVAL_STATUS
MM_TYPE_FIRMWARE_IMAGE_TYPE
MM_TYPE_MODEM_3GPP_FACILITY
MM_TYPE_MODEM_3GPP_NETWORK_AVAILABILITY
@@ -1832,6 +1844,9 @@ mm_bearer_ip_method_get_type
mm_bearer_allowed_auth_get_type
mm_bearer_multiplex_support_get_type
mm_bearer_apn_type_get_type
+mm_sim_type_get_type
+mm_sim_esim_status_get_type
+mm_sim_removability_get_type
mm_firmware_image_type_get_type
mm_modem_3gpp_facility_get_type
mm_modem_3gpp_network_availability_get_type
@@ -3533,6 +3548,9 @@ mm_gdbus_sim_get_emergency_numbers
mm_gdbus_sim_dup_emergency_numbers
mm_gdbus_sim_dup_preferred_networks
mm_gdbus_sim_get_preferred_networks
+mm_gdbus_sim_get_sim_type
+mm_gdbus_sim_get_esim_status
+mm_gdbus_sim_get_removability
<SUBSECTION Methods>
mm_gdbus_sim_call_send_pin
mm_gdbus_sim_call_send_pin_finish
diff --git a/include/ModemManager-enums.h b/include/ModemManager-enums.h
index 765e1c2b..6011f2d0 100644
--- a/include/ModemManager-enums.h
+++ b/include/ModemManager-enums.h
@@ -1729,4 +1729,52 @@ typedef enum { /*< underscore_name=mm_modem_3gpp_packet_service_state >*/
MM_MODEM_3GPP_PACKET_SERVICE_STATE_ATTACHED = 2,
} MMModem3gppPacketServiceState;
+/**
+* MMSimType:
+* @MM_SIM_TYPE_UNKNOWN: SIM type is not known.
+* @MM_SIM_TYPE_PHYSICAL: SIM is a pysical SIM.
+* @MM_SIM_TYPE_ESIM: SIM is a ESIM.
+*
+* SIM type indicating whether ESIM or not
+*
+* Since: 1.20
+*/
+typedef enum { /*< underscore_name=mm_sim_type >*/
+ MM_SIM_TYPE_UNKNOWN = 0,
+ MM_SIM_TYPE_PHYSICAL = 1,
+ MM_SIM_TYPE_ESIM = 2,
+} MMSimType;
+
+/**
+* MMSimEsimStatus:
+* @MM_SIM_ESIM_STATUS_UNKNOWN: ESIM status unknown.
+* @MM_SIM_ESIM_STATUS_NO_PROFILES: ESIM with no profiles.
+* @MM_SIM_ESIM_STATUS_WITH_PROFILES: ESIM with profiles.
+*
+* Status of the profiles for ESIM
+*
+* Since: 1.20
+*/
+typedef enum { /*< underscore_name=mm_sim_esim_status >*/
+ MM_SIM_ESIM_STATUS_UNKNOWN = 0,
+ MM_SIM_ESIM_STATUS_NO_PROFILES = 1,
+ MM_SIM_ESIM_STATUS_WITH_PROFILES = 2,
+} MMSimEsimStatus;
+
+/**
+* MMSimRemovability:
+* @MM_SIM_REMOVABILITY_UNKNOWN: SIM removability not known.
+* @MM_SIM_REMOVABILITY_REMOVABLE: SIM is a removable SIM.
+* @MM_SIM_REMOVABILITY_NOT_REMOVABLE: SIM is not a removable SIM.
+*
+* Respresents SIM removability of the current SIM.
+*
+* Since: 1.20
+*/
+typedef enum { /*< underscore_name=mm_sim_removability >*/
+ MM_SIM_REMOVABILITY_UNKNOWN = 0,
+ MM_SIM_REMOVABILITY_REMOVABLE = 1,
+ MM_SIM_REMOVABILITY_NOT_REMOVABLE = 2,
+} MMSimRemovability;
+
#endif /* _MODEMMANAGER_ENUMS_H_ */
diff --git a/libmm-glib/mm-sim.c b/libmm-glib/mm-sim.c
index e4393b61..ea68d8dd 100644
--- a/libmm-glib/mm-sim.c
+++ b/libmm-glib/mm-sim.c
@@ -411,6 +411,62 @@ mm_sim_get_preferred_networks (MMSim *self)
return network_list;
}
+/**
+ * mm_sim_get_sim_type:
+ * @self: A #MMSim.
+ *
+ * Gets the SIM type.
+ *
+ * Returns: a #MMSimType.
+ *
+ * Since: 1.20
+ */
+MMSimType
+mm_sim_get_sim_type (MMSim *self)
+{
+ g_return_val_if_fail (MM_IS_SIM (self), MM_SIM_TYPE_UNKNOWN);
+
+ return mm_gdbus_sim_get_sim_type (MM_GDBUS_SIM (self));
+}
+
+/**
+ * mm_sim_get_esim_status:
+ * @self: A #MMSim.
+ *
+ * Gets the eSIM status.
+ *
+ * Only applicable if the SIM type is %MM_SIM_TYPE_ESIM.
+ *
+ * Returns: a #MMSimEsimStatus.
+ *
+ * Since: 1.20
+ */
+MMSimEsimStatus
+mm_sim_get_esim_status (MMSim *self)
+{
+ g_return_val_if_fail (MM_IS_SIM (self), MM_SIM_ESIM_STATUS_UNKNOWN);
+
+ return mm_gdbus_sim_get_esim_status (MM_GDBUS_SIM (self));
+}
+
+/**
+ * mm_sim_get_removability:
+ * @self: A #MMSim.
+ *
+ * Gets whether the SIM is removable or not.
+ *
+ * Returns: a #MMSimRemovability.
+ *
+ * Since: 1.20
+ */
+MMSimRemovability
+mm_sim_get_removability (MMSim *self)
+{
+ g_return_val_if_fail (MM_IS_SIM (self), MM_SIM_REMOVABILITY_UNKNOWN);
+
+ return mm_gdbus_sim_get_removability (MM_GDBUS_SIM (self));
+}
+
/*****************************************************************************/
/**
diff --git a/libmm-glib/mm-sim.h b/libmm-glib/mm-sim.h
index dab3f66d..77011fde 100644
--- a/libmm-glib/mm-sim.h
+++ b/libmm-glib/mm-sim.h
@@ -89,6 +89,10 @@ gchar **mm_sim_dup_emergency_numbers (MMSim *self);
GList* mm_sim_get_preferred_networks (MMSim *self);
+MMSimType mm_sim_get_sim_type (MMSim *self);
+MMSimEsimStatus mm_sim_get_esim_status (MMSim *self);
+MMSimRemovability mm_sim_get_removability (MMSim *self);
+
void mm_sim_send_pin (MMSim *self,
const gchar *pin,
GCancellable *cancellable,