Commit Graph
100 Commits
Author SHA1 Message Date
Evangelos Ribeiro Tzaras 42b456f03a po: Add plugin desktop files
Calls preferences will show the name and description of a plugin,
so they should be translatable.
2023-05-15 09:56:28 +02:00
Evangelos Ribeiro Tzaras 22bcd46a26 build: Define po_dir variable 2023-05-15 09:56:28 +02:00
Evangelos Ribeiro Tzaras 4598eaa020 test-manager: Codestyle 2023-05-15 09:56:28 +02:00
Evangelos Ribeiro Tzaras e26e6640d8 test-application: Use dummy plugin
The test should not try communicating with any modem through ModemManager.

Fixes: #576
2023-05-12 16:46:30 +00:00
Evangelos Ribeiro Tzaras 9c5d7a58a1 sip-provider: Add debugging to password lookup 2023-05-12 18:06:34 +02:00
Evangelos Ribeiro Tzaras b32f3185a1 ci: Allow nightly jobs to fail
Apparently the publish jobs try to run even though the needed flatpak
job failed, so disable these too.

Fixes: b550617de2
2023-05-10 20:37:41 +02:00
Evangelos Ribeiro Tzaras 3e699275a4 mm-origin: Don't unref origin in call_deleted_cb
Fixes: 72a85d62fa
Closes: #573
2023-05-10 18:00:42 +00:00
Evangelos Ribeiro Tzaras 037d2c55f6 srtp-utils: Pass MKI length into error message
Fixes: 4937723541
2023-05-09 09:23:39 +00:00
Evangelos Ribeiro Tzaras 509456cb50 ci: Build tarball for tags 2023-05-09 07:44:09 +00:00
Evangelos Ribeiro Tzaras e80abf713a tests: Use g_test_init instead of gtk_test_init
gtk_test_init() ends up calling gtk_init() which tries opening
the default display. CI jobs sometimes seem to trip over this
even when run through xvfb-run. Therefore we use g_test_init()
instead.
2023-05-09 07:44:09 +00:00
Evangelos Ribeiro Tzaras b550617de2 ci: Allow flatpak jobs to fail
They have been a bit flaky lately, especially the arm64 job.
2023-05-09 09:16:11 +02:00
Evangelos Ribeiro Tzaras 61b81a285c mm-provider: Don't warn about cancelled mm_manager_new()
It is cancelled when disposing and does not warrant a warning.
2023-05-01 09:35:10 +02:00
Evangelos Ribeiro Tzaras e9452a394a Document and release 45~alpha.0 2023-04-25 11:19:18 +02:00
Evangelos Ribeiro Tzaras c6ea3adf64 manager: Respect object life cycle for signal handlers 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras f7dd62c0bd contacts-provider: Disconnect signals on finalize 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras c7ba302b18 account-row: Guard calls_account_row_new() against invalid provider 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras 4576547c20 sip-origin: Prefer named constant over magic numbers 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras 5362d1c975 sip-origin: Don't leak address 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras 0e753816c9 sip-origin: Include SIP address in debugging
This makes it easier to see if all accounts are being disposed
2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras f7745f50bd sip-origin: Keep sofia running to allow unregistering on dispose
sofia-sip needs to keep iterating its' main loop in order to
unregister as well as process the response from the server.

Closes: #554
2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras 8b3eccd1b7 sip-origin: Use g_clear_pointer() instead of emulating it 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras 3076f913e7 manager: Clear providers after origins
Fixes a segmentation fault on shutdown in nua_unregister()
2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras 23e9cca320 main-window: Use gtk_widget_destroy() for windows
Top level widgets should typically call gtk_widget_destroy()
2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras 47bb3aaa62 account-overview: Respect object life cycle for signal handlers
Prevents the following failed assertion when shutting down Calls:

CallsAccountOverview:ERROR:../src/calls-account-overview.c:222:update_account_list: assertion failed: (CALLS_IS_ACCOUNT_OVERVIEW (self))
2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras 34d4e854bc manager: Respect object life cycle for signal handlers
Don't call signal handlers after the manager has been disposed.
2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras f485215a9f application: Initialize objects before parsing options
This helps making object life cycles clearer and
with logging already set up we won't miss any early debugging messages.
2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras d690fe5f68 application: Handle setting verbosity first
We want logging verbosity to be set before other command line options
are handled as we might be missing messages otherwise.
2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras 813103e684 application: Don't leak CallsManager 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras 2f3f55c831 new-call-box: Don't leak CallsOrigin
get_selected_origin () does not need to take a reference on CallsOrigin
2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras ea5d7038e7 new-call-box: Use STR_IS_NULL_OR_EMPTY macro 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras 0452d8a2bf manager: Use STR_IS_NULL_OR_EMPTY macro 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras 3e43ba2975 call-window: Remove dead code 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras 2550141585 application: Remove unused macro 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras 12161080bc test-manager: Remove unused include 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras 62f6f75667 test-manager: Remove unused variable 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras 4e900e1ac5 main-window: Codestyle 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras 0261271560 main-window: Sort includes 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras 9ff06561e8 resources: Sort alphabetically 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras 0cb25d9e3c build: Sort enum headers 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras cf52fbba67 test-contacts: Add more test cases
Testing lookup of both empty string and NULL ensures we won't regress.
2023-04-13 06:01:05 +00:00
Evangelos Ribeiro Tzaras 23ee0475dd best-match: Don't special case NULL best match
We always get a valid best match, even for NULL or empty ids,
so there is no more need to special case it.
2023-04-13 06:01:05 +00:00
Evangelos Ribeiro Tzaras 830906f57a contacts-provider: Handle NULL and empty strings graceful in lookup
Fixes a crash where we asserted on best match when the id was NULL or
empty.

Closes: #567
2023-04-13 06:01:05 +00:00
Evangelos Ribeiro Tzaras 10d74634ba contacts-provider: Simplify refcounting in lookup_id()
g_autoptr usage was a bit pointless here since
calls_contacts_provider_lookup_id() is transfer full
2023-04-13 06:01:05 +00:00
Evangelos Ribeiro Tzaras ac2dc8573d best-match: Add gtk-doc annotations to the public API
Notably this adds ownership and nullable annotations, where appropriate.
2023-04-13 06:01:05 +00:00
Evangelos Ribeiro Tzaras 3fb016f6b2 best-match: Allow both NULL and empty strings as phone number
This allows us to get rid of some special casing when retrieving
primary and secondary display information.
2023-04-13 06:01:05 +00:00
Evangelos Ribeiro Tzaras 94cfbd83b2 sip-provider: Chain up to constructed early 2023-04-12 09:17:40 +00:00
Evangelos Ribeiro Tzaras 243753d064 sip-provider: Improve debugging of account loading
This should help diagnosing why the flatpak sometimes fails to add SIP accounts.
2023-04-12 09:17:40 +00:00
Evangelos Ribeiro Tzaras 208438236c sip-provider: Don't leak keyfile
The reference taken in new_origin_from_keyfile_secret() was never
released in the async callback.
2023-04-12 09:17:40 +00:00
Evangelos Ribeiro Tzaras c84f2a2bd9 sip-provider: Remove unused variables 2023-04-12 09:17:40 +00:00
Evangelos Ribeiro Tzaras 13d57f19bf tests: Add CALLS_SIP_ACCOUNT_FILE to environment
Otherwise the application test will try using the users
configured SIP accounts.
2023-04-10 08:03:21 +02:00
Evangelos Ribeiro Tzaras 36fdbc28e6 emergency-calls-manager: Don't leak origin
g_list_model_get_item is transfer full
2023-04-09 16:08:22 +02:00
Evangelos Ribeiro Tzaras 0de7599567 emergency-calls-manager: Add missing argument for on_origins_changed handler
The "removed" argument of the models "items-changed" signal was
forgotten making it misbehave when origins do get removed:

GLib-GObject[1287799]: WARNING: invalid (NULL) pointer instance
GLib-GObject[1287799]:CRITICAL: g_signal_connect_object: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
2023-04-09 16:08:00 +02:00
Evangelos Ribeiro Tzaras 9a52c57ffe emergency-calls-manager: Fix indentation
By running uncrustify
2023-04-09 12:18:55 +02:00
Evangelos Ribeiro Tzaras 3647f8f8c2 Update libcall-ui to v0.1.0
From NEWS:
  * Breaking change: Drop deprecated call states
  * Fix audio-mode reset
  * Improve keyboard navigation

Also includes updates to translations.
2023-04-08 18:53:30 +02:00
Evangelos Ribeiro Tzaras 8963218478 Document and release 44.0 2023-03-17 11:36:29 +01:00
Evangelos Ribeiro Tzaras d6619d68c9 tests: Don't override XDG_CONFIG_HOME
It was introduced in 4b51f340c8
to prevent accessing user home during tests:

The only place where this the home is currently accessed is when loading
SIP accounts and these can already be overriden with
CALLS_SIP_ACCOUNT_FILE.

It seems that XDG_CONFIG_HOME is propagated to the flatpak runner,
even though it was only overriden for the test suite.

  ========================================================================
  Building module calls in /builds/devrtz/calls/.flatpak-builder/build/calls-1
  ========================================================================
  Error: module calls: Error opening directory '/builds/devrtz/calls/_build/calls': Permission denied

Reported at https://gitlab.gnome.org/Infrastructure/GitLab/-/issues/596#note_1654082
2023-02-12 10:26:48 +01:00
Evangelos Ribeiro Tzaras d790e35bc3 sip-provider: Remove duplicated check
init() already checked if CALLS_SIP_TEST was set,
no need to do it again in constructed()
2023-02-12 10:26:46 +01:00
Evangelos Ribeiro Tzaras 4d402d2f79 sip-provider: Use STR_IS_NULL_OR_EMPTY macro 2023-02-12 10:26:46 +01:00
Evangelos Ribeiro Tzaras e4bd4580e7 tests: Add application shutdown tests 2023-02-09 19:07:32 +00:00
Evangelos Ribeiro Tzaras d901e4c8a6 application: Delay shutting down until database is done
Operations on the database are not cancellable, so we need to ensure any
critical code (such as database migration) has completed.
Otherwise we risk leaving the database in a locked state (or worse):

WARNING **: 09:24:53.428: Failed to determine schema version: sqlite3_prepare_v2 failed: database is locked: CREATE TABLE IF NOT EXISTS _gom_version (version INTEGER);
2023-02-09 19:07:32 +00:00
Evangelos Ribeiro Tzaras fb07e0122d record-store: Emit signal once DB is migrated
This helps letting CallsApplication decide if it should run a few more
iterations to ensure any critical code finishes executing.
2023-02-09 19:07:32 +00:00
Evangelos Ribeiro Tzaras 4b51f340c8 tests: Prevent tests from accessing user home
User files such as call records and VoIP account configs should be left
alone during tests.
2023-02-09 19:07:32 +00:00
Evangelos Ribeiro Tzaras 01b8a1c873 record-store: Allow overriding database location
By setting the environment variable CALLS_RECORD_DIR the database
location can be overriden which is useful for testing.
2023-02-09 19:07:32 +00:00
Evangelos Ribeiro Tzaras 4ff33a4566 ci: Update debian image 2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras a1892f9421 debian: Ran wrap-and-sort -ast 2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras 767fbdad01 d/control: Add svg pixbufloader
As needed for the application test.
2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras 656c8f96bf account-overview: Respect object lifecycle for signals 2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras ffc3c984b0 application: Respect object lifecycle for signals 2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras 6ab5905a9b call-window: Respect object lifecycle for signals 2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras 63d065118f main-window: Respect object lifecycle for signals 2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras e168170f9e new-call-box: Respect object lifecycle for signals 2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras 46736a63fa record-store: Ensure store stays alive during async tasks
As GOM does not allow us to cancel asynchronous tasks,
we need to hold references temporarily.
2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras b49e086549 application: Guard against setting application name twice
This is useful for testing the CallsApplication.
2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras ac6aff798d application: Shut down cleanly when application quits
Previously the application was only properly shut down
when it received SIGTERM/SIGINT.
2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras 0c004b5204 application: Only destroy previously created widgets
If this is not the primary instance self->main_window and
self->call_window will not have been created in the first place.

Fixes: e878fabb27
2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras 481c67a707 application: Coding style 2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras 257278da2c record-store: Fix coding style 2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras 673164803f new-call-box: Uncrustify 2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras 205f691570 mm-origin: Disable call waiting
As Calls cannot deal with call waiting we should disable it entirely.
This works around issues where call audio get's completely broken once
the waiting call is disconnected on the BM818 modem shipped with the
Librem 5.

See https://source.puri.sm/Librem5/OS-issues/-/issues/311
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras 72a85d62fa mm-origin: Ensure objects stay alive during async operations 2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras 0f9a89aa3b mm-origin: Remove unnecessary cast
g_signal_connect takes a gpointer, so the instance parameter does not
need to be cast explicitly.
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras 3dcb1881bf mm-origin: Don't leak ID 2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras 5379907cf8 mm-origin: Don't leak MMModem
mm_object_get_modem() is transfer full,
so we need to unref it when we're done.
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras 9c8e70088c mm-origin: Don't leak MMModemVoice
mm_object_get_modem_voice() is transfer full,
so we need to unref it when we're done.
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras 6f771b1685 mm-origin: Avoid unnecessary allocation 2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras 0232430ae1 mm-origin: Prefer g_autoptr instead of explicit reference counting 2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras f09852bc19 mm-origin: Prefer STR_IS_NULL_OR_EMPTY macro to explicit checks 2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras ab6f1a4c45 mm-origin: Explicitly cast ussd state
This is better than the implicit conversion of the enum.
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras e5780677f6 mm-origin: Chain up to to parent's constructed() early
Not strictly needed here, because we don't depend on the parent being
constructed but this is how it should generally be done.
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras 2e43639d03 mm-origin: Codestyle
- Prefer char* over gchar*
- g_auto* variables come first
- Two newlines between functions
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras 1793035683 mm-call: Guard public API 2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras 9ee436135f mm-call: Codestyle
Prefer char over gchar and some whitespace cleanups.
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras 4733d0e033 Revert "flatpak: Adjust to sofia-sip tarball magically changing"
Today the tarball magically changed back.

This reverts commit 228982819a.
2023-01-31 07:43:33 +01:00
Evangelos Ribeiro Tzaras 6c60c935f0 Revert "flatpak: Adjust to libphonenumber tarball magically changing"
Today the tarball magically changed back.

This reverts commit 745987f32b.
2023-01-31 07:42:01 +01:00
Evangelos Ribeiro Tzaras 228982819a flatpak: Adjust to sofia-sip tarball magically changing
GitHub is great. Probably no malware ¯\_(ツ)_/¯
2023-01-30 20:45:11 +01:00
Evangelos Ribeiro Tzaras 745987f32b flatpak: Adjust to libphonenumber tarball magically changing
GitHub is great. Probably no malware ¯\_(ツ)_/¯
2023-01-30 20:27:15 +01:00
Evangelos Ribeiro Tzaras 0e6d5d9745 record-store: Don't crash on unexpected call state changes
It has been reported that the BM818 sometimes unexpectedly
changes the call state from "active" back to "ringing-in"
(as reported by ModemManager) shortly after accepting an incoming call.

ModemManager[734]: <info>  [modem1/call1] user request to accept call
ModemManager[734]: <info>  [modem1/call1] call is accepted
ModemManager[734]: <info>  [modem1/call1] call state changed: ringing-in -> active (accepted)
ModemManager[734]: <info>  [modem1/call1] call state changed: active -> ringing-in (unknown)

This leads to a failed assertion and program termination.
Instead of crashing raising a critical warning is more appropriate
and may allow the user to pick up the call after all.

Closes: #547
2023-01-30 08:34:24 +00:00
Evangelos Ribeiro Tzaras c0140b4109 contacts-box: Show favourites at the top
Closes: #493
2023-01-30 07:34:04 +00:00
Evangelos Ribeiro Tzaras 55147aed97 best-match: Add API to query if individual is a favourite 2023-01-30 07:34:04 +00:00
Evangelos Ribeiro Tzaras 18173f067f sip-provider: Use STR_IS_NULL_OR_EMPTY macro 2023-01-26 12:03:39 +00:00