Commit Graph

813 Commits

Author SHA1 Message Date
Benoit Marty
e1cebc2e95 Remove the no needed launch. 2024-09-24 21:29:25 +02:00
Benoit Marty
8b161bf72c Add some missing runCatching to protect innerRoom access.
May fix https://sentry.tools.element.io/organizations/element/issues/533226/events/e22d3a80ab204ce392e65c989c2753ac/
2024-09-24 16:13:39 +02:00
Benoit Marty
72ca2f9eb0 No need to launch a coroutine to send the first value. 2024-09-24 16:01:58 +02:00
Benoit Marty
4a1aafae43 mxCallbackFlow already contains a tryOrNull wrapper around the block, so not need to add an extra one.
Also the block can return a non-null TaskHandle.
2024-09-24 15:59:48 +02:00
Jorge Martin Espinosa
103627d6ad Fix pinned events banner reappearing when loading (#3519)
* Fix pinned events banner reappearing when loading.

Make the `RustTimelineItem.timelineItems` property a `SharedFlow` so we don't always incorrectly load an empty state by default.
2024-09-23 15:19:29 +02:00
Benoit Marty
08b63943b8 Add unit test on RustNotificationService
And fix mapping error.
2024-09-19 19:43:40 +02:00
Benoit Marty
215015c0a4 Cleanup constructor and avoid creating many mapper instances 2024-09-19 17:15:52 +02:00
Benoit Marty
285ccf3ec0 Add test on RustRoomListService 2024-09-19 16:41:19 +02:00
Benoit Marty
4f8fe10176 Add test on RoomListFactory 2024-09-19 16:23:39 +02:00
Benoit Marty
b89e4c3ef3 Add test on RoomDirectorySearchProcessor
Give the responsibility to the RoomDirectorySearchProcessor to create the `MutableSharedFlow` since it requires a replayCache to work properly.
2024-09-19 16:04:31 +02:00
Benoit Marty
cc88de9dd2 Inject constructor 2024-09-19 15:16:19 +02:00
Benoit Marty
f1a1a2cf48 Add test on RustRoomDirectoryService 2024-09-19 12:47:53 +02:00
Benoit Marty
fc795c9be8 Add test skeleton for RustMatrixClientFactory and RustMatrixAuthenticationService 2024-09-19 12:16:24 +02:00
Benoit Marty
7db53c52ea Change signature of RustMatrixClient, val are not always necessary. 2024-09-19 11:26:25 +02:00
Benoit Marty
e3a58974dd Add first test on RustMatrixClient 2024-09-19 11:26:24 +02:00
Benoit Marty
54cf41d935 Merge pull request #3450 from element-hq/feature/bma/improveCoverageMetrics
Improve code coverage metrics
2024-09-19 10:02:55 +02:00
ganfra
461264fea4 Room list : debounce subscribe to visible rooms. 2024-09-18 21:07:39 +02:00
Benoit Marty
a1515a62a0 Cleanup 2024-09-18 18:08:11 +02:00
Benoit Marty
f91d0688d8 Add unit test on MatrixTimelineDiffProcessor 2024-09-18 17:16:06 +02:00
Benoit Marty
b5af8387b7 Exclude RoomListEntriesUpdate.describe() from coverage, it's only used to debug the app. 2024-09-18 17:16:06 +02:00
Benoit Marty
99d9253e9a Add unit test on RoomDescriptionMapper 2024-09-18 17:16:06 +02:00
Benoit Marty
7626ace24c Change type of items in activeRoomCallParticipants from String to UserId 2024-09-18 17:16:06 +02:00
Benoit Marty
b842a53106 Change type of items in alternativeAliases from String to RoomAlias 2024-09-18 17:16:06 +02:00
Benoit Marty
e5fdfc366b Ensure mapping of Rust exceptions cover all cases. 2024-09-18 17:16:06 +02:00
Benoit Marty
a77f408432 Make sure Throwable.mapAuthenticationException() is exhaustive on mapping ClientBuildException and add test for full coverage. 2024-09-18 17:16:06 +02:00
Benoit Marty
9578d67981 Add unit test on toAnalyticsJoinedRoom and fix a mapping issue. 2024-09-18 17:16:06 +02:00
Jorge Martin Espinosa
cb3c5d0c49 Fix sliding sync proxy login not working after native SS failure (#3489) 2024-09-18 17:02:49 +02:00
Benoit Marty
7f7612ef12 Code cleanup 2024-09-18 14:14:10 +02:00
Jorge Martin Espinosa
8c2a6a54af Make sure the logout action doesn't cause a crash (#3480)
* Make sure the logout doesn't cause a crash

Some reasons why this could happen:
1. The `ClientDelegate` could receive a `didReceiveAuthError` callback call on a logout, which could trigger another logout when every Rust object had already been destroyed.
2. Even though we stop the sync before logging out, `LoggedInFlowNode` will try to start it again automatically when it detects we still have internet connection.

Making sure to unregister the delegate should fix the first part of the issue.

For the other one, adding `RustSyncService.isServiceReady` to check if we should start/stop the service, which is enabled by default and set to false on destroy should help.

* Apply the same patch on account deactivation.

---------

Co-authored-by: Benoit Marty <benoit@matrix.org>
2024-09-18 11:54:54 +00:00
Benoit Marty
ea355d29ed Account deactivation. 2024-09-17 16:51:11 +02:00
Benoit Marty
70a5756369 Use new API awaitRoomRemoteEcho to ensure that the room is ready SDK side. 2024-09-17 10:59:26 +02:00
Benoit Marty
6117a23ed5 Use new API awaitRoomRemoteEcho to wait for the created room to be available. 2024-09-17 10:21:27 +02:00
Benoit Marty
8c424c63e6 Merge pull request #3467 from element-hq/feature/bma/accountCreation
Temporary account creation using Element Web.
2024-09-16 16:52:26 +02:00
ganfra
60365e46a5 Merge pull request #3461 from element-hq/feature/fga/send_failure_identity_changes
Require acknowledgement to send to a verified user if their identity changed or if a device is unverified.
2024-09-16 16:00:18 +02:00
Jorge Martin Espinosa
b91d13b466 Fix not being able to decline an invite from the room list (#3466)
* Add `InvitedRoom` to wrap Rust SDK Rooms in 'invited' membership state.

At the moment, this is a wrapper that allows us to call `Room.leave()` without having to initialise the room's timeline (which is impossible).

* Add `MatrixRoom.getInvitedRoom(roomId)` to get one of these rooms.

Also, `RustRoomFactory` now has a `createInvitedRoom` method for this.

* Adapt `AcceptDeclineInvitePresenter` to use the new APIs.
2024-09-16 13:02:20 +00:00
Benoit Marty
bed7776674 Account Creation using a WebView 2024-09-16 12:24:47 +02:00
Jorge Martin Espinosa
03786c1fd2 Add forced logout flow when the proxy is no longer available (#3458)
* Add `MatrixClient.isSlidingSyncProxySupported` function

* Update localazy strings

* Modify `ErrorDialog` to have an `onSubmit` call, which will be used for the submit action.

Also make the title text optional and dismissing the dialog by tapping outside/going back configurable.

* Check if a forced migration to SSS is needed because the proxy is no longer available.

In that case, display the non-dismissable dialog and force the user to log out after enabling SSS.

* Enable native/simplified sliding sync by default.

* Refactor the login to make sure we:

1. Always try native/simplified sliding sync login first, if available.
2. Then, if it wasn't available or failed with an sliding sync not supported error, try with the proxy instead (either discovered proxy or forced custom one).

* Move logic to `LoggedInPresenter` and the UI to `LoggedInView`

* Update screenshots

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-09-16 09:13:02 +00:00
ganfra
e8baee3c6f Send failure verified user : set the room key recipient strategy 2024-09-13 16:41:44 +02:00
ganfra
b38f016677 Send failure verified user : resolve ui and logic 2024-09-13 16:40:07 +02:00
ganfra
ba70fbb77e Send state : introduce Failed.VerifiedUser interface. 2024-09-13 16:40:06 +02:00
ganfra
ff0ef5f093 Send failure verified user : expose new methods on MatrixRoom. 2024-09-13 16:40:06 +02:00
ganfra
e37f9aa46e Send failure verified user : set the room key recipient strategy 2024-09-13 16:40:06 +02:00
ganfra
eae580422d Merge pull request #3451 from element-hq/feature/valere/invisible_crypto_feature_flag
Feature/valere/invisible crypto feature flag
2024-09-12 16:29:21 +02:00
Benoit Marty
4cfda8e4aa Rename isInit to isTimelineInitialized for clarity. 2024-09-12 16:27:52 +02:00
Valere
d99509e884 crypto: Add configuration flag to enable invisible crypto 2024-09-12 14:53:59 +02:00
Benoit Marty
ba4ef08756 Remove process extension and provide isInit parameter to the processors. 2024-09-12 09:21:53 +02:00
Benoit Marty
6087b15560 Fix filtering of Event at the beginning of DM. 2024-09-12 09:21:53 +02:00
Benoit Marty
6645fd27ce Fix detekt false positive. 2024-09-11 20:41:58 +02:00
Benoit Marty
16efeb1937 Fix API break 2024-09-11 20:10:48 +02:00
Benoit Marty
9cbc1805dd Merge pull request #3442 from element-hq/feature/bma/deviceId
DeviceId and cleanup.
2024-09-11 11:01:31 +02:00