Commit Graph

909 Commits

Author SHA1 Message Date
Stefan Ceriu 16d3cb6f3f Log where the user's state and caches folders were setup on startup. 2024-09-13 15:25:17 +03:00
Stefan Ceriu d53e185d81 Replace client side room awaiting with the SDKs new awaitRoomRemoteEcho method 2024-09-13 15:25:17 +03:00
Mauro 0d9d8f9fa4 Sdk v1.0.47 (#3265) 2024-09-11 15:55:15 +02:00
Doug af3a6ccbed Make the SessionDirectories type responsible for cleaning up data. (#3261) 2024-09-11 14:32:03 +01:00
Doug cc4942fb78 Require acknowledgement to send to verified users who have unsigned devices or have changed their identity. (#3215)
* Refactor HeroImage style.

* Add a screen to resolve (crypto-related) timeline item send failures.

* Refactor send failures.

* Update the SDK.
2024-09-10 09:56:11 +01:00
Stefan Ceriu c2b9a7f170 Fix wrong durations for uploaded media
At some point Uniffi introduced [automatic conversions](https://github.com/mozilla/uniffi-rs/blob/35140607dce7092f04d619a5d0b07f9ffe98b4ff/uniffi_bindgen/src/bindings/swift/templates/DurationHelper.swift#L19) from Rust's `Duration` to `TimeInterval`s but the original implementation for media uploading was using milliseconds. When the conversion happened there were no breaking changes and iOS kept sending millis instead of seconds, resulting in **very** wrong values.
2024-09-10 11:11:34 +03:00
Stefan Ceriu a4166de502 Add support for showing media playback controls on the lock screen 2024-09-09 14:42:32 +03:00
Stefan Ceriu d0d24e2d09 Remove spammy logs 2024-09-09 14:42:32 +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 a0eafe26c3 Fixes #3147 - Remove the sliding sync proxy wait list 2024-09-09 12:41:28 +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
Stefan Ceriu b43797f4bf Delay setting up subscriptions until the RoomListService is running in order to avoid cancelling in flight initial sync requests 2024-09-05 17:26:11 +03:00
Stefan Ceriu 7b03c23baa Bump the RustSDK to v1.0.44 2024-09-04 10:53:30 +03:00
Jorge Martín 3b0f02d2b9 Make pinned events required state in SlidingSync
This is needed to always have the pinned events of a room as soon as we open it.
2024-09-03 18:24:05 +03:00
Stefan Ceriu 288b1e7896 Update subscriptions if visible range rooms change without the range itself changing (#3220)
* Remove room list range deduplication and allow subscribing to rooms when then update to come into the visible range.

* Fixes #3088 - Update subscriptions if visible range rooms change without the range itself changing
- we switched from range based subscribing with duplicate suppression to id based, but ids can change without ranges changing
- the all rooms list fetches at least 1 event per rooms and can cause rooms to come in and out of the visible range without user interaction
2024-09-02 18:35:31 +03:00
Doug 904045f178 Default to native sliding sync discovery. 2024-08-30 14:45:54 +03:00
Doug 015e32d772 SonarCloud: Remove redundant rethrow. 2024-08-30 14:45:54 +03:00
Doug 342ad57ce7 Update the SDK. 2024-08-30 14:45:54 +03:00
Doug 4925884f6c Adopt sliding sync discovery for authentication. 2024-08-30 14:45:54 +03:00
Doug c9603dce55 Adopt sliding sync versions for client Restoration. 2024-08-30 14:45:54 +03:00
Stefan Ceriu b1af4afdcb Fixes #3110 - Manually populate profiles when displaying the timeline. 2024-08-29 16:22:44 +03:00
Doug 812c5d5c61 Update the SDK (#3196)
* Update the SDK.

* Fix API breaks on send failures and propagate the new type.

* Handle new SDK ShieldState.

* Set up the ClientBuilder's `cachePath` option.

* Delete the cacheDirectory during logout/clearCache.

* Add unit tests for RestorationToken decoding and SessionDirectories generation.
2024-08-27 11:06:26 +01:00
Mauro 993fe8cd36 TimelineKind refactor (#3193) 2024-08-22 18:33:21 +00:00
Mauro 4eb1ed5d09 Pinned Events Timeline actions and differentiation (#3182) 2024-08-22 17:35:44 +02: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 404b78e7c7 Fixes problems processing invites, build rooms differently based on their membership 2024-08-21 18:02:40 +03: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 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