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:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user