Commit Graph

426 Commits

Author SHA1 Message Date
Jorge Martín 9f2726ec4f Only retrieve active users in RoomMemberListDataSource 2024-03-22 10:14:22 +01:00
Jorge Martin Espinosa 6aa84d600e Implement MSC2530 (#2570)
* Implement MSC2530
* Some layout improvements for images and videos with captions
* Update screenshots
* Replace `it` in several previews with `isMine`

---------

Signed-off-by: Marco Antonio Alvarez <surakin@gmail.com>
Co-authored-by: Marco Antonio Alvarez <surakin@gmail.com>
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-03-20 13:58:29 +01:00
Jorge Martín cc9c04b1a3 Fix SDK integration 2024-03-20 09:36:35 +01:00
Jorge Martin Espinosa 5cc5a0b699 Add isInDebug variable to simulate debug/release configs for tests (#2566)
* `isInDebug` as `ThreadLocal<Boolean>`

* Use a simple var for `isInDebug` and add a helper method to test release mode, when running the debug test.

* Add some more docs

---------

Co-authored-by: Benoit Marty <benoit@matrix.org>
2024-03-18 17:56:07 +01:00
Benoit Marty fb64018110 Merge pull request #2565 from element-hq/feature/bma/userDataCache
Read user avatar from cache
2024-03-18 17:33:26 +01:00
Jorge Martin Espinosa 883d834284 Remove unnecessary Room.updateMembers() calls. (#2564)
* Remove unnecessary `updateMembers` calls.

Some of them can be directly removed since we have a way to automatically get member info updates based on membership changes.

Others can be replaced by a simpler `getUpdatedMember` method. This might still need a full member sync, but it's quite unlikely.
2024-03-18 14:57:25 +00:00
Benoit Marty 68fd649424 Use client.cachedAvatarUrl(), to be able to render the user avatar faster, and even if there is no network (#2488). 2024-03-18 15:02:54 +01:00
Jorge Martin Espinosa 67d79059f8 Add legacy call invite state events and notifications (#2552)
* Add state timeline events and notifications for legacy call invites

* Update screenshots

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-03-14 16:29:06 +01:00
Jorge Martin Espinosa 59a682b407 Change a room's permissions power levels (#2525)
* Change a room's permissions power levels

* Make `currentPermissions` use a `MatrixRoomPowerLevels?` instance instead.

* Update strings

* Update screenshots

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-03-12 15:45:06 +01:00
Benjamin Bouvier 33a039d2d5 Disable trace logs for read receipts
Read receipts have been considered quite stable over the last few weeks, so
there's no need to keep the trace level for the associated logs for the time
being.
2024-03-08 15:11:46 +01:00
Jorge Martin Espinosa e4aed6b56c Fix crash when leaving room using LeaveRoomPresenter (#2498)
This happened because `roomInfoFlow` was shared eagerly and the `initial` part was called after the `Room` Rust object was destroyed.

I think there isn't a need for room info to be shared, it was a mistake I forgot to rollback.
2024-03-06 16:39:44 +00:00
Jorge Martin Espinosa 134cacb024 Room member moderation: kick, ban and unban (#2496)
* Room member moderation: kick, ban and unban

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-03-06 16:44:05 +01:00
Jorge Martin Espinosa b9d902e3fe Room admins can change user roles (#2423)
Allow Admins to modify room member roles:

- Add a 'roles and permissions' option for each room.
- Allow promoting users to admins, adding or removing moderators, and demote yourself if you're and admin.

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-03-05 16:46:47 +00:00
Jorge Martin Espinosa 1d892b4bc8 Add extra params to bug reports (#2490)
* Add extra params to bug reports

- `local_time`: the time in the device's timezone.
- `utc_time`: the time in UTC.
- `sdk_sha`: the commit SHA that was used to build the Rust SDK
2024-03-05 17:21:47 +01:00
ganfra bd87e99df1 RoomListFilters : use kotlin filtering as rust one is slower and has more chance to bust the room list cache. 2024-02-27 16:24:54 +01:00
Jorge Martin Espinosa cdf89adcd2 Show blocked users list (#2437)
* Show blocked users list.

Also allow to unblock them from this list.

* Add non-blocking `AsyncIndicatorHost` component

* Use `StateFlow` for getting ignored users.

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-02-26 15:24:22 +00:00
ganfra f18e8030bf Merge develop into feature/fga/room_list_filters 2024-02-22 11:15:43 +01:00
Benoit Marty 6ddc2f5814 Make isLastSession "live" 2024-02-21 18:30:57 +01:00
ganfra 5868a46e82 Merge develop into feature/fga/room_list_filters 2024-02-21 13:20:40 +01:00
Jorge Martin Espinosa 598bf96208 Do not display empty room list state before the loading one (#2402)
* Do not display empty room list state before the loading one
2024-02-21 12:16:00 +01:00
ganfra 33664c44ec RoomListFilters : branch the logic 2024-02-20 11:17:15 +01:00
Jorge Martin Espinosa e68139bf46 Display banned users in room member list (#2415)
* Display banned users in room member list

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-02-20 10:07:06 +01:00
ganfra f171dc94da rust sdk : fix api changes 2024-02-19 21:35:31 +01:00
Jorge Martin Espinosa 0a6f00e9df Sort the room member list and display member roles (#2412)
* Sort the room member list and display member roles

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-02-19 15:03:36 +00:00
ganfra bdb660f346 RoomList : clean after PR review 2024-02-19 12:08:11 +01:00
ganfra ebb07de8a4 RoomList : rework how search is done to prepare for later filtering 2024-02-16 19:35:03 +01:00
ganfra 00f8e32df6 Merge branch 'develop' into feature/fga/mark_room_as_favorite 2024-02-15 10:16:43 +01:00
ganfra 6dc0d8706c read : use the new apis 2024-02-14 11:09:46 +01:00
ganfra a8bc0cb4ca Merge branch 'develop' into feature/fga/mark_room_as_favorite 2024-02-12 17:08:36 +01:00
Benoit Marty b8d9c89ec4 Merge pull request #2374 from element-hq/feature/bma/typingRendering
Typing notification rendering
2024-02-09 22:29:14 +01:00
ganfra 2c24a48ed7 Rust : map the new filter api, will need more rework when branching the new ui later. 2024-02-08 20:46:27 +01:00
Benoit Marty 5d6716da67 Rendering typing notification #2242 2024-02-08 17:38:59 +01:00
Benoit Marty d5c123622b Merge pull request #2354 from element-hq/feature/bma/markUnread
Mark room as unread
2024-02-08 17:36:29 +01:00
Jorge Martín e77740f1d2 Remove FilterHiddenStateEventsProcessor
The same process is already done by the Rust SDK, so it's now redundant.
2024-02-08 13:38:05 +01:00
Benoit Marty 9d461a4917 Add ability mark as unread / mark as read a room. 2024-02-08 11:33:43 +01:00
Damir Jelić 1fd4075900 Enable trace logging for the Olm Account
This should help us to track down UTD sources, it ensures that we log
the state of a Olm session when we try to decrypt an `m.olm.*` to-device
message.
2024-02-07 10:46:34 +01:00
ganfra f3c1eb6738 Use the new setIsFavorite api 2024-02-06 16:04:44 +01:00
Benoit Marty 8c56f0bd92 Fix API break and change from SDK 0.1.97 2024-02-06 09:18:35 +01:00
ganfra d9017a098c Favorite : rework and add tests 2024-02-02 14:54:28 +01:00
Jorge Martín 5c59ecbaa6 Use MatrixRoom.isEncrypted value to enable encryption in room calls 2024-02-01 11:49:17 +01:00
ganfra b15597509d favorite : branch RoomNotableTags methods 2024-01-31 21:24:37 +01:00
renovate[bot] 4854733b8d Update dependency org.matrix.rustcomponents:sdk-android to v0.1.96 (#2323)
* Update dependency org.matrix.rustcomponents:sdk-android to v0.1.96

* Fixes for the SDK upgrade

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2024-01-31 11:07:34 +00:00
Jorge Martin Espinosa c2fc6db423 Add missing device id to settings screen (#2320)
* Add missing device id to settings screen

* Extract footer component

* Restore `@PreviewWithLargeHeight` logic

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-01-31 10:01:17 +00:00
Jorge Martin Espinosa ede1dc0fab Fix crash about several DataStores using the same file (#2312)
* Fix crash about several DataStores using the same file

- Create `@SessionCoroutineScope` annotation to pass a session-managed coroutine scope to the DI.
- Expose this scope from `MatrixClient`.
- Rework DataStore file creation a bit.
- Centralise session preference creation through `DefaultSessionPreferencesStoreFactory` until we figure out what went wrong with the scoping
2024-01-30 11:10:46 +01:00
Benoit Marty a7541be6bb Merge pull request #2293 from element-hq/feature/bma/notificationCount
Iterate on notification badges
2024-01-30 10:33:17 +01:00
Benoit Marty bfb6b32740 Send typing notification #2240 2024-01-26 16:30:43 +01:00
Jorge Martin Espinosa b7945675c9 Add a special tracing configuration for nightlies (#2297)
It also enables logging `MATRIX_SDK_BASE_READ_RECEIPTS` at a `TRACE` level for both debug and nightly versions.
2024-01-26 10:05:30 +01:00
Benoit Marty 0d35e60dac Disambiguate display name in notifications #2224 2024-01-25 18:43:56 +01:00
Benoit Marty 6ea76d9acd Map roomInfo.numUnreadNotifications to RoomSummaryDetails.numUnreadNotifications 2024-01-25 15:00:43 +01:00
Jorge Martin Espinosa da4825aa44 Return cached room members before fetching new ones, do it in batches (#2274)
* Use cached users from the Rust SDK.

Also lazy load received users by batches.

* Create `RoomMemberListFetcher` to wrap all the room member loading logic

* Ensure we clear `RoomMember` Rust references if the fetching coroutine is canceled
2024-01-23 18:23:20 +01:00