Commit Graph

47 Commits

Author SHA1 Message Date
Hugh Nimmo-Smith
99141735c8 Revert "Show error screens in group calls (#3813)" (#3819)
This reverts commit e9fa0ce5f2.
2025-02-24 18:03:16 +00:00
Robin
e9fa0ce5f2 Show error screens in group calls (#3813)
Element Call now sends a 'close' widget action when the widget is ready to close. Usually this will be sent immediately after the 'hangup' action, but it could be sent later if the widget wants to present an error screen before closing. So by listening to the 'close' action rather than the 'hangup' action, we get to see these error screens.
2025-02-24 10:09:30 +00:00
manuroe
c29f4cc9b4 Dual licensing: AGPL + Element Commercial (#3657)
* New LICENSE-COMMERCIAL file

* Apply dual licenses: AGPL + Element Commercial to file headers

* Update README with dual licensing
2025-01-06 11:27:37 +01:00
Stefan Ceriu
e75c930d8f Media gallery - part 1(#3588)
* Introduce a `MediaEventsTimelineFlowCoordinator`
* Update SDK API and architecture
* Add a feature flag, add translations
* Move the media events timeline presentation under the room flow coordinator state machine
* Rename `TimelineViewState.timelineViewState` of type `TimelineState` to `timelineState`
* Enabled SwiftLint's `trailing_closure` rule and fix the warnings.
2024-12-06 16:58:14 +02:00
fkwp
de1abd5bce increase ringing timeout from 15 seconds to 90 seconds 2024-12-04 10:40:11 +02:00
Stefan Ceriu
59ede9e31b Stop delaying ElementCall until the next sync loop and only notify other participants when presumed to already be up to date. (#3559) 2024-11-27 09:57:18 +02:00
Stefan Ceriu
98fb6e4fd9 #3372 - Stop setting up CallKit sessions when joining calls
- comes following the discussions on https://developer.apple.com/forums//thread/767949?answerId=812951022#812951022
- this removes the lock screen controls entirely and lets the rest of the app behave normally
2024-11-08 10:37:05 +02:00
Stefan Ceriu
9b54ed81b5 Begin a background task when receiving a call in order to get state updates for longer. 2024-11-06 13:40:58 +02:00
Doug
0da8e7af58 Fix a couple of race conditions when observing room info updates for calls. (#3487)
* Fix a race condition observing room info updates for calls.

* Fix a bug where call observation wasn't set up if the call comes when the app has been killed.
2024-11-05 17:48:07 +00:00
Stefan Ceriu
2881d77bbc Incoming session verification support (#3428)
* Fixes #1227 - Add support for receiving and interacting with incoming session verification requests.
* Fix a couple of random small warnings
* Move static view config to the view state
* Update snapshots
2024-10-29 15:21:17 +02:00
Doug
94daf13135 Replace individual RoomProxy properties with a stored RoomInfo. (#3445)
* Store RoomInfo updates in JoinedRoomProxy and read from them directly.

* Remove all RoomProxy properties that were reading from the RoomInfo.
2024-10-28 12:29:31 +00:00
Doug
4cc186be0c Fix some warnings. (#3416) 2024-10-16 08:54:34 +01:00
Stefan Ceriu
7655b33f5d Fixes element-hq/element-meta/issues/2525 - Display a warning when a user's pinned identity changes 2024-10-07 20:47:31 +03:00
Doug
ec9f6e21a8 Log any failures when creating a call widget. (#3339) 2024-09-27 11:40:43 +01:00
Stefan Ceriu
69ce39bbc3 Have ElementCall always default to the speaker; prevent the lock button from ending the call
- previously handled in 81d669e5ce
- seems the default behavior changed and we now need to manually configure the AudioSession
2024-09-27 13:38:08 +03:00
Stefan Ceriu
22bb305e79 Fixes #3197 - Allow voice message playback in the background
- inform other audio sessions on deactivation
- let CallKit handle the audioSession for ElementCall
2024-09-09 14:42:32 +03:00
Stefan Ceriu
89eae00479 Switch license to AGPL (#3237)
* Switch license file to AGPL

* Update file copyright headers

* Update the default project file header
2024-09-06 16:34:30 +03:00
Doug
6a44d79b6e Use native video call picture in picture! (#3190)
* Use native video call picture in picture!

* Handle isSupported, isPossible and web view errors.

* Use new canEnterPip method.

* Hide a room's Call button when already joined to the call.

* Tweak feature flag description.

* PR comments.
2024-08-21 17:48:57 +01:00
Stefan Ceriu
34eb596c1a Introduce a new RoomProxyType and treat rooms differently based on their membership state 2024-08-21 12:24:20 +03:00
Doug
1d29d4de8a Remove GenericCallLinkCoordinator, merging it into CallScreen. (#3181)
* Remove incorrect message send call and fix typo.

* Add overlay coordinator presentation to the NavigationRootCoordinator.

* Remove GenericCallLinkCoordinator, merging it into CallScreen.

This will allow for picture in picture on call links when available.
2024-08-19 17:21:25 +01:00
Doug
bcf417cabd Navigation support for upcoming Element Call Picture in Picture mode. (#3174) 2024-08-16 11:25:36 +01:00
Stefan Ceriu
33b78e1b11 Fix #3133 - Cancel ElementCall rining once answered elsewhere
- expose `activeRoomCallParticipants` and use them to detect if the user has joined the call from a different device
2024-08-08 16:04:47 +03:00
Stefan Ceriu
e5b4287940 Fixes #3134 - Fix answering call not opening app
- we're currently working around the widget not properly aquiring media streams by manually terminating a call before starting the web view
- it seems that there's a race condition between that and the system opening the app
- as such we need to delay terminating the call until the system gets a chance to handle the redirect
2024-08-08 16:04:47 +03:00
Stefan Ceriu
278e0a23dd Fixes #3135 - Ignore multiple call notify pushes for the same room 2024-08-08 16:04:47 +03:00
Stefan Ceriu
81d669e5ce Fixes #3136 - Stop manually configuring ElementCall's AudioSession
- CallKit decides what action to to take when pressing the hardware lock button based on where the audio is routed to. Using the speaker will make it lock the phone while using the headset will make it end the call.
- Before the introduction of CallKit we had to manually setup the AudioSession to keep the audio live in the background. This is now clashing with CallKit making it bevelie the audio is not routed to the speaker and causing the call be terminated when pressing the lock button.
2024-08-08 16:04:47 +03:00
Stefan Ceriu
11285f3a55 Fixes #3050 - Sync mute state between ElementCall and CallKit 2024-08-06 14:31:27 +03:00
Stefan Ceriu
40667f79c0 Fixes #3041 - ElementCall unable to access media on ongoing CallKit session. 2024-07-22 17:39:22 +03:00
Doug
af32b84826 Update the SDK fixing a few room list bugs. (#3054)
* Update the SDK.

* Handle API break for editing timeline items.

* Handle API break for Element Call
2024-07-17 15:48:32 +01:00
Stefan Ceriu
7e14540287 Fixes #3042 - Cancel ElementCall ringing as soon as the call ends 2024-07-17 10:24:30 +03:00
Stefan Ceriu
94b8b150ab Hook up CallKit lock screen muting controls to the ElementCall widget 2024-07-17 10:24:30 +03:00
Stefan Ceriu
d8321fdc40 Fixes #3041 - Video not rendering after starting or joinng a call
- not completely sure why this happens but `reportOutgoingCall` interferes with how the WebView gets access to video streams
- the call itself isn't really necessary so removing it is the simplest way forward
2024-07-17 10:24:30 +03:00
Doug
01e3010b49 Make sure Element Call uses the correct theme and language. (#3017) 2024-07-09 12:07:13 +01:00
Stefan Ceriu
90a22ce5c9 Cleanup how we setup the CallKit provider and have it be used for outgoing calls as well (#2967)
- tear down ElementCall screens when ending the call from the CXCallController
- make the call UI available in the task manager and lock screen
- Fix broken hang up widget message format
2024-06-27 14:07:44 +03:00
Mauro
4ffdfcf1ce Improve UX when answering EL-Call through the notification (#2965) 2024-06-24 16:51:43 +00:00
Stefan Ceriu
9c15d52a3b Fixes #1997 - Be more specific with the widget permissions 2024-05-29 14:01:35 +03:00
Stefan Ceriu
b4c0048ba7 Delay seting up a "new" call session until after accepting the incoming call. 2024-05-27 17:04:48 +03:00
Stefan Ceriu
1b496f0390 Automatically silence ringing calls after 15 seconds of inactivity 2024-05-27 17:04:48 +03:00
Stefan Ceriu
7b12e95192 Show ElementCalls in the system Recents list and allow deep linking back into a call from there 2024-05-27 17:04:48 +03:00
Stefan Ceriu
b55eb7d19e Fixes #2878 - Retain cycles on the ElementCall webView and correctly tear down the call on dismissal. 2024-05-24 15:32:56 +03:00
Stefan Ceriu
70bf5d0e8d Add support for showing the native OS incoming call screen when starting new Element Calls 2024-05-24 15:32:56 +03:00
Stefan Ceriu
c770cb0e92 Base ElementCall encryption on the room encryption state, remove developer options setting 2024-02-01 17:18:17 +02:00
Mauro
84b0f967e8 Removing Dead Code part 1 (#2234) 2023-12-13 09:51:57 +01:00
Stefan Ceriu
ed0eed76e5 Expose Element Call settings in the developer options. Start using th… (#2039)
* Expose Element Call settings in the developer options. Start using the encryption widget parameter.

* Remove the Element Call feature flag
2023-11-07 16:12:03 +02:00
Mauro
f4d164b2e7 Fix NSE Leak (#2022) 2023-11-03 20:30:58 +00:00
Stefan Ceriu
7e77c2ffad Bump the RustSDK to v1.1.25 2023-10-20 16:59:27 +03:00
Mauro
04cce54c40 Send Intentional Mentions (#1929)
* updated sdks

* fix waveform

* implementation completed

* intentional mentions test

* removed unused var

* suggestion
2023-10-20 16:51:25 +03:00
Stefan Ceriu
af3d7f66d7 Implement support for ElementCall through Rust side widgets (#1906)
* Implement support for ElementCall through Rust side widgets

* Add Element Call feature flag

* Fix the unit tests

* Address PR comments
2023-10-17 12:41:56 +03:00