31 Commits

Author SHA1 Message Date
manuroe
3950cac085
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
caaa89af62
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
0085c20c64 increase ringing timeout from 15 seconds to 90 seconds 2024-12-04 10:40:11 +02:00
Stefan Ceriu
c42ef40aa4 #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
10966ab620 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
5fc8caca50
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
d77bb935b7
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
7c75498b4d
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
718774dc36
Fix some warnings. (#3416) 2024-10-16 08:54:34 +01:00
Stefan Ceriu
794d0eead1 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
Stefan Ceriu
4080ff199f Have ElementCall always default to the speaker; prevent the lock button from ending the call
- previously handled in 7818fa626ae0c8ccacca1ccaeffe6998359dd38d
- seems the default behavior changed and we now need to manually configure the AudioSession
2024-09-27 13:38:08 +03:00
Stefan Ceriu
37ed7addf5 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
664e87fe87
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
304070e8cc
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
e281a3f242 Introduce a new RoomProxyType and treat rooms differently based on their membership state 2024-08-21 12:24:20 +03:00
Doug
ebf7c00eeb
Navigation support for upcoming Element Call Picture in Picture mode. (#3174) 2024-08-16 11:25:36 +01:00
Stefan Ceriu
0b984cc3eb 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
9b9f45ea0c 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
398442ff12 Fixes #3135 - Ignore multiple call notify pushes for the same room 2024-08-08 16:04:47 +03:00
Stefan Ceriu
7818fa626a 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
d31e128aa7 Fixes #3050 - Sync mute state between ElementCall and CallKit 2024-08-06 14:31:27 +03:00
Stefan Ceriu
b135940097 Fixes #3041 - ElementCall unable to access media on ongoing CallKit session. 2024-07-22 17:39:22 +03:00
Stefan Ceriu
239afeb662 Fixes #3042 - Cancel ElementCall ringing as soon as the call ends 2024-07-17 10:24:30 +03:00
Stefan Ceriu
d16ba9f3ef Hook up CallKit lock screen muting controls to the ElementCall widget 2024-07-17 10:24:30 +03:00
Stefan Ceriu
2cce310540 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
Stefan Ceriu
41d40d8de0
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
fa22b98b3f
Improve UX when answering EL-Call through the notification (#2965) 2024-06-24 16:51:43 +00:00
Stefan Ceriu
4c1311c11b Delay seting up a "new" call session until after accepting the incoming call. 2024-05-27 17:04:48 +03:00
Stefan Ceriu
e76fabf18c Automatically silence ringing calls after 15 seconds of inactivity 2024-05-27 17:04:48 +03:00
Stefan Ceriu
f6c476eeca 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
8bfd802793 Add support for showing the native OS incoming call screen when starting new Element Calls 2024-05-24 15:32:56 +03:00