- Allows for http2
- Caches a global instance of kotlinx-serialization `Json` and configures it with a bit more leniency.
- Moves okhttp's dependency strings to the .toml file
- Switches off logging for release builds
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
* Replace bottom sheets in timeline with M3 ones.
* Add missing options to menu with the right icons
* Add message summary and reaction emoji row.
* Use the same icon in the message summary and file timeline item
- Make the checkbox non-clickable (the parent handles the clicks,
and this stops the m3 lib padding it out to be a sensible touch
target)
- Align and spread the text properly
- Change the default avatar size to match designs
Force the height in InviteSummaryRow as compose defaults to a min
height of 40dp
Change the button text style to ignore font padding so the text
aligns properly
- Add the edit action in the room details
- Add "Add topic" button in room details
- Add the screen behind that action to edit some room properties: avatar, name, topic
- Handle the save button action
- enable the button only if changes are detected
- display a loader "updating room"
- display an error dialog if any request has failed
- Check user has the right power level to change various attributes
- "Add topic" is only shown if there's no topic and they are able to set on
- Edit menu is only shown if they can change topic, name or avatar
- On the edit page, any fields they can't change are uneditable
Co-authored-by: Chris Smith <csmith@lunarian.uk>