Commit graph

1138 commits

Author SHA1 Message Date
Jorge Martin Espinosa
51f67741ae
Adapt 'change roles' screens to the new creator/owner role (#5076)
* Replace `RoomMember.Role.CREATOR` with `RoomMember.Role.Owner` - Make `RoomMember.Role` a sealed interface instead

* Adapt room member role mapping to include the power level to distinguish between admins and owners

* Use new `RoomMember.Role` sealed interface through the app

* Change how `MembersByRole` groups members to add owners to the admins section

* Adapt the `ChangeRoles` screen to the new roles:
    - Owners can't modify other owner's roles.
    - They can modify the roles of any other user, without confirmation.

* Adapt 'roles and permissions' screen:
    - Owners can't demote themselves.
    - The admin count also counts owners.

* Add more tests and screenshots

* Add owners to its own section in the 'change roles' screen

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-07-29 14:07:16 +00:00
renovate[bot]
6017379ecc
Update dependency org.matrix.rustcomponents:sdk-android to v25.7.28 (#5088)
* Update dependency org.matrix.rustcomponents:sdk-android to v25.7.28

* Adapt to SDK changes

* Remove Sonatype repos: use Maven Central instead

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-07-29 11:45:52 +02:00
renovate[bot]
040fde7f22
Update dependency org.matrix.rustcomponents:sdk-android to v25.7.23 (#5073)
* Update dependency org.matrix.rustcomponents:sdk-android to v25.7.23

* Adapt to SDK changes:

- Add 'creator' role, adapt existing logic to it.
- Remove `ReplyParameters`, replace with `EventId` where possible.
- Fix changes in OIDC auth methods.
- Add more join rules.

* Make sure both creators and users with power level >= 150 are displayed as 'owners' in the room member list.

* Don't close the roles and permissions screen if the user is a creator

* Use `MediaPreviewValue.DEFAULT` for `MediaPreviewConfig.DEFAULT` too

* Improve APIs around checking roles and power levels:
    - Ensure `RoomInfo.RoomPowerLevels.users` can't be directly used to check power levels since it can't check the power levels for creators.
    - Add a few helper functions to handle actions that relied on the previous `users` property, and docs to explain their usages.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-07-24 11:58:30 +02:00
renovate[bot]
ef11a3bfbb
Update dependency org.matrix.rustcomponents:sdk-android to v25.7.15 (#5011)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-07-15 15:41:06 +02:00
Jorge Martin Espinosa
61c9eb0780
Add a feature flag to reuse the last pos value for initial syncs (#5010) 2025-07-10 13:33:23 +00:00
renovate[bot]
4b10920507
Update dependency org.matrix.rustcomponents:sdk-android to v25.7.7 (#4989)
Make sure we distinguish between notification events that were filtered out and those that couldn't be resolved.

---

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-07-07 17:56:51 +02:00
ganfra
1f426da8ac misc (tracing) : add new TraceLogPack.Notification 2025-07-04 14:35:36 +02:00
Benoit Marty
53a694bc69 Fix compilation issue. 2025-07-01 15:59:27 +02:00
Benoit Marty
3db4492944 Remove dead code. 2025-07-01 15:36:31 +02:00
ganfra
967e9cad85 change (media preview config) : address review remarks 2025-07-01 11:22:03 +02:00
ganfra
773fa1657a Merge branch 'develop' into feature/fga/csam_preferences_server 2025-06-30 21:42:06 +02:00
ganfra
ca46166c67 change (media preview config) : final refactoring and tests 2025-06-30 21:31:58 +02:00
Jorge Martin Espinosa
2f6ce3da33
Element Call: remove top app bar and add it inside the webview instead (#4927)
Co-authored-by: ElementBot <android@element.io>
2025-06-27 08:41:10 +02:00
ganfra
416f4f2215 change (media preview config) : introduce new apis from sdk 2025-06-26 20:34:36 +02:00
renovate[bot]
7d3f4cbb09
fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.6.25 (#4936)
Fix broken API changes:
- `RoomInfo.isPublic` is now optional, so we need to assume its default value in some places of the app.
- `RoomInfo.userPowerLevels` is now `RoomInfo.roomPowerLevels` and also contains this info.
- `ClientBuilder` now uses a `DecryptionSettings` value.
- The call widget settings provider now internally uses a different Rust type.
- `Client.clearCache` now takes a `syncService` so it can stop it.

---

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-06-25 19:25:42 +00:00
ganfra
385b8c37cb misc : simplify timeline diff logic 2025-06-24 22:41:41 +02:00
Benoit Marty
25ba79a681 Move isElementCallAvailable fun to new SessionEnterpriseService, which implementations can get the current MatrixClient. 2025-06-24 11:28:25 +02:00
renovate[bot]
bfd684cd53
fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.6.23 (#4917)
* fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.6.23

* Fix API break.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-06-24 11:23:20 +02:00
ganfra
b0e3f818c3 change (accept invite) : map Unknown error to AcceptInvite.Failures.InvalidInvite 2025-06-20 16:36:01 +02:00
Benoit Marty
911fba711d
Merge pull request #4889 from element-hq/feature/bma/genericNotification
Show generic notification when Event cannot be resolved
2025-06-19 08:56:37 +02:00
ganfra
a8d96a6292
Merge pull request #4896 from element-hq/feature/fga/fix_dm_predecessor_room_banner
fix (room upgrade) : room predecessor banner on DM room
2025-06-18 18:21:46 +02:00
Richard van der Hoff
b6680ac5d8
Add a developer option for history sharing on invite (#4821)
Adds a new developer flag, enabling our experimental support for MSC4268.
2025-06-18 17:11:57 +01:00
ganfra
11aa5346f9 fix (room upgrade) : room predecessor banner should be displayed for DM too 2025-06-18 17:40:24 +02:00
renovate[bot]
0b238b0b8e
fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.6.18 (#4894)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-06-18 15:10:47 +00:00
Benoit Marty
2953704d34 Add missing test on RustNotificationService 2025-06-18 14:44:57 +02:00
Benoit Marty
488932c4e3 Add test for UnableToResolve case. 2025-06-18 14:30:44 +02:00
Benoit Marty
05134656d5 Notification: ensure that a notification is displayed when a Push cannot be resolved.
Previously the error was logged and added to push history but no notification was shown, so the user fully miss the new message.
2025-06-17 16:00:31 +02:00
ganfra
e2b1ab2632 Merge branch 'develop' into feature/fga/room-version-upgrade 2025-06-16 20:46:28 +02:00
Benoit Marty
148b3d9dc7
Merge pull request #4869 from element-hq/feature/bma/anotherCleanup
Another cleanup
2025-06-12 17:02:14 +02:00
Benoit Marty
a732cfa324 Remove ExperimentalCoroutinesApi. Not necessary anymore.
tom with ExperimentalCoroutinesApi
2025-06-12 11:51:30 +02:00
Benoit Marty
fd78e15c21 Remove ExperimentalUnsignedTypes. Not necessary anymore. 2025-06-12 11:51:30 +02:00
Benoit Marty
4619f06190 Cannot create a logger like that. The tag will be lost. 2025-06-11 14:54:48 +02:00
ganfra
e8bc54cf9e feature (room upgrade) : manage navigation and clean code. 2025-06-11 13:32:12 +02:00
ganfra
7b75a52ca2 feature (room upgrade) : start rendering SuccessorRoom and PredecessorRoom banners in timeline 2025-06-11 10:46:39 +02:00
ganfra
77f6cab1a7 deps (matrix rust sdk) : bump version to 25.06.10 2025-06-10 16:01:20 +02:00
夜坂雅
20270cdffe
feat: Support matrix: links (#4839) 2025-06-09 16:40:45 +02:00
Jorge Martin Espinosa
c156fd58bd
Element Call: Add audio output selector handled by Android (#4663)
- Add onUrlLoaded callback to WebViewWidgetMessageInterceptor
- Add WebViewAudioManager component and use it instead of the AudioManager extension functions
- Enable controlling the audio devices in Element Call from the OS instead of automatically detecting them
- Simplify the window flags in ElementCallActivity
- Work around the issue where the default audio device wasn't using the right audio stream
- Add onAudioPlaybackStarted, use it to start the audio-device related logic
2025-06-09 09:12:53 +02:00
ganfra
a873e71879
misc (matrix) : use innerClient.subscribeToRoomInfo sdk method (#4838) 2025-06-09 09:10:38 +02:00
ganfra
36c287aa69 deps (rust sdk) : handle breaking changes of version 25.06.06 2025-06-06 18:01:59 +02:00
Benoit Marty
c3bbac162b
Let the SDK set a correct extension to downloaded file by providing a full mimetype when a base mimetype is available. (#4830)
Fixes #4803
2025-06-06 12:34:06 +02:00
Benoit Marty
5f191d9f9c
Fix coroutine scope (#4820)
* Inject the session scope instead of the application scope where it's possible.

* Create AppCoroutineScope annotation to let developers explicitly choose the appropriate CoroutineScope when injecting one.
2025-06-04 15:33:51 +00:00
Benoit Marty
390e5cf20d
Rename classes overriding classes from the FFI layer. (#4817)
* Rename classes overriding classes from the FFI layer.

* For other Konsist test.
2025-06-04 16:13:57 +02:00
Jorge Martin Espinosa
07af7cc643
fix: Make Client.findDM return a Result (#4816) 2025-06-04 08:41:26 +00:00
Jorge Martin Espinosa
efdc10e60a
Add catchingExceptions method to replace runCatching (#4797)
- Add `runCatchingExceptions` and `mapCatchingExceptions` to replace `runCatching` and `mapCatching`.
- Make `tryOrNull { ... }` catch only exceptions too.
- Apply the changes to the whole project.
- Add new Rust fakes for tests to handle the code that's now unblocked - previously it just threw an `UnsatisfiedLinkError` which we ignored.
- Add a new `detekt-rules` project with a `RunCatchingRule` to prevent `runCatching` and `mapCatching` usages.
2025-06-04 09:02:26 +02:00
ganfra
be2d83b4da dependencies (rust sdk) : replace RoomTombstone by SuccessorRoom 2025-06-02 20:33:34 +02:00
ganfra
091d41b09d Merge branch 'develop' into feature/fga/fix_left_room_membership_change 2025-05-27 22:08:17 +02:00
Benoit Marty
4572419ed2
Stronger lambda error (#4771)
* Make sure lambdaError() make the test fail in all circumstances.

* Fix existing errors on tests.

* Uniformize the way we are creating class under test.

* Cleanup

* Fix typo

* Fix failing test after rebase.
2025-05-27 15:32:09 +00:00
renovate[bot]
985b9e8c20
fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.5.26 (#4781)
Adapt SDK changes:
- `RoomListItem` is gone, we should use `Room` now.
- `SyncService.withUtdHook` has been replaced with `Client.setUtdDelegate`.
- `ClientDelegate.didRefreshTokens` has been removed. It wasn't in use since a long time ago.
- `TracingConfiguration` for the SDK now contains a `sentryDsn` parameter.

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-05-27 11:29:40 +02:00
Jorge Martin Espinosa
f455085e08
Notification events resolving and rendering in batches (#4722)
- Use `NotiticationService.getNotifications()` function so we resolve the events in bulk.
- Added `NotifierResolverQueue` to group the notifications to resolve based on a debounce strategy.
- Batch rendering of these events as notifications.
2025-05-26 17:10:20 +02:00
Jorge Martin Espinosa
9b9d75aa5f
Add ActiveRoomsHolder to manage the active rooms for a session (#4758) 2025-05-26 11:03:55 +00:00