Commit Graph
100 Commits
Author SHA1 Message Date
Evangelos Ribeiro Tzaras 3f2481bda9 doc: meson: Get rid of redundant if block
We already check at the very top if the 'gtk_doc' option is used, so let's drop
it here.
2022-02-06 02:34:37 +01:00
Evangelos Ribeiro Tzaras 3fe976505c manager: Delay UI Call removal and adjust to changes
This was handled explicitly in the Call window.
By changing the logic to delay the emission of "ui-call-removed" we make sure
that the Call UI and the exported DBus object is consistent.

We also need to change the test cases to use run a GMainLoop because we now have
to wait until signal comes in.
2022-02-03 12:37:05 +01:00
Evangelos Ribeiro Tzaras cde517096b dbus: Add hint property
This is a dictionary to allow for future extensibility. Currently we're only
hinting if the UI should be shown for a given call.
2022-02-03 12:37:05 +01:00
Evangelos Ribeiro Tzaras 3d85ef802f call-window: Take ui-active property into account
Only show the display after the "pre-ring" phase has passed.

Fixes #371
2022-02-03 12:37:05 +01:00
Evangelos Ribeiro Tzaras 93cf894a8c ringer: Take ui-active property into account
Only start ringing once the UI is deemed active, i.e. the "pre-ring" phase has
passed.

Fixes #371
2022-02-03 12:37:05 +01:00
Evangelos Ribeiro Tzaras 1d5c8952ad ui-call-data: Add property to delay showing call display and ringing
This "ui-active" property should be set to FALSE for new incoming calls and set
to TRUE after a short delay of 20ms. This property is used to delay showing the
call display and starting to ring.

This delay gives DBus clients like
phosh-antispam (https://gitlab.com/kop316/phosh-antispam)
some time to make a decision whether a call should be hung up or not and defer
starting to ring and showing the display only afterwards.
2022-02-03 12:37:05 +01:00
Evangelos Ribeiro Tzaras 8f8da42f76 dummy-origin: Emit call-added only after adding to list
Otherwise we get incorrect values when calling calls_origin_get_calls ()
2022-02-03 12:36:58 +01:00
Evangelos Ribeiro Tzaras d15614a645 selector: Fix property binding
CallsCall used "name", while CuiCall uses "display-name".
2022-02-03 07:16:04 +01:00
Evangelos Ribeiro Tzaras d5ccb40e68 tests: ui-call: Test property equality
And especially if properties get updated on both sides.
2022-02-02 00:09:12 +01:00
Evangelos Ribeiro Tzaras 1ca83bc2bc tests: Add ui-call tests
For now we only test the state mapping.
2022-02-02 00:09:12 +01:00
Evangelos Ribeiro Tzaras 9f8c20995c tests: Fix typo 2022-02-02 00:09:12 +01:00
Evangelos Ribeiro Tzaras 896af6f8af record-row: Fix passing widget instead of string as action target
When introducing the per protocol dial actions we started setting the widget
self->target as the action target instead of the target property of
self->record.

Bizzarely we only sometimes got greeted with a critical:

11:30:20.5184                 GLib[887977]:CRITICAL: g_variant_new_string: assertion 'g_utf8_validate (string, -1, NULL)' failed

Thread 1 "gnome-calls" received signal SIGTRAP, Trace/breakpoint trap.
g_logv (log_domain=0x7ffff7ea400e "GLib", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=<optimized out>) at ../../../glib/gmessages.c:1417
1417	../../../glib/gmessages.c: No such file or directory.
(gdb) bt
    at ../../../glib/gmessages.c:2898

Fixes: 687dd7ff383476523ae0a8a38879a171cb0b9a5a
Closes #398
2022-02-01 23:28:50 +01:00
Evangelos Ribeiro Tzaras d452e0a702 dbus-manager: Fix wrong property being bound
Fixes cf6c563ead
2022-02-01 23:28:50 +01:00
Evangelos Ribeiro Tzaras aa04401b06 dbus-manager: Prefer canonical signal names 2022-02-01 23:28:50 +01:00
Evangelos Ribeiro Tzaras 423ce4668e record-row: Remove unnecessary G_OBJECT cast 2022-02-01 23:28:50 +01:00
Evangelos Ribeiro Tzaras e4dc6548c5 ui-call-data: Document calls_call_state_to_cui_call_state() 2022-02-01 23:28:50 +01:00
Evangelos Ribeiro Tzaras 3fa290f5a7 notifier: Switch to CallsUiCallData 2022-02-01 06:11:58 +01:00
Evangelos Ribeiro Tzaras 98b8155fc6 manager: Switch to CallsUiCallData 2022-02-01 06:11:58 +01:00
Evangelos Ribeiro Tzaras bb8f662a01 ui-call-data: Remove get_call() function
No need to expose the internal CallsCall object as all properties relevant for
the UI are proxied out anyway.
2022-02-01 06:11:58 +01:00
Evangelos Ribeiro Tzaras 5bca8eabfe call: Remove API for silencing
This now lives in CallsUiCallData and got removed after the last user of the
code (CallsDbusManager) switched.
2022-02-01 06:11:58 +01:00
Evangelos Ribeiro Tzaras cf6c563ead dbus-manager: Switch to CallsUiCallData
This allows to simplify the code a bit.
2022-02-01 06:11:58 +01:00
Evangelos Ribeiro Tzaras 5b9609c4f7 ringer: Use CallsUiCallData instead of CallsCall
This will allow us to handle pre-ringing better.
2022-02-01 06:11:58 +01:00
Evangelos Ribeiro Tzaras b9e49986f0 call: Remove unused calls_call_state_to_string()
We're now using cui_call_state_to_string(), so this is unused.
2022-02-01 06:11:58 +01:00
Evangelos Ribeiro Tzaras fa5969892e call-window: Switch to CallsUiCallData
By connecting to the "ui-call-added" and "ui-call-removed" signals instead of
"call-add" and "call-remove".

This allows us to shave off a few lines of code.
2022-02-01 06:11:58 +01:00
Evangelos Ribeiro Tzaras 1d364eafda ui-call-data: Add proxy properties for CallsCall
TODO: This could do with some tests
2022-02-01 06:11:58 +01:00
Evangelos Ribeiro Tzaras dd8cc08649 ui-call-data: Allow contact provider to be NULL
The contact provider can be NULL in the ringer tests, because we're stubbing it.
Early return in that case and make sure the call is already set.
2022-02-01 06:11:58 +01:00
Evangelos Ribeiro Tzaras 6f9b071bbc tests: manager: Switch to CallsUiCallData 2022-02-01 06:11:58 +01:00
Evangelos Ribeiro Tzaras db7674d0f9 manager: Add new set of add and remove signals for CuiCalls
This is part of a refactoring which should help separating concerns between
CallsCall and CallsUiCallData better.

To accomplish this we want to stop passing around CallsCall objects and instead
pass CallsUiCallData objects.
In this commit we added new signals instead of changing the existing ones
because that results in a lot of churn. It allows to do the switch per module
allowing smaller individual patches and a more manageable patchset.
2022-02-01 06:11:58 +01:00
Evangelos Ribeiro Tzaras 1518a4b6fb ui-call-data: Add "state-changed" signal
This signal is for use in the UI components that are interested in both the old
and new state.
2022-02-01 06:11:58 +01:00
Evangelos Ribeiro Tzaras 2f32e09982 ringer: Switch to state notify signal 2022-02-01 06:11:58 +01:00
Evangelos Ribeiro Tzaras 500581d35d call: Add transfer annotation for get_protocol() 2022-02-01 06:11:58 +01:00
Evangelos Ribeiro Tzaras 72adee4922 tests: mock-contacts-provider: Add license header 2022-02-01 06:11:58 +01:00
Evangelos Ribeiro Tzaras 805ed4e0f4 notifier: Expand on comment 2022-02-01 06:11:58 +01:00
Evangelos Ribeiro Tzaras 9f50bc509f notifier: Remove unused GList 2022-02-01 06:11:58 +01:00
Evangelos Ribeiro Tzaras 25c2d5b104 notifier: Sort include headers 2022-02-01 06:11:58 +01:00
Evangelos Ribeiro Tzaras 5e2061da46 ringer: Reorder headers
config.h goes first then sort alphabetically.
2022-02-01 06:11:04 +01:00
Evangelos Ribeiro Tzaras d75d4916af manager: Use state flags instead of an enum and adapt to changes
This gives us some more granularity and is overall a better fit than the states
previously used.

Closes #327
2022-01-31 17:08:38 +00:00
Evangelos Ribeiro Tzaras 69c530dda8 dummy: provider: Fake being a modem
This is useful to avoid the "No modem" warning in the UI and helps us avoiding
to special case the dummy provider/origins.
2022-01-31 17:08:38 +00:00
Evangelos Ribeiro Tzaras b00deccdcb record-row: Use per protocol dial action
This allows us to deactivate actions if there is no origin that can handle them.

Closes #293
2022-01-31 17:08:38 +00:00
Evangelos Ribeiro Tzaras dd4a02aea2 manager: Add per protocol dial actions
These are enabled or disabled based on availability of suitable origins.
Allows CallsCallRecordRows (GtkListBoxRows in the call history) to use protocol
specific instead of global dial action.

Closes #307
2022-01-31 17:08:38 +00:00
Evangelos Ribeiro Tzaras 15943b9776 manager: Hardcode supported protocols and adapt to changes
This simplifies the code quite a bit by removing the supported protocols from
being determined dynamically via the loaded plugins.

It was previously used to add/remove a GListStore to origins_by_protocol.

This is a prerequisite for having per protocol dial actions.
2022-01-31 17:08:38 +00:00
Evangelos Ribeiro Tzaras 6aba8e119c dummy: origin: Restrict supported protocols to "tel" 2022-01-31 17:08:38 +00:00
Evangelos Ribeiro Tzaras 18aea10ca3 manager: Remove unused key argument in g_hash_table_iter_next()
We're only interested in the value here.
2022-01-31 17:08:38 +00:00
Evangelos Ribeiro Tzaras edbf046bfd ui-call-data: Implement "active-time" property 2022-01-31 15:51:45 +01:00
Evangelos Ribeiro Tzaras 8543fc7ab5 Update libcallui subproject and adjust to CuiCallState changes
We already had our mapping between CallsCallStates and CuiCallStates in place,
but the _DIALING state got renamed to _CALLING.

Additionally bundle CallsCallStates that map to the same CuiCallState to remove
some code.
2022-01-31 15:25:46 +01:00
Evangelos Ribeiro Tzaras ab3ff5772b settings: Fix memory leak
g_settings_get_string() and g_settings_get_strv() are transfer full,
so we should use g_value_take_string() instead of g_value_set_string() and
g_value_take_boxed() instead of g_value_set_boxed()
2022-01-27 18:02:15 +01:00
Evangelos Ribeiro Tzaras 7587efb78a log: Fix One Definition Rule
As caught by running with enabled address sanitization.
2022-01-27 18:02:15 +01:00
Evangelos Ribeiro Tzaras a8de63f838 dummy: origin: Fix memory leaks 2022-01-27 18:02:15 +01:00
Evangelos Ribeiro Tzaras 7cba40ff60 tests: origin: Fix memory leaks 2022-01-27 18:02:15 +01:00
Evangelos Ribeiro Tzaras 1d1489e167 call: Fix memory leaks 2022-01-27 18:02:15 +01:00
Evangelos Ribeiro Tzaras 6c857ba94a tests: call: Prefer G_SOURCE_REMOVE instead of FALSE 2022-01-27 18:02:15 +01:00
Evangelos Ribeiro Tzaras f6e6d08332 sip: origin: Fix memory leak 2022-01-27 18:02:15 +01:00
Evangelos Ribeiro Tzaras 9569afa073 origin: Add transfer annotation for calls_origin_get_calls () 2022-01-27 18:02:15 +01:00
Evangelos Ribeiro Tzaras 1b4af654f1 sip: origin: Fix comment style 2022-01-27 18:02:15 +01:00
Evangelos Ribeiro Tzaras 14930ba82f Document and release 42.beta.1 2022-01-26 14:35:20 +01:00
Evangelos Ribeiro Tzaras 79a7e8c59f Update libcall-ui subproject to v0.0.1
This brings a few UI fixes and updated translations
2022-01-26 14:22:05 +01:00
Evangelos Ribeiro Tzaras a7677798d1 dbus-manager: Fix critical when transforming call states
Fixes c796df9260
2022-01-26 08:27:31 +01:00
Evangelos Ribeiro Tzaras 40cb9edf43 readme: Mention that documentation is available as gitlab page 2022-01-26 06:16:42 +00:00
Evangelos Ribeiro Tzaras 55028565aa ci: Deploy documentation as gitlab pages 2022-01-26 06:16:42 +00:00
Evangelos Ribeiro Tzaras 1c253c0604 Document and release 42.beta.0 2022-01-25 14:22:43 +01:00
Evangelos Ribeiro Tzaras 0dc761d87c tests: sip: Switch to state notify signal 2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras 7c5dcd37d7 sip: origin: Switch to state notify signal
We don't need the old state here, so let's use the "notify::state" signal
instead of the "state-changed" signal.
2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras 470475e531 mm: origin: Switch to state notify signal
We don't need the old state here, so let's use the "notify::state" signal
instead of the "state-changed" signal.
2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras 58507556e5 dummy: origin: Switch to state notify signal
We don't need the old state here, so let's use the "notify::state" signal
instead of the "state-changed" signal.
2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras 656643c522 call: Temporarily hold ref while setting new state
This is needed to make sure the object stays alive, because some implementations
will unref the call after it has been set to a disconnected state.

This has become apparent because tests started failing when origins switched
from the "state-changed" to the "notify::state" signal (as is done in the next
commits).
2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras c2c8b1acd9 dummy: origin: Use g_assert in non public functions 2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras 85c6ac2ff8 tests: dummy origin: Use correct origin
And unref it after we're done. Otherwise we're leaking memory because the dummy
provider only keeps actively unrefs the origin it added itself.
2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras c594726ce5 best-match: Fix potential memory leak
We would leak memory if calls_best_match_set_phone_number would be called a
second time with a SIP address.
2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras ebc5e584bb manager: Use ternary operator instead of if/else block
Less code is better code.
2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras f01c99c587 ui-call-data: Remove unused struct 2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras 36c4f2b349 ui-call-data: Add license header 2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras 6567b7cad7 call-selector-item: Codestyle
Move public functions to the bottom
2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras c0a67d2cce contacts-provider: Remove static from action name string
There was no reason to have it static in the first place.
2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras 99057452c5 dbus: Document interface in a way that gtk-doc can use
Fixes #394
2022-01-20 10:50:48 +01:00
Evangelos Ribeiro Tzaras 12ae596352 contacts-provider: Overhaul documentation
This commit describes what CallsContactsProvider is used for,
documents signals, properties and the public API.
2022-01-20 10:17:26 +01:00
Evangelos Ribeiro Tzaras bcdb703ec3 origin: Remove unused parameter from docstring 2022-01-20 10:17:26 +01:00
Evangelos Ribeiro Tzaras 4dd4ba3be3 provider: Remove unused parameter from docstring 2022-01-20 10:17:26 +01:00
Evangelos Ribeiro Tzaras 52eebaad83 message-source: Fix typo 2022-01-20 10:17:26 +01:00
Evangelos Ribeiro Tzaras 558393a8cb meson: Don't access the network when validating metadata
Build servers might not allow network access and this shaves off a little time
in the test suite.
It shouldn't be a problem running the validation manually when adding new
screenshots.
2022-01-20 10:17:26 +01:00
Evangelos Ribeiro Tzaras c796df9260 dbus-manager: Use CuiCallStates instead of CallsCallStates
CallsCallStates are considered internal call states and do not map 1:1 to
CuiCallStates.
2022-01-20 07:42:08 +00:00
Evangelos Ribeiro Tzaras e3afefcef2 ui-call-data: Add call state mapping to public API
This allows it to get used in the DBus manager in a GBindingTransformFunc
until to make sure we don't use emit deprecated values over DBus.
2022-01-20 07:42:08 +00:00
Evangelos Ribeiro Tzaras 4bc8e82ff6 ui-call-data: Don't use deprecated states in mapping
For the UI we don't distinguish between dialing and alerting or between
waiting and incoming.
2022-01-20 07:42:08 +00:00
Evangelos Ribeiro Tzaras 6e9fadbee2 dbus: document states 2022-01-20 07:42:08 +00:00
Evangelos Ribeiro Tzaras 7c7110996c meson: Warn when using misleading indentation
This allows catching bugs like the infamous 'goto fail goto fail' bug.
2022-01-18 05:25:49 +01:00
Evangelos Ribeiro Tzaras 54092e45d4 call: Fix typos in section docstring 2022-01-18 03:53:11 +00:00
Evangelos Ribeiro Tzaras 3eda1119ad potfiles: Add src/account.c 2022-01-18 02:50:04 +00:00
Evangelos Ribeiro Tzaras 827594dc2e record-row: Add context menu entry for adding a new contact
Fixes #157
2022-01-18 02:12:37 +00:00
Evangelos Ribeiro Tzaras 5588bd934a contacts-provider: Add API to add new contacts 2022-01-18 02:12:37 +00:00
Evangelos Ribeiro Tzaras c6d867cd72 contacts-provider: Add GDBusActionGroup to query if contacts can be added
As this requires a patched GNOME Contacts, we want to be able to query if the
necessary actions to add new contacts is available before trying to use it.
2022-01-18 02:12:37 +00:00
Evangelos Ribeiro Tzaras 56da32d1b6 contacts-provider: Remove unused config.h include 2022-01-18 02:12:37 +00:00
Evangelos Ribeiro Tzaras 8ad21b211c contacts-provider: Codestyle 2022-01-18 02:12:37 +00:00
Evangelos Ribeiro Tzaras bc4ed210b2 contacts-provider: Sort includes 2022-01-18 02:12:37 +00:00
Evangelos Ribeiro Tzaras 339093876c manager: Propagate messages from account
Not all portions from the user interface are listening directly to messages from
accounts, so the manager should propagate them to allow the UI to pick them up.

Closes #340
2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras cc8da717b1 account-overview: Reindent ui file
This was done to avoid the diff noise in the previous commit introducing
the in app notifications to the account overview.
2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras 2a9791a9a3 account-overview: Show notification on account message
Accounts implement the CallsMessageSource interface and emit messages when
there are state changes of which the user should be informed.

Closes #340
2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras 695839a2d9 sip: origin: Emit user feedback on state change 2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras 4cd3a0dcc3 account: Add message emission API
This can be used when wanting to show a human readable description in the UI
for example when the account state changes.
2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras cdb6f90acc account: Rework account states
Introduce a state-changed signal which also gives a reason for why the state
changed. This will allow the UI to give some meaningful feedback to the user.

Additionally we can get rid of a number of things that were not really states,
but rather reasons for why a state changed (f.e. authentication failures).
2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras d5fd098479 sip: origin: Make go_online() a no-op in the direct connection case
This avoids some special casing in init_sip_account()
2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras 6d877fd9d3 manager: Implement message source interface
This allows the user interface to pick up messages by having them propagate
from the managed providers, origins, calls, etc.
2022-01-11 12:00:10 +00:00