Commit graph

99 commits

Author SHA1 Message Date
Benoit Marty
d746f59352
Merge pull request #4301 from element-hq/feature/bma/preloadAccountURL
Preload account urls
2025-02-26 15:54:20 +01:00
Jorge Martin Espinosa
dbb1de146b
Upgrade SDK version to 25.02.26 (#4305)
* Upgrade SDK version to 25.02.26

* Remove OIDC URL result from logout, the SDK no longer provides it

* Handle room creation and destruction in a better way

* Remove `onSuccessLogout`
2025-02-26 09:04:49 +00:00
Benoit Marty
941dfa7d38 Add tests. 2025-02-25 15:45:06 +01:00
renovate[bot]
beffba11b6
fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25 (#4273)
* fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25

* Adapt to SDK changes:

- Remove logic related to sliding sync proxy, leaving just the minimum needed to detect its usage on the current session data.
- Remove code associated with the opt-in migration to native sliding sync, since it's now mandatory.
- Remove toggle between proxy/native sliding sync.
- Some fixes to session verification API breaks.

* Update forced logout dialog message, remove `NativeSlidingSyncMigrationBanner`

* Update screenshots

* Update all strings

* Remove `SuccessfulLogoutPendingAction`

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
Co-authored-by: ElementBot <android@element.io>
2025-02-18 18:07:47 +01:00
Jorge Martin Espinosa
d1fc963f10
SyncOrchestrator: restore the initial sync step (#4242)
* SyncOrchestrator: restore the initial sync step

* Try having internal and public functions to be able to unit test the initial sync and the state changes separately, as well as the initial sync followed by a state change

* Only manually start sync if the `SyncService` was previously stopped, don't do it for `Offline` state
2025-02-18 12:50:59 +01:00
Jorge Martin Espinosa
3c87fb05b2
Create SyncOrchestrator (#4176)
* Create `SyncOrchestrator` to centralise the sync start/stop flow through the whole app: the decision is based on several inputs: sync state, network available, app in foreground, app in call, app needing to sync an event for a notification.

* Make network monitor return network connectivity status, not internet connectivity

* Don't stop the `SyncService` when network connection is lost, let it fail instead. This prevents an issue when using the offline mode of the SDK, which made the wrong UI states to be shown when the `SyncState` is `Idle` (that is, after the service being manually stopped).

* Rename `NetworkStatus.Online/Offline` to `Connected/Disconnected` so they're not easily mistaken with internet connectivity instead
2025-02-06 16:36:57 +01:00
Benoit Marty
f84aa03605 Enable Offline mode of the SyncService, so that the sync starts automatically when the network is back.
Also rely on the sync state to render the "Offline" banner.
2025-02-03 18:27:32 +01:00
ganfra
e69f54dc3c
Merge pull request #4105 from element-hq/feature/fga/send_queue_disabled
misc(send queue) : do not disable send queue when Network is Offline
2025-01-09 16:14:11 +01:00
Benoit Marty
97f3be3dc5 Apply dual licenses: AGPL + Element Commercial to file headers.
2 replace all actions have been performed:
- "SPDX-License-Identifier: AGPL-3.0-only" to "SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial"
- "Please see LICENSE in the repository root for full details." to "Please see LICENSE files in the repository root for full details."
2025-01-07 10:05:04 +01:00
ganfra
8857f38a6b misc(send queue) : do not disable send queue when Network is Offline 2025-01-02 17:39:49 +01:00
ganfra
3cb8d4f54f fix : protect some more calls to client and rework the concerned apis 2024-11-21 19:53:42 +01:00
Benoit Marty
500659d4e1 Change signature of selectPushProvider and add missing unit test. 2024-11-15 15:13:24 +01:00
Jorge Martin Espinosa
2206e940bc
Fix verification failed issue, simplify verification logic (#3830)
* Simplify session verification:

- Reuse Rust `Client` instances created on the login process so we don't need to restore one right before the session verification.
- Remove unnecessary sources of verification state updates.
- Add an intermediate FTUE flow step which will display an indeterminate progress indicator instead of a blank screen.

* Remove unnecessary workaround: the SDK should already handle this

* Add regression tests for noop analytics service usage.

* Add `services.analytics.noop` module to the test dependencies

---------

Co-authored-by: Benoit Marty <benoit@matrix.org>
2024-11-08 16:42:27 +01:00
Jorge Martin Espinosa
366db4791b
Upgrade Kotlin to v2.0 (#3594)
* Bump Kotlin to v2.0

* Fix lots of issues due to the upgrade: lint issues, function signature incompatibilities, broken tests, etc.

---------

Co-authored-by: Benoit Marty <benoit@matrix.org>
2024-10-10 08:32:00 +00:00
Benoit Marty
f99081fd47 Remove dependencies to other presenters from RootPresenter 2024-10-07 17:45:16 +02:00
Jorge Martin Espinosa
663362ac7f
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
Benoit Marty
f61df38e55 Migrate license to AGPL.
Run script `uv run license-editor --repository ../element-x-android`
2024-09-06 17:19:19 +02:00
Jorge Martín
ee7a31cace Extract OIDC to its own module 2024-08-13 08:55:05 +02:00
Benoit Marty
5bda29ca7e
Rework FakeMatrixRoom so that it contains only lambdas. (#3229)
* Upgrade lint to 8.7.0-alpha01

* FakeMatrixRoom: lambda everywhere

Fix test compilation issues
2024-07-22 10:39:48 +02:00
ganfra
b874d3e38c
Merge branch 'develop' into feature/fga/sending_queue_iteration 2024-06-19 13:54:24 +02:00
ganfra
6e7e024a2d Sending queue : change a bit the logic to re-enable sending queue. 2024-06-19 12:56:04 +02:00
Benoit Marty
5420cd01ad Typo 2024-06-19 09:10:41 +02:00
Benoit Marty
d69a5ee1a1 Also fix same issue for analytics. 2024-06-18 11:08:25 +02:00
Benoit Marty
bc30aee359 Iterate on sessionVerificationService.sessionVerifiedStatus and fix tests. 2024-06-18 11:02:19 +02:00
Benoit Marty
892a6d5503 Add test about selecting the first provider with a distributor. 2024-06-17 17:54:55 +02:00
Benoit Marty
0908e9b9e4 Fix test issue. 2024-06-17 17:49:01 +02:00
Benoit Marty
e12f723ff7 Fix test compilation issue. 2024-06-17 17:38:10 +02:00
Benoit Marty
64930e4435 Add ability to not show the pusher registration again. 2024-06-17 11:38:32 +02:00
Benoit Marty
725c3838af Render an error dialog in case registering a pusher fails. 2024-06-17 11:30:23 +02:00
Benoit Marty
21ce1c40b3 Add pusher status in the state.
It improve the tests and we may want to render errors in the View at some point.
2024-06-17 11:30:23 +02:00
Benoit Marty
3d5951cbf0 Add test on pusher registration 2024-06-17 11:30:22 +02:00
ganfra
3b7d021fe1 Sending queue : rename const for more clarity. 2024-06-13 13:03:04 +02:00
ganfra
5765a754fc Fix formatting issues 2024-06-12 15:31:59 +02:00
ganfra
9250745333 Sending queue : adjust to match the latest rust api 2024-06-12 15:15:04 +02:00
ganfra
b927daffe7 Merge branch 'develop' into feature/fga/message_queuing 2024-06-11 17:08:47 +02:00
ganfra
a603855933 Sending queue : code quality 2024-06-11 17:05:12 +02:00
ganfra
452e5681a9 Sending queue : rename fake and add tests 2024-06-11 16:50:53 +02:00
Benoit Marty
e619fefb7f Add a flag to enable or disable incoming share 2024-06-06 12:34:05 +02:00
Benoit Marty
050dbdfa7c Fix test and add new tests. 2024-06-05 18:55:19 +02:00
Valere
37d85c7ed1 Test | Missing mocks in RootPresenterTest 2024-05-31 14:07:03 +02:00
Benoit Marty
ec8cb2e32f Change Test class suffix. 2024-05-30 10:11:18 +02:00
Benoit Marty
37d9a9f5a9 Lambda parameters in a composable function should be in present tense, not past tense.
https://mrmans0n.github.io/compose-rules/rules/#naming-parameters-properly
2024-05-29 12:18:23 +02:00
Benoit Marty
7911fda1fa Rename class (code quality) 2024-05-23 14:42:06 +02:00
Benoit Marty
de032fa426 Use lambdaError() instead of throw NotImplementedError() 2024-05-23 09:33:41 +02:00
Valere
a8f5c8db39 Use LaunchedEffect and improve test 2024-05-07 10:41:08 +02:00
Valere
6ad40fc6e0 Code review - more tests 2024-05-07 09:38:26 +02:00
Valere
a761215e31 Add support for Verification state analytics 2024-05-06 19:06:54 +02:00
Benoit Marty
f48cc81434 Add tests on IntentResolver about external permalink. 2024-05-03 12:37:36 +02:00
Benoit Marty
0476bd95c8 Open user profile and room with event from permalink 2024-05-02 12:25:21 +02:00
ganfra
bffa2d717f Timeline : continue to fix more tests... 2024-04-25 12:41:34 +02:00