Let calls-provider be an abstract class

And adapt to changes.

A calls-mm-provider IS-A calls-provider (and so on)
This commit is contained in:
Mohammed Sadiq
2021-01-25 21:02:14 +05:30
committed by Evangelos Ribeiro Tzaras
parent 1c8eb87e7f
commit 5684d54bbd
8 changed files with 177 additions and 201 deletions

View File

@@ -37,7 +37,7 @@
struct _CallsOfonoProvider
{
GObject parent_instance;
CallsProvider parent_instance;
/** D-Bus connection */
GDBusConnection *connection;
@@ -50,23 +50,13 @@ struct _CallsOfonoProvider
};
static void calls_ofono_provider_message_source_interface_init (CallsProviderInterface *iface);
static void calls_ofono_provider_provider_interface_init (CallsProviderInterface *iface);
static void calls_ofono_provider_message_source_interface_init (CallsMessageSourceInterface *iface);
G_DEFINE_DYNAMIC_TYPE_EXTENDED
(CallsOfonoProvider, calls_ofono_provider, G_TYPE_OBJECT, 0,
G_IMPLEMENT_INTERFACE_DYNAMIC (CALLS_TYPE_MESSAGE_SOURCE,
calls_ofono_provider_message_source_interface_init)
G_IMPLEMENT_INTERFACE_DYNAMIC (CALLS_TYPE_PROVIDER,
calls_ofono_provider_provider_interface_init))
static const gchar *
get_name (CallsProvider *iface)
{
return "oFono";
}
calls_ofono_provider_message_source_interface_init))
static void
@@ -78,19 +68,6 @@ add_origin_to_list (const gchar *path,
}
static GList *
get_origins (CallsProvider *iface)
{
CallsOfonoProvider *self = CALLS_OFONO_PROVIDER (iface);
GList *list = NULL;
g_hash_table_foreach (self->origins,
(GHFunc)add_origin_to_list, &list);
return g_list_reverse (list);
}
static void
add_origin (CallsOfonoProvider *self,
const gchar *path,
@@ -376,6 +353,30 @@ get_modems_cb (GDBOManager *manager,
g_variant_unref (modems);
}
static const char *
calls_ofono_provider_get_name (CallsProvider *provider)
{
return "Ofono";
}
static const char *
calls_ofono_provider_get_status (CallsProvider *provider)
{
return "";
}
static GList *
calls_ofono_provider_get_origins (CallsProvider *provider)
{
CallsOfonoProvider *self = CALLS_OFONO_PROVIDER (provider);
GList *list = NULL;
g_hash_table_foreach (self->origins,
(GHFunc)add_origin_to_list, &list);
return g_list_reverse (list);
}
static void
constructed (GObject *object)
@@ -446,10 +447,15 @@ static void
calls_ofono_provider_class_init (CallsOfonoProviderClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
CallsProviderClass *provider_class = CALLS_PROVIDER_CLASS (klass);
object_class->constructed = constructed;
object_class->dispose = dispose;
object_class->finalize = finalize;
provider_class->get_name = calls_ofono_provider_get_name;
provider_class->get_status = calls_ofono_provider_get_status;
provider_class->get_origins = calls_ofono_provider_get_origins;
}
@@ -460,19 +466,11 @@ calls_ofono_provider_class_finalize (CallsOfonoProviderClass *klass)
static void
calls_ofono_provider_message_source_interface_init (CallsProviderInterface *iface)
calls_ofono_provider_message_source_interface_init (CallsMessageSourceInterface *iface)
{
}
static void
calls_ofono_provider_provider_interface_init (CallsProviderInterface *iface)
{
iface->get_name = get_name;
iface->get_origins = get_origins;
}
static void
calls_ofono_provider_init (CallsOfonoProvider *self)
{

View File

@@ -28,11 +28,13 @@
#include <glib-object.h>
#include <gio/gio.h>
#include "calls-provider.h"
G_BEGIN_DECLS
#define CALLS_TYPE_OFONO_PROVIDER (calls_ofono_provider_get_type ())
G_DECLARE_FINAL_TYPE (CallsOfonoProvider, calls_ofono_provider, CALLS, OFONO_PROVIDER, GObject);
G_DECLARE_FINAL_TYPE (CallsOfonoProvider, calls_ofono_provider, CALLS, OFONO_PROVIDER, CallsProvider)
G_END_DECLS