The big plugin refactor
Since we're about to add a second kind of plugin for "policy engines" (which implement call blocking; see !588 ) the plugin infrastructure gets a major overhaul.
- A
CallsPluginManager
is introduced which deals with all plugins and keeps a GListModel of providers (now) and policy engines (with !588). - Use
GtkFlattenListModel
inCallsManager
for all our origins (calls_plugin_manager_get_providers()
and individualcalls_provider_get_origins ()
- Use
GtkFilterListModel
inCallsManager
for per-protocol (tel, sip, sips) list models - Use
GtkFilterListModel
inCallsAccountOverview
forCallsAccountProvider
andCallsAccount
s - Adjust to changes everywhere
- Make plugin desktop files (mm.plugin, sip.plugin, etc) translatable so we can show their name and description in the UI
TODOs as a follow-up
- Rebase !588 on top of this
- Make plugins derive
CallExtension
(instead ofCallsProvider
):- instead of e.g.
CallsProvider
, add API to get provider withcalls_extension_get_provider()
- Add
calls_extension_get_account_widget ()
to get the account widget instead of having to go through theCallsProvider
- Add
calls_extension_get_provider_preferences_widget ()
(to be embedded in the preferences) and implement it for (part of) our providers (where it makes sense, because there's configurable things) - Add
calls_extension_get_modem_preferences_widget()
to show some info and let the user configure call waiting, voice mail, checking balance, etc? - This also allows to get rid of the
#ifdef FOR_TESTING
in provider implementations and revert d3a93bd6 for improved (reported) code coverage \o/
- instead of e.g.
- Add preference window with the following panes (ish) (now in !690 )
- General settings like Enable/disable plugins)
- Call blocking (see #370)
- Modems (e.g. setup call waiting, voicemail, ..)
- Accounts (
CallsAccountOverview
moves there)
Edited by Evangelos Ribeiro Tzaras