1483 Commits

Author SHA1 Message Date
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 e0ba9925e7 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 6616d1799f Remove encryption authenticity feature flag. (#3180) 2024-08-19 09:49:10 +01:00
Doug ebf7c00eeb Navigation support for upcoming Element Call Picture in Picture mode. (#3174) 2024-08-16 11:25:36 +01:00
Stefan Ceriu ad13f644c5 Bump the SDK to v1.0.39 2024-08-15 18:24:31 +03:00
Stefan Ceriu f89c3e54b4 Automatically try reloading failed images on network changes (#3170)
* Add the networkMonitor to the NSE and delete the old MockMediaLoader

* Generate a MediaLoaderMock through AutoMockable and use it in the MediaProviderTests

* Implement an ImageProvider mechanism that automatically tries reloading images when connectivity is established again and use it for LoadableImages

* Merge the ImageProvider protocol back into the MediaProvider

* Address PR review comments

* Provide a default sdk client request configuration

* Address tasks not automatically cancelling themselves when views get deallocated
2024-08-15 18:20:19 +03:00
Mauro 1ad361a6e8 RoomScreenViewModel is now TimelineViewModel (#3157)
Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
2024-08-13 13:36:40 +02:00
Doug 5e36811822 Rotate the session directory each time a new client is built for authentication. 2024-08-12 12:23:29 +01:00
Stefan Ceriu 4617d0c255 Switch the new bulk room subscription API 2024-08-09 13:57:04 +03:00
Mauro ed7d3b0b13 Navigate to the Pinned events timeline (#3139) 2024-08-08 18:29:39 +02: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 0c47ea7231 Delete more unnecessary logs 2024-08-07 17:53:10 +03:00
Stefan Ceriu 8f922ac7ee Remove unnecessary room list logs, they haven't proved useful at any point. 2024-08-06 21:30:40 +03:00
Mauro a39a8f9bd0 state events for pinning and unpinning (#3123) 2024-08-06 17:30:42 +02:00
Doug e2712f6b0a Finalise strings/icons for EncryptionAuthenticity. (#3121) 2024-08-06 15:03:11 +01:00
Mauro 08347e15a5 Pinned events banner loading state (#3118) 2024-08-06 15:46:56 +02:00
Stefan Ceriu d31e128aa7 Fixes #3050 - Sync mute state between ElementCall and CallKit 2024-08-06 14:31:27 +03:00
Doug e667be0f43 Add Encryption Authenticity explanations. (#3116) 2024-08-06 10:45:46 +01:00
Mauro ff2c42d53b Pinned items timeline implementation for the banner (#3099) 2024-08-05 14:09:05 +02:00
Valere a11faeb131 Show Encryption Authenticity warnings on messages in the timeline. (#3051)
* Initial implementation.

* Add developer option for showing timeline item authenticity.

* Refactor code to use new SendInfo.Status.

---------

Co-authored-by: Doug <douglase@element.io>
2024-08-05 11:15:38 +00:00
Stefan Ceriu 63e0b94764 Crypto identity reset (#3107)
* Add EncryptionReset password entry screen

* Expose client proxy identity reset method

* Update the IdentityConfirmationScreen to the latest designs

* Replace the old recovery key reset screen with a new EncryptionReset one

* Fixes #3102 - Add support for resetting the user's whole crypto identity

* Address review comments

* Bump the SDK to v1.0.30
2024-08-05 09:35:18 +03:00
Doug a2ea9c4a06 Refactor TimelineItemSendInfo out of the styler. (#3100)
* Reorder some properties.

No code changes.

* Refactor TimelineItemSendInfo out of the styler.

* Add (unused) examples of encryption shields.

* Rename file.
2024-07-30 09:43:17 +01:00
Doug 0fab3a8afc Add the inviter to JoinRoomScreen when it's an invite. (#3093)
* Add inviter property to RoomProxyProtocol.

* Extract the room cell inviter label into it's own view.

* Use the new RoomInviterLabel in the JoinRoomScreen.

* Fix bug with invite to a public room.
2024-07-29 09:57:49 +01:00
Mauro 0da2d4917b Pin/Unpin Logic (#3084) 2024-07-26 20:41:00 +02:00
Doug 5a4d21ab7a Fix a crash when the ClientProxy is freed. (#3090) 2024-07-26 10:05:48 +00:00
Doug 8ff53da4d2 Fix a crash experienced when trying to report a crash. (#3086) 2024-07-25 14:56:45 +00:00
Stefan Ceriu f44c0765f8 Fixes #3078 - Trim number of resolved alias vias and always default to a join button in the room preview screen 2024-07-24 16:44:27 +03:00
Doug 013240e9b1 Fix the restoration of a SSS session. (#3081) 2024-07-24 10:55:40 +01:00
Doug bf22250b45 Automatically sign out when toggling the SSS feature flag. (#3071) 2024-07-23 11:55:51 +01:00
Stefan Ceriu b135940097 Fixes #3041 - ElementCall unable to access media on ongoing CallKit session. 2024-07-22 17:39:22 +03:00
Mauro ff33c07596 Fix editing items not in the timeline failing (#3075) 2024-07-22 13:15:57 +02:00
Doug cdd763efd4 Add a certificate validator hook. (#3069)
* Add a certificate validator hook.

* General tidy up of AppHooks.

* Don't worry about the generic call links.
2024-07-19 17:05:54 +01:00
Stefan Ceriu a436ea6504 Track sub-spans as transactions as well so that we can plot them on a sentry dashboard. 2024-07-19 11:55:07 +03:00
Mauro d437e1f3ed Pinning items Feature Flag (#3063) 2024-07-18 18:28:30 +02:00
Doug 7fbdc2c20f Use the same UI as Android when tapping a link to a private room. (#3044)
* Use the same UI as Android when tapping a link to a private room.

* Fix preview of knocking.

* Fix snapshots.
2024-07-18 15:58:17 +01:00
Doug 6339fe2bf0 Fix a potential race condition when redacting a message. (#3061)
* Refactor the timeline item menu action provider.

- Move it into its own struct.
- Use an item, not an ID so it doesn't randomly change.
- Move permissions into the room screen view model.

* Use the stable ID when redacting/editing/forwarding a message.

Just like we do when fetching the item in the actions menu.
2024-07-18 15:14:38 +01:00
Doug 2fb7f65957 Add a feature flag for Simplified Sliding Sync. (#3057)
* Disable SSS when logging out.

* Bump the SDK.
2024-07-18 10:16:51 +01:00
Doug 288d2c2fdc Add a ClientBuilder hook. (#3056) 2024-07-18 09:47:37 +01:00
Stefan Ceriu 65dd6f3496 Simplify how we setup Sentry to make sure it's configured before any spans get created - they don't get reported otherwise 2024-07-18 08:58:20 +03:00
Doug 95d53f1edf 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 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
Doug 2e6def5157 Fix the string used for encrypted events in the room list. (#3030)
I don't think its actually meant to be shown but this should still be correct if it is.
2024-07-16 09:22:20 +01:00
Doug c92c6a28ae Upgrade the project to use Xcode 15.4 (#3027)
* Update snapshots for Xcode 15.4

* Update CI.

* Fix crashing UI test.

* Fix compile error in Integration Tests.

* Try putting UI tests on GH runners again.
2024-07-11 17:38:32 +01:00
Doug fe5cea15d5 Make sure Element Call uses the correct theme and language. (#3017) 2024-07-09 12:07:13 +01:00
Doug a1329d9d54 Replace old visible rooms range with subscriptions in the room list. (#3014)
* Add a SubscriptionTracker actor to RoomProxy.

* Request subscriptions when scrolling rooms.

* Stop unsubscribing in preparation for Simplified Sliding Sync.
2024-07-08 14:32:13 +01:00