Commit graph

397 commits

Author SHA1 Message Date
Jorge Martin Espinosa
619aa6f2de
Split MatrixRoom into BaseRoom and JoinedRoom (#4561)
`JoinedRoom` will now contain both a mandatory live timeline reference and all the functionality associated to it.

`BaseRoom` on the other hand will contain only functionality that's shared for both joined and not joined rooms.

`NotJoinedRoom` is a wrapper around `RoomPreviewInfo` data and a possible local `BaseRoom`, if it exists.

The `RustRoomFactory` cache is now gone since the persistent event cache should have the same effect.
2025-04-23 15:53:40 +02:00
Jorge Martin Espinosa
3b35d96e1a
Fix ringing calls not stopping when the other user cancels the call (#4613)
* Fix ringing calls not being automatically canceled

This will keep the sync active while the user is screening an incoming call, allowing receiving a call cancellation event, which will terminate the incoming call ringing early.

* Add extra logs to help debugging ringing call issues.
2025-04-22 11:30:10 +00:00
ElementBot
d9bfcc6c52
Sync Strings (#4590)
* Sync Strings from Localazy

* Fix strings usage after some were moved

* Fix Norwegian string that was causing lint to fail

* Update screenshots

---------

Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-04-14 11:24:28 +02:00
Benoit Marty
c7f0566dc1
Introduce PushHistoryService to store data about the received push (#4573)
* Introduce PushHistoryService to store data about the received push

Add a push database.

* Update screenshots

* Improve preview.

* Update screenshots

* Add missing test.

* Add test for PushHistoryView

* Fix configuration issue.

Was: w: /libraries/troubleshoot/impl/src/test/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryPresenterTest.kt:35:27 Cannot access class 'PushProvider' in the expression type. While it may work, this case indicates a configuration mistake and can lead to avoidable compilation errors, so it may be forbidden soon. Check your module classpath for missing or conflicting dependencies.

---------

Co-authored-by: ElementBot <android@element.io>
2025-04-11 12:56:54 +02:00
Benoit Marty
a230b83e99
Remember flows (#4533)
* Add Konsist test to ensure that the result of a function returning a flow is remembered.

* Remember flows before they are collected by state.

* Fix compilation issue

* Make isOnline a val.

* Make selectedUsers() a val.

* Make flow() a val.

* Make getUserConsent(), didAskUserConsent() and getAnalyticsId() some val.

* Remove Timeline.paginationStatus() and replace by direct access to the underlined flow.

* Simplify test

* userConsentFlow must be initialized before because it's used in observeUserConsent

* Fix test compilation
2025-04-04 16:50:43 +02:00
ganfra
97bd7b7479
Change (mention span) : rework and add more cases (#4476)
* change(mention span) : improve truncation logic

* change(mention span) : fix theme switching

* change(mention span) : start to pillify permalinks

* change(mention span) : use permalink directly

* change(mention span) : start improving mention type

* change(mention span) : use the appropriate MentionSpanProvider methods

* change(mention span) : introduce MentionSpanFormatter

* change(mention span) : introduce MentionSpanUpdater

* change(mention span) : Improve RoomNameCaches

* change(mention span) : remove useless param on HtmlConverterProvider

* change(mention span) : fix some remaining issues on the composer

* change(mention span) : remove pillifiedBody

* change(mention span) : fix some issues with pillification

* change(mention span) : fix getMentionsSpans

* change(mention span) : make sure all tests passes

* change(mention span) : remove the coroutine from the caches and a MentionSpanFormatterTest

* change(mention span) : add more tests on pillification

* change(mention span) : clean up

* Update screenshots

* change(mention span) : remove unexpected print

* change(mention span) : remove default values in constructor of TimelineTextBasedContent classes

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-03-28 11:20:32 +01:00
ElementBot
8f0075e367
Sync Strings (#4461)
* Sync Strings from Localazy

* Fix UI tests

---------

Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-03-24 16:45:24 +00:00
ElementBot
17193ad35a
Sync Strings from Localazy (#4421)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-03-17 09:54:03 +01:00
Jorge Martin Espinosa
1cc95f2d57
Discard timed out user verification requests (#4385) 2025-03-10 18:38:38 +01:00
Jorge Martin Espinosa
f73c0e42a4
Implement user verification (#4294)
* Add support for starting verification of a user

* Add support for replying to incoming user verification requests

* Add reset recovery key button and previews to `ChooseSelfVerificationModeView`

* Add 'Profile' item in room details screen

* Update screenshots

* Remove `showDeviceVerifiedScreen` parameter from `NavTarget.UseAnotherDevice`

* Allow exiting the FTUE flow, which will close the app. The previous state will be restored when the app is reopened.

* When outgoing verification fails, move to the `Canceled` state. Then, when resetting the state machine state also reset the verification service.

---------

Co-authored-by: ElementBot <android@element.io>
2025-03-10 11:20:17 +01:00
Benoit Marty
5064b52619 Sync strings (fix typo) 2025-03-10 10:26:50 +01:00
bmarty
9a75f40855 Sync Strings from Localazy 2025-03-10 00:28:38 +00:00
ganfra
18c5bf01d4 change(left room snackbar) : manage cancel knock and decline invite 2025-03-04 21:52:33 +01:00
ganfra
3bbf9bbad4
Merge pull request #4348 from element-hq/feature/fga/move_room_directory_entry
change(room directory) : move the the room directory entry
2025-03-04 11:23:39 +01:00
ganfra
6af226dc00 change(room directory) : move the the room directory entry from room list filter to start chat screen. 2025-03-04 10:56:16 +01:00
Benoit Marty
a70249769d Migrate to coil3 2025-03-03 12:30:26 +01:00
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
ganfra
c220fb085a feat(join by alias) : makes sure to pass server names 2025-02-25 15:55:42 +01:00
Benoit Marty
da198353a0 No need to invoke getOrNull. 2025-02-25 15:47:53 +01:00
ganfra
2bfa62922c feat(join by alias) : refactor navigation for create room flow 2025-02-25 15:45:42 +01:00
Benoit Marty
941dfa7d38 Add tests. 2025-02-25 15:45:06 +01:00
Benoit Marty
d611a241cd Preload account management URL.
It will populate the SDK in-memory cache.
2025-02-25 15:11:12 +01:00
ElementBot
0338a5008b
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]
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
bmarty
f549e7bba2 Sync Strings from Localazy 2025-02-17 00:30:17 +00: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
c8f4268545 Create extension SyncService.isOnline() 2025-02-03 20:50:08 +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
bmarty
be91da966a Sync Strings from Localazy 2025-02-03 00:29:01 +00:00
Benoit Marty
1ecb704e24 Snackbar: SnackbarDispatcher.post does not need to be suspend. 2025-01-24 14:42:07 +01:00
ganfra
3dd39855c2 change(flow) : remove developer entry point from OnBoarding 2025-01-17 09:37:35 +01:00
bmarty
bd1165179b Sync Strings from Localazy 2025-01-13 00:30:35 +00: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
Benoit Marty
2ddd4f8e5e
Merge pull request #4088 from element-hq/sync-localazy
Sync Strings
2024-12-30 10:18:33 +01:00
bmarty
45db2a97ad Sync Strings from Localazy 2024-12-23 00:16:39 +00:00
Benoit Marty
8cc7f1cd89 Show more detail about the error when pusher registration fails. 2024-12-20 16:03:21 +01:00
Benoit Marty
c4fd20faf4 Start sync faster 2024-12-19 13:44:52 +01:00
Benoit Marty
33ba517fe0 Always attempt to start the sync when starting the application. 2024-12-19 11:14:36 +01:00
ganfra
5ea8d575d2 navigation : clear backstack when opening room from outer node 2024-12-02 21:46:32 +01:00
Benoit Marty
da8056dcdb Fix navigation issue when entering recovery key after navigating from the banner. 2024-11-27 17:11:30 +01:00
ganfra
0261739fff Merge branch 'develop' into feature/bma/fixSendQueueCrash 2024-11-22 10:51:41 +01:00
ganfra
e76f7fb67e
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
aa1a1514aa fix : use RoomMembershipObserver to close room screen when leaving/declining invite/canceling knock request 2024-11-21 21:37:38 +01:00
ganfra
3cb8d4f54f fix : protect some more calls to client and rework the concerned apis 2024-11-21 19:53:42 +01:00
ElementBot
bc59a70043
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
f0aca004ba Change signature of getCurrentDistributor. 2024-11-15 15:18:28 +01:00