origin: Add id property and adapt to changes

The id property will be used to keep track of which origin was used for a call,
so that we can default to reusing the same origin when placing a call from the
history.
This commit is contained in:
Evangelos Ribeiro Tzaras
2022-01-27 15:28:35 +01:00
parent 04605efac7
commit 16b86c29b2
12 changed files with 101 additions and 6 deletions

View File

@@ -49,7 +49,9 @@ struct _CallsMMOrigin
char *last_ussd_response;
gulong ussd_handle_id;
gchar *name;
char *id;
char *name;
GHashTable *calls;
char *country_code;
};
@@ -68,6 +70,7 @@ G_DEFINE_TYPE_WITH_CODE (CallsMMOrigin, calls_mm_origin, G_TYPE_OBJECT,
enum {
PROP_0,
PROP_ID,
PROP_NAME,
PROP_CALLS,
PROP_MODEM,
@@ -640,6 +643,10 @@ set_property (GObject *object,
CallsMMOrigin *self = CALLS_MM_ORIGIN (object);
switch (property_id) {
case PROP_ID:
self->id = g_value_dup_string (value);
break;
case PROP_MODEM:
g_set_object (&self->mm_obj, g_value_get_object(value));
break;
@@ -660,6 +667,10 @@ get_property (GObject *object,
CallsMMOrigin *self = CALLS_MM_ORIGIN (object);
switch (property_id) {
case PROP_ID:
g_value_set_string (value, self->id);
break;
case PROP_NAME:
g_value_set_string (value, self->name);
break;
@@ -884,6 +895,7 @@ calls_mm_origin_class_init (CallsMMOriginClass *klass)
g_object_class_override_property (object_class, ID, NAME); \
props[ID] = g_object_class_find_property(object_class, NAME);
IMPLEMENTS (PROP_ID, "id");
IMPLEMENTS (PROP_NAME, "name");
IMPLEMENTS (PROP_CALLS, "calls");
IMPLEMENTS (PROP_COUNTRY_CODE, "country-code");
@@ -928,10 +940,12 @@ calls_mm_origin_init (CallsMMOrigin *self)
}
CallsMMOrigin *
calls_mm_origin_new (MMObject *mm_obj)
calls_mm_origin_new (MMObject *mm_obj,
const char *id)
{
return g_object_new (CALLS_TYPE_MM_ORIGIN,
"mm-object", mm_obj,
"id", id,
NULL);
}

View File

@@ -34,7 +34,8 @@ G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (CallsMMOrigin, calls_mm_origin, CALLS, MM_ORIGIN, GObject);
CallsMMOrigin *calls_mm_origin_new (MMObject *modem);
CallsMMOrigin *calls_mm_origin_new (MMObject *modem,
const char *id);
gboolean calls_mm_origin_matches (CallsMMOrigin *self,
MMObject *modem);

View File

@@ -130,7 +130,9 @@ add_origin (CallsMMProvider *self,
{
MMObject *mm_obj;
g_autoptr (CallsMMOrigin) origin = NULL;
g_autoptr (MMModem3gpp) modem_3gpp = NULL;
const gchar *path;
g_autofree char *imei = NULL;
mm_obj = MM_OBJECT (object);
path = g_dbus_object_get_object_path (object);
@@ -146,7 +148,10 @@ add_origin (CallsMMProvider *self,
g_assert (MM_IS_OBJECT (object));
origin = calls_mm_origin_new (mm_obj);
modem_3gpp = mm_object_get_modem_3gpp (mm_obj);
origin = calls_mm_origin_new (mm_obj,
mm_modem_3gpp_get_imei (modem_3gpp));
g_list_store_append (self->origins, origin);
update_status (self);