* Add 'reply to' UI to the message composer.
* Move the `BlurHashAsyncImage` to `:libraries:designsystem` as it is now used in several modules.
* Create reusable `AttachmentThumbnail` and associated data classes and enums, it's now added to `:libraries:matrixui`.
* Re-use `AttachmentThumbnail` in a `ActionListView` and `TextComposer`.
* Add 'inReplyTo' models and UI.
* Add min size for images
* Create a separate layout for media items with no reply to info. Also, separate `Timeline__Row` components from `TimelineView`, as it was getting too large.
* Added `EqualWidthColumn` to use inside message bubbles. Also fixed some modifiers for media items replying to other messages.
* Disable `inReplyToClicked`.
* Remove unused resources and libraries.
* Remove any traces of `BlurHashAsyncImage` in `:features:messages`, since it was moved to the design system.
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
The presenter was expecting the MediaProcessor to return a
MediaUploadInfo.Image, but it actually returns
MediaUploadInfo.AnyFile because we're not compressing avatars
(so it doesn't process the file and return more detailed info).
This check/cast was entirely pointless, so change to just
working on whatever we're given. The pickers constrain which
types of file the user select, so we should be reasonably happy
the files are images.
Also actually log error details when updating the details,
so we know what's going wrong.
Closes#550
Use member count instead of counting members
For the room details screen, use the member count as supplied by
matrix instead of waiting for the entire member list to be
retrieved and then manually adding up all the relevant users.
This removes the loading state of the member count, relying on
a spinner on the member list itself if the user actually wants
to see the members. (The performance of that will be improved
separately on the rust side in the future)
Closes#505