Commit Graph

374 Commits

Author SHA1 Message Date
ElementBot
9733e79b60 Sync Strings from Localazy (#4298)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-02-24 09:14:29 +01:00
renovate[bot]
047e659719 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
51f5087ef2 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
bmarty
3dddd90d97 Sync Strings from Localazy 2025-02-17 00:30:17 +00:00
Jorge Martin Espinosa
c040cec108 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
c7a320d148 Create extension SyncService.isOnline() 2025-02-03 20:50:08 +01:00
Benoit Marty
0409ed84ed 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
bmarty
5a4cac7d2d Sync Strings from Localazy 2025-02-03 00:29:01 +00:00
Benoit Marty
9b0df915a6 Snackbar: SnackbarDispatcher.post does not need to be suspend. 2025-01-24 14:42:07 +01:00
ganfra
d5b5439db1 change(flow) : remove developer entry point from OnBoarding 2025-01-17 09:37:35 +01:00
bmarty
24fd0a3911 Sync Strings from Localazy 2025-01-13 00:30:35 +00:00
ganfra
78d4a8b2a0 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
05fc76822a 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
b3a0e2f9ea misc(send queue) : do not disable send queue when Network is Offline 2025-01-02 17:39:49 +01:00
Benoit Marty
538c7cc373 Merge pull request #4088 from element-hq/sync-localazy
Sync Strings
2024-12-30 10:18:33 +01:00
bmarty
7a57ec1cc1 Sync Strings from Localazy 2024-12-23 00:16:39 +00:00
Benoit Marty
7302a8392b Show more detail about the error when pusher registration fails. 2024-12-20 16:03:21 +01:00
Benoit Marty
4c63d892ac Start sync faster 2024-12-19 13:44:52 +01:00
Benoit Marty
acf7e4655b Always attempt to start the sync when starting the application. 2024-12-19 11:14:36 +01:00
ganfra
a66216f262 navigation : clear backstack when opening room from outer node 2024-12-02 21:46:32 +01:00
Benoit Marty
6d389bad9a Fix navigation issue when entering recovery key after navigating from the banner. 2024-11-27 17:11:30 +01:00
ganfra
40c9a12a98 Merge branch 'develop' into feature/bma/fixSendQueueCrash 2024-11-22 10:51:41 +01:00
ganfra
2895d0263c Merge pull request #3887 from element-hq/feature/fga/close_room_leave_action
fix : use RoomMembershipObserver to close room screen when leaving
2024-11-22 09:52:42 +01:00
ganfra
62f5dc3bf0 fix : use RoomMembershipObserver to close room screen when leaving/declining invite/canceling knock request 2024-11-21 21:37:38 +01:00
ganfra
982410ece8 fix : protect some more calls to client and rework the concerned apis 2024-11-21 19:53:42 +01:00
ElementBot
411895456b Sync Strings - add translations to Finnish (#3883)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2024-11-18 11:37:17 +00:00
Benoit Marty
8e3c44b60b Change signature of getCurrentDistributor. 2024-11-15 15:18:28 +01:00
Benoit Marty
40e727f2e4 Change signature of selectPushProvider and add missing unit test. 2024-11-15 15:13:24 +01:00
Jorge Martin Espinosa
49e1cfed42 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
bmarty
fed502957b Sync Strings from Localazy 2024-11-04 00:27:46 +00:00
Benoit Marty
e95613f3fe Merge pull request #3750 from element-hq/feature/bma/cryptoIteration
UI iteration on the encryption settings
2024-10-30 11:11:35 +01:00
Benoit Marty
fe16a29283 Crypto: iterate on wording, UI and UX.
Change wording of setup recovery key banner and change target to root.
Iterate on wording of encryption screen.
Change button to Switch.
Iterate on wording to delete key storage.
Iterate on wording and icon on the root setting.
Remove confirmation dialog when disabling backup.
Add subtitle to change recovery key action.
Enable key storage directly, remove quite empty screen to setup the backup.
Disable recovery action if key backup is disabled.
2024-10-29 14:54:59 +01:00
Benoit Marty
d1b3ecab36 Incoming session verification request
Add more log to the state machines
Ensure the block cannot be cancelled, else if the Rust SDK emit a new state during the API execution, the state machine may cancel the api call.
Let VerificationFlowState values match the SDK api for code clarity.
Rename sub interface for clarity.
Migrate tests to the new FakeVerificationService.
2024-10-29 09:26:15 +01:00
bmarty
f19ea02390 Sync Strings from Localazy 2024-10-21 00:27:20 +00:00
Jorge Martin Espinosa
e44b5ad98d 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
ganfra
bd59d115e6 misc : rework getRoomInfoFlow (by using getRoomSummaryFlow) 2024-10-08 21:36:38 +02:00
Benoit Marty
c709b8d76e Remove dependencies to other presenters from RootPresenter 2024-10-07 17:45:16 +02:00
bmarty
05291bcf2f Sync Strings from Localazy 2024-10-07 00:28:33 +00:00
Jorge Martin Espinosa
4a43fcb69a Use Anvil KSP instead of the Square KAPT one (#3564)
* Use Anvil KSP instead of the Square KAPT one

* Fix several configuration cache, lint and test issues

* Allow incremental kotlin compilation in the CI

* Workaround Robolectric + Compose issue that caused `AppNotIdleException`

* Update the `enterprise` commit hash

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2024-10-02 11:52:17 +00:00
Jorge Martin Espinosa
2efdb3ae45 Centralise the DI code generation logic (#3562)
* Create Anvil extension helper

* Use the helper everywhere
2024-09-30 12:20:28 +00:00
bmarty
3f359d7f0a Sync Strings from Localazy 2024-09-30 00:26:52 +00:00
bmarty
a064fb4fab Sync Strings from Localazy 2024-09-23 00:23:49 +00:00
bmarty
97cf19cb71 Sync Strings from Localazy 2024-09-17 11:05:35 +00:00
bmarty
e0c24c0f1c Sync Strings from Localazy 2024-09-16 18:40:24 +00: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
Jorge Martin Espinosa
8154aa3319 Add banner for optional migration to simplified sliding sync (#3429)
* Add banner for optional migration to native sliding sync

- Add `MatrixClient.isNativeSlidingSyncSupported()` and `MatrixClient.isUsingNativeSlidingSync` to check whether the home server supports native sliding sync and we're already using it.
- Add `NativeSlidingSyncMigrationBanner` composable to the `RoomList` screen when the home server supports native sliding sync but the current session is not using it.
- Add an extra logout successful action to the logout flow, create `EnableNativeSlidingSyncUseCase` so it can be used there.

* Update screenshots

* Make sure the sliding sync migration banner has lower priority than the encryption setup ones

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-09-09 18:13:19 +02:00
Benoit Marty
2b016227e9 Migrate license to AGPL.
Run script `uv run license-editor --repository ../element-x-android`
2024-09-06 17:19:19 +02:00
ganfra
a37a6d249f Pinned messages list : improve and fix code after PR review. 2024-09-05 17:40:50 +02:00
ganfra
ff3646ead0 Pinned messages: clean code 2024-09-04 14:27:18 +02:00
ganfra
9936dbc464 Merge branch 'develop' into feature/fga/pinned_messages_list 2024-09-04 14:11:53 +02:00