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>
* 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
* 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>
* 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
* Add 'send private read receipts' option in advanced settings
* Create `SessionPreferencesStore` that stores the settings for the current use separate from those of the app.
* Rename `PreferencesStore` to `AppPreferencesStore` to split the preferences.
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
* 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
The test is failing on CI with this error:
expected instance of: io.element.android.libraries.architecture.Async$Success
but was instance of : io.element.android.libraries.architecture.Async$Loading
with value : Loading(prevData=null)
* Add warning message to 'mentions and keywords only'
It should be displayed when it's not supported by the homeserver
* Only display disclaimer in the room notification settings if the room is encrypted
Co-authored-by: Benoit Marty <benoit@matrix.org>
* Fix test and add another one
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>