* `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>
* 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.
Improve room member list UX:
- Don't display the list in chunks anymore.
- Use an indeterminate linear progress indicator to display some loading is being done (either loading the cached list or the updated one).
- Try to make sure we don't display the members loaded from timeline items as the cached room list by mistake.
* Update screenshots
* Simplify member loading logic.
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
* 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>
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.
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.
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>