1
0
Fork 0
mirror of https://gitlab.gnome.org/GNOME/calls.git synced 2025-01-09 13:25:35 +00:00
Commit graph

414 commits

Author SHA1 Message Date
Evangelos Ribeiro Tzaras
b458f6f040 record-row: Reword accessible name
"party" in "Call the party" could lead to confusion.
Fixes #319
2021-09-20 03:31:28 +02:00
Evangelos Ribeiro Tzaras
1a14075945 application: Do not prepend country code when dialing
Fixes #176
2021-09-20 03:31:28 +02:00
Evangelos Ribeiro Tzaras
464f3a993e application: Clarify that -l flag is to be used with numbers only
This will also help unifying handling of tel: URIs.
2021-09-20 03:31:28 +02:00
Evangelos Ribeiro Tzaras
3714f99d38 Introduce CallsNetworkWatch to notify of network changes
The libsofia-sip stack needs to bind to a specific interface when there are
multiple network interfaces available.
Handles should be recreated when the default route changes.
2021-09-02 09:17:12 +02:00
Evangelos Ribeiro Tzaras
876ffb1e8c new-call-box: Always update the UI when the list of origins changes
Otherwise this can lead to being stuck in numeric/non-numeric input mode.
2021-08-26 12:47:57 +00:00
Evangelos Ribeiro Tzaras
a85b9cd5c3 manager: Initialize g_auto variable to NULL 2021-08-25 11:06:32 +02:00
Evangelos Ribeiro Tzaras
9c777b7db8 new-call-box: Hide empty results
Because the empty result looks weird.
2021-08-19 01:46:59 +02:00
Evangelos Ribeiro Tzaras
b1c22e4310 new-call-box: Press enter to place a call
Connect to the "activate" signal and take appropriate action
for both numeric and non-numeric cases.
2021-08-19 01:44:06 +02:00
Evangelos Ribeiro Tzaras
a21bc475e4 new-call-box: Reindent 2021-08-19 01:35:47 +02:00
Evangelos Ribeiro Tzaras
da4c6b043a new-call-box: Add placeholder texts for text input fields 2021-08-14 20:46:11 +02:00
Evangelos Ribeiro Tzaras
2c06497b08 new-call-box: Tweak the UI
- Fills horizontally now
- Make sure the "dial" and "backspace" button are still properly aligned
  by using HdyClamp with the keypads typical size (rougly 250)
- Remove unnecessary default values from the xml
  (f.e. "can-focus" on GtkEntry or GtkButton)
2021-08-14 20:46:11 +02:00
Evangelos Ribeiro Tzaras
3779aa1062 new-call-box: Set numeric input property based on selected origin 2021-08-14 20:46:11 +02:00
Evangelos Ribeiro Tzaras
db848b2c9f new-call-box: Add entry for non-numeric inputs 2021-08-14 20:46:11 +02:00
Evangelos Ribeiro Tzaras
e9661ce01c new-call-box: Introduce numeric-input-only property
This property will show the keypad for numeric inputs (i.e. telephone numbers)
or an entry allowing arbitrary inputs for SIP or other protocols.
2021-08-14 20:46:11 +02:00
Evangelos Ribeiro Tzaras
c61d63383f new-call-box: Remove unnecessary GtkBox 2021-08-14 20:46:11 +02:00
Evangelos Ribeiro Tzaras
1312b2624c new-call-box: Remove unused GtkListStore 2021-08-14 20:46:11 +02:00
Evangelos Ribeiro Tzaras
179c844a80 calls-new-call-box: Only show origin combo box if there is a choice 2021-08-14 20:46:11 +02:00
Evangelos Ribeiro Tzaras
62711da7fc new-call-box: Simplify HdyComboRow binding 2021-08-13 02:13:27 +02:00
Evangelos Ribeiro Tzaras
c7731b189a origin: Add "numeric-addresses" property
This will be useful in the dialpad to determine whether we should allow
only numeric input or not.
2021-08-13 02:13:27 +02:00
Mohammed Sadiq
8af2563859 Add and use new logger
This helps provider better logs.  With this, the user can now run
with `-v` for verbose logs, use more `-v` to be more verbose,
eg `calls -vvvvv` log shall be very verbose
2021-08-11 09:38:19 +00:00
Guido Günther
a1fa33c7af notifier: Add notification category
This helps shells to adjust the kind of haptic/visual/audio
feedback for the notification.
2021-08-04 02:36:34 +00:00
Guido Günther
26f0c9cb01 calls-notifier: Set log domain 2021-08-04 02:36:34 +00:00
Mohammed Sadiq
fe84a02af2 history-box: Use content style for listbox
So as to match the design and less code to maintain
2021-08-03 12:42:46 +00:00
Mohammed Sadiq
47a7d58074 application: Fix handling commandline arguments
handle_local_options() are supposed to be handled only in local instance,
and not in remote instance.
2021-07-30 00:12:50 +00:00
Evangelos Ribeiro Tzaras
9d9e989be4 secret-store: Work around bug in gnome-keyring preventing keyring unlocking
When a keyring is cold (unlocked) the schema is set as
"org.freedesktop.Secret.Generic". If we require the name to strictly match
while searching we won't ever get a match.

See https://gitlab.gnome.org/GNOME/gnome-keyring/-/issues/89 and
https://gitlab.gnome.org/GNOME/libsecret/-/issues/7 for more information

Closes #316
2021-07-21 17:30:51 +02:00
Evangelos Ribeiro Tzaras
241909c942 main-window: Fix the action name for the about dialog 2021-07-20 10:18:03 +02:00
Evangelos Ribeiro Tzaras
373465cc2c about: Update copyright 2021-07-20 10:18:03 +02:00
Evangelos Ribeiro Tzaras
1f0ad8cf7c about: Update authors 2021-07-20 10:18:03 +02:00
Evangelos Ribeiro Tzaras
c5e4c80a47 Introduce CallsSecretStore to store credentials 2021-07-20 10:17:17 +02:00
Evangelos Ribeiro Tzaras
803e089cfc account-overview: Hook up available providers
Fixes #264.
2021-07-20 10:17:17 +02:00
Evangelos Ribeiro Tzaras
fc7156fe75 Introduce CallsAccountOverview: A UI to allow managing VoIP accounts
CallsAccountOverview allows user to view, add and edit VoIP accounts
(currently SIP only).

Each CallsAccount is represented by a CallsAccountRow.

account-row: Staying alive
2021-07-20 10:17:17 +02:00
Evangelos Ribeiro Tzaras
fadeaeb6b5 main-window: Add menu button
This will be used to manage VoIP accounts (SIP), show the About dialog
and so on. We will leave this hidden for now.
2021-07-20 10:17:17 +02:00
Evangelos Ribeiro Tzaras
64bb170efa account-provider: Repurpose to allow graphical credential editing 2021-07-20 10:17:17 +02:00
Evangelos Ribeiro Tzaras
d5bf31bdaf manager: Temporarily hold a reference to provider being unloaded 2021-07-20 10:17:17 +02:00
Evangelos Ribeiro Tzaras
2b31a9677e manager: Emit signal when loaded providers have changed 2021-07-20 10:17:17 +02:00
Evangelos Ribeiro Tzaras
cc3a562f03 manager: Add API to query loaded providers 2021-07-20 10:17:17 +02:00
Evangelos Ribeiro Tzaras
a638b64402 account: Add address property 2021-07-20 10:17:17 +02:00
Evangelos Ribeiro Tzaras
dd3fbf646e account: Add API to query account state 2021-07-20 10:17:17 +02:00
Evangelos Ribeiro Tzaras
82ff6d0ac5 account: Use explicit notify for account state property 2021-07-20 10:17:17 +02:00
Evangelos Ribeiro Tzaras
babd013bd7 Remove CallsCredentials and adapt to changes
The provider knows best which credentials it needs and CallsCredentials
was not generic to begin with, so get rid of it.
2021-07-20 10:17:17 +02:00
Evangelos Ribeiro Tzaras
2af2b316ec Various codestyle fixes 2021-07-20 10:17:17 +02:00
Adrien Plazas
d4ee8b4bc9 main-window: Fix the indentation
It was purposefully left broken to ease code review.
2021-07-16 08:43:43 +00:00
Adrien Plazas
f4f41d9db5 main-window: Make it a HdyApplicationWindow
This gives the window some nice rounded corners, and gives us more
freedom in how to implement the UI.

This purposefully leaves the indentation broken to ease code review, it
will be fixed in the next commit.
2021-07-16 08:43:43 +00:00
Guido Günther
f45ba43720 dbus: Add more DBus properties
These are needed to allow Phosh to handle incoming calls on
the locked screen.
2021-07-12 17:36:24 +02:00
Guido Günther
8bf320e006 Drop layer-surface
This drops the layer-surface code to put calls on top of the lockscreen.
This only works with wlroots based compositors and even there makes e.g.
unlocking the screen during a phone calls impossible.
2021-07-12 17:36:24 +02:00
Guido Günther
cad39e05ee dbus-manager: Fix typo in log-domain 2021-07-12 17:33:12 +02:00
Evangelos Ribeiro Tzaras
69b919d7ab DBus: Use org.gnome prefix and adapt to changes
In preparation to moving to GNOME all the IDs, DBus object paths, etc should
change.
2021-07-12 13:35:57 +00:00
Evangelos Ribeiro Tzaras
b74601f7c4 schema: Use org.gnome prefix and adapt to changes
In preparation to moving to GNOME all the IDs, DBus object paths, etc should
change.
2021-07-12 13:35:57 +00:00
Evangelos Ribeiro Tzaras
6e371d2f3f resources: Use /org/gnome prefix and adapt to changes
In preparation to moving to GNOME all the IDs, DBus object paths, etc should
change.
2021-07-12 13:35:57 +00:00
Evangelos Ribeiro Tzaras
9f45e8b0a5 call-display: Ellipsize labels at the end
Fixes #283
2021-07-01 02:02:09 +02:00
Evangelos Ribeiro Tzaras
c293b7029d best-match: Preliminary handling of SIP addresses
This does not perform any contact lookup, but instead introduces a benign
hack to be able to get something sensible when calling
`calls_best_match_get_name()` and avoids unnecessary warnings.
2021-07-01 02:01:32 +02:00
Evangelos Ribeiro Tzaras
fd45f04886 best-match: codestyle 2021-07-01 02:00:52 +02:00
Evangelos Ribeiro Tzaras
23e7fd3a60 manager: Don't use peas_engine_prepend_search_path
as it does not really "prepend" the search path.
See https://gitlab.gnome.org/GNOME/libpeas/-/issues/19

Closes #300
2021-06-29 14:47:03 +02:00
Evangelos Ribeiro Tzaras
e00b90d64e application: settings: Add autoload-plugins setting
This setting will be used to define the provider plugins to be loaded on
application startup if calls has been invoked without `--provider`
2021-06-26 08:57:53 +02:00
Evangelos Ribeiro Tzaras
4f6fb722b1 application: Allow invoking with multiple -p arguments
When calls is invoked with one or more `--provider` arguments,
the application will only load the providers specified by the command line.

If no `--provider` argument is given, the application will instead fall back
to loading providers defined in the settings (see next commit).
2021-06-26 08:57:53 +02:00
Evangelos Ribeiro Tzaras
cfd3c2a7fe util: Get rid of conditional compilation in calls_find_in_store()
This is not needed anymore after bumping the required glib version to 2.64.
2021-06-25 07:34:38 +00:00
Evangelos Ribeiro Tzaras
cce8318a64 notifier: Explicitly handle unknown callers
Closes #288
2021-06-18 17:13:48 +00:00
Evangelos Ribeiro Tzaras
dbb829be06 debug: Add G_LOG_DOMAIN to every file using g_debug() 2021-06-18 11:12:13 +02:00
Evangelos Ribeiro Tzaras
160d3e42a8 ringer: Follow coding style for G_LOG_DOMAIN
Closes #294
2021-06-18 11:12:13 +02:00
Evangelos Ribeiro Tzaras
b550160a0d util: Make position argument in calls_find_store() optional 2021-06-11 17:52:43 +02:00
Evangelos Ribeiro Tzaras
ccae753194 manager: codestyle 2021-06-11 17:50:42 +02:00
Evangelos Ribeiro Tzaras
ddcd91d3d9 manager: Fix whitespace 2021-06-11 17:50:22 +02:00
Evangelos Ribeiro Tzaras
acc35ad224 main-window: Add default case to switch statement
As caught by compiling with `-Wswitch-default`
2021-06-03 19:46:45 +00:00
Evangelos Ribeiro Tzaras
90b598ed5b record-store: Add default case to switch statements
As caught by compiling with `-Wswitch-default`
2021-06-03 19:46:45 +00:00
Evangelos Ribeiro Tzaras
f097a39e04 call-display: Add default case to switch statement
As caught by compiling with `-Wswitch-default`
2021-06-03 19:46:45 +00:00
Evangelos Ribeiro Tzaras
2847508034 Fix missing-declarations warnings all over the codebase
As caught by compiling with `-Wmissing-declarations`
by either making functions static, or declaring them in the header.
2021-06-03 19:46:45 +00:00
Evangelos Ribeiro Tzaras
96a7d901c1 Fix old-style warnings all over the codebase
As caught by compiling with `-Wold-style-definition` and `-Wstrict-prototypes`.
2021-06-03 19:46:45 +00:00
Evangelos Ribeiro Tzaras
38abbc5b18 record-store: codestyle 2021-06-03 19:46:45 +00:00
Evangelos Ribeiro Tzaras
9877f4469b display: Fix typo 2021-06-03 19:46:45 +00:00
Evangelos Ribeiro Tzaras
588955b59e display: codestyle 2021-06-03 19:46:45 +00:00
Guido Günther
6f93b48ef4 Expose call objects on DBus
This exports call objects on the session bus:

 $ gdbus monitor --session -d sm.puri.Calls
 …
 /sm/puri/Calls: org.freedesktop.DBus.ObjectManager.InterfacesAdded (objectpath '/sm/puri/Calls/Call/1', {'sm.puri.Calls.Call': {'Inbound': <false>, 'State': <uint32 0>, 'Id': <''>, 'Party': <''>}})
 /sm/puri/Calls/Call/1: org.freedesktop.DBus.Properties.PropertiesChanged ('sm.puri.Calls.Call', {'Id': <'0987654321'>, 'Inbound': <true>, 'State': <uint32 5>}, @as [])
 /sm/puri/Calls: org.freedesktop.DBus.ObjectManager.InterfacesRemoved (objectpath '/sm/puri/Calls/Call/1', ['sm.puri.Calls.Call'])
 $ gdbus call --session --dest sm.puri.Calls --object-path /sm/puri/Calls/Call/1 --method sm.puri.Calls.Call.Hangup

Currenty hangup and accept methods are implemented as well as exposing
the current call state.
2021-06-03 14:29:36 +00:00
Evangelos Ribeiro Tzaras
8d937bedf6 Initial DBus API 2021-06-03 14:29:36 +00:00
Evangelos Ribeiro Tzaras
cb533aabb7 manager: Update country code
By connecting to the "notify::country-code" signal of our origins.
2021-06-01 14:52:23 +02:00
Evangelos Ribeiro Tzaras
7d3426598d application: settings: Add country code setting
This helps to unbreak country code lookup (see 5fd39121).
2021-06-01 14:52:23 +02:00
Evangelos Ribeiro Tzaras
4990529c6c tests: manager: Add multiple provider tests
The test suite can be further expanded later. For now this suffices to
have some basic regression testing for multiple provider support in place.
2021-06-01 14:52:23 +02:00
Evangelos Ribeiro Tzaras
44f2002f86 manager: Differentiate the NO_ORIGIN state
This avoids confusion when only the SIP plugin is loaded, but no account
is being used.

For this we introduce two new functions in the abstract CallsProvider class:
`is_modem()` to indicate whether the the provider deals with PTSN telephony and
`is_operational()` which by default simply checks if there any avalaible origins
2021-06-01 14:52:23 +02:00
Evangelos Ribeiro Tzaras
98d66743a1 application: Don't add a provider if one is already present
If we initially invoked `gnome-calls -p sip` and later invoke
`gnome-calls sip:user@host` we don't expect to have the default MM provider
added.
2021-06-01 14:52:23 +02:00
Evangelos Ribeiro Tzaras
3f3b108cea new-call-box: Honour auto-use-default-origins setting 2021-06-01 14:52:23 +02:00
Evangelos Ribeiro Tzaras
fef1531749 application: Add CallsSettings class
This makes it easy to access application wide settings.
2021-06-01 14:52:23 +02:00
Evangelos Ribeiro Tzaras
0b2f146053 manager: support multiple providers
This includes the following changes:
- Introduce a `providers` hash table to keep track of multiple CallProvider's
  and remove the `provider` member
- Remove `calls_manager_get_provider()` and `calls_manager_set_provider()`
  in favour of `calls_manager_add_provider()`, `calls_manager_remove_provider()`
  and `calls_manager_has_provider()`
- Introduce a `origins` GListStore to keep track of available origins.
  `origins` is updated in `items_changed_cb()` when the origins of any
  CallsProvider are updated.
- Adapt to changes with respect to `calls_manager_get_origins()`.
- Introduce `origins_by_protocol` hash table to keep track of available origins
  per protocol.
- Adjust tests
- We temporarily break country code lookup which was handled previously
  with the "default-origin" mechanism. We will add it back to the CallsSettings
  class which will provide a better application-wide mechanism.
2021-06-01 14:52:18 +02:00
Evangelos Ribeiro Tzaras
0c966fdf83 origin: Add API to query supported protocols
This will allow selecting a suitable origin when placing outgoing calls.
2021-05-28 17:02:02 +02:00
Evangelos Ribeiro Tzaras
7ad0f4cdd6 provider: Add API to query supported protocols
These are the protocols that the provider plugin may support. The origins
must be queried independently whether or not they support any given protocol.

Example: A SIP origin/account may or may not support the "tel" protocol.
2021-05-28 17:02:02 +02:00
Evangelos Ribeiro Tzaras
6d8c227b24 calls-record: Introduce the protocol property
This is in preparation for supporting multiple providers (which are handling
different protocols/URI schemes).

This commit also changes the underlying database schema.
2021-05-28 17:02:02 +02:00
Evangelos Ribeiro Tzaras
53f69b06dd call: Introduce protocol property 2021-05-28 13:18:24 +02:00
Evangelos Ribeiro Tzaras
1e84812938 util: Add simple API to query protocol 2021-05-28 13:18:24 +02:00
Evangelos Ribeiro Tzaras
80ec7d8a35 account-provider: Add debugging in the public functions 2021-05-28 13:18:24 +02:00
Evangelos Ribeiro Tzaras
fecdc1fff8 cleanup: Fix calls_origin_get_name() related memory leaks
Document calls_origin_get_name() correctly as transfer-full.
Additionaly fix related memory leaks.
2021-05-28 13:18:24 +02:00
Evangelos Ribeiro Tzaras
1543802c88 provider: whitespace and indentation 2021-05-28 13:18:24 +02:00
Evangelos Ribeiro Tzaras
2ac43f391a manager: Set peas search path only once
There is no need to redo it for every added plugin.
2021-05-20 02:52:11 +02:00
Mohammed Sadiq
b1278f6140 build: Avoid building files multiple times
We don't have to build each source for every test, instead we could
create a static library link it with every test, which will be a lot
faster.
2021-05-17 20:00:04 +05:30
Evangelos Ribeiro Tzaras
14ef4f6b17 Add CallsAccountProviderInterface
This interface should by implemented by providers for which the user can add
or remove accounts.
2021-05-04 06:41:43 +02:00
Evangelos Ribeiro Tzaras
781adaddee sip: origin: Use CallsAccountState instead of SipAccountState 2021-05-04 05:57:42 +02:00
Evangelos Ribeiro Tzaras
0e5bd82568 Add CallsAccountInterface
This interface should be implemented by origins which represent an online
account. This means they must have a implement a property representing the
credentials and another representing the account state (online, offline, etc).
2021-05-04 05:57:42 +02:00
Evangelos Ribeiro Tzaras
3f72d34c49 Add CallsCredentials class and use it in CallsSipProvider
CallsCredentials is a dumb container to store account credentials.
This is done in preparation for the account management in the UI.
2021-05-04 05:57:06 +02:00
Evangelos Ribeiro Tzaras
f9a324fc6f manager: add debug messages when adding or removing origins 2021-04-27 11:39:09 +02:00
Evangelos Ribeiro Tzaras
8a4d408f3f manager: remove unused CallsProvider argument from functions
Both add_origin() and remove_origin() don't really need it.
2021-04-27 11:39:09 +02:00
Evangelos Ribeiro Tzaras
b71227aae5 call: doc: Indicate ownership in docstrings 2021-04-27 11:38:58 +02:00
Evangelos Ribeiro Tzaras
5ed24c4ed7 doc: Fix gtk-doc transfer annotations 2021-04-27 11:38:26 +02:00
Evangelos Ribeiro Tzaras
70f1df7e0e build: separate version from the rest of the configuration data
This should make sure that we always have 'config.h' available and
should fix issues with flatpak build as seen in #257:

`fatal error: config.h: No such file or directory`
2021-04-27 01:55:13 +02:00
Evangelos Ribeiro Tzaras
d0194fe534 manager: g_assert in static functions 2021-04-25 18:12:59 +02:00