* Add `InvitePeopleState.sendInvitesAction`
Keep track of the progress on sending invites with a new state property.
* Keep `RoomInviteMembersView` open until invites are sent
* Sync strings from localazy
* extend `ProgressDialog` to support custom content
For my current design, a simple text element is insufficient. I extend
`ProgressDialog` to give more flexibility over the content of the dialog.
* Show progress dialog while invites are being sent
* Add new ProgressDialog previews to the naming exceptions list
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
Co-authored-by: Jorge Martín <jorgem@element.io>
* feature(spaces) : introduce SpaceRoomList matrix api
* feature (space) : extract SpaceRoomItemView
* feature(spaces) : start introducing SpaceScreen
* feature (space) : iterate on space list (and space screen)
* feature (space) : add space cache and navigation to sub space/room
* feature (space) : display top bar title
* Code cleanup, remove dead code and fix compilation issue
* More compilation fixes.
* Update screenshots
* Fix test compilation issues.
* Introduce MatrixClient.rememberHideInvitesAvatar() extension to reduce code duplication.
* Add test on SpacePresenter
* Add test on SpaceRoomCache and fix implementation
* Iterate on SpaceRoomCache thanks to SpaceRoomCacheTest
* Add UT on SpaceListUpdateProcessor
* Fix quality issue.
* Add tests on RustSpaceRoomList
---------
Co-authored-by: ganfra <francoisg@matrix.org>
Co-authored-by: ElementBot <android@element.io>
https://github.com/element-hq/element-meta/issues/2906: `The tab bar with the option to view joined spaces is only shown when the user has at least one space that they have joined (because otherwise they have no clue what to do in here).`
* Format
* Rename anvil modules to annotations and codegen
* Add documentation to migrate from Dagger/Anvil to Metro
* Other cleanup
* Cleanup kover config.
- Remove unnecessary `GlobalScope`.
- Rename `Component` to `Graph`, `DaggerComponentOwner` to `DependencyInjectionGraphOwner`.
- Rename component builders to factories, where necessary.
* Reload member list after moderation actions
The previous `runActionAndWaitForMembershipChange` logic wasn't really doing anything, as the modified flow was never used.
* Make sure we always set the value in the member list state flow, even if the underlying coroutine scope is no longer there.
With `emit`, the `Ready` state was not emitted if the member list was loaded way too fast.