* Add `formattedBody` to `TimelineItemTextBasedContent`.
This is pre-computed when timeline events are being mapped from the Rust SDK.
* Update `HtmlConverterProvider` styles.
* Improve `MentionSpan` to add missing `@` or `#` if needed
* Replace `HtmlDocument` with the `TextView` based component
* Improve extra padding calculation for timestamp by rounding the float offset result instead of truncating it.
* Remove composer line height workaround
* Use `ElementRichTextEditorStyle` instead of `RichTextEditorDefaults` for the theming
* Use slightly different styles for composer and messages (top/bottom line height discrepancies, mostly).
* Add `formattedBody` to notice and emote events.
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
Invite users to existing rooms
Scope:
- Allow inviting from the room detail screen and the member list
- Invite option is only shown if the user has the correct power level
- Search flow the same as creating a new room, allowing multi-select
- Existing room members/invitees are disabled with a custom caption
- Sending is asynchronous, an error dialog will appear wherever the
user is if necessary
Closes#245
* Update AGP to 8.0.0.
* Set JAVA_HOME to JDK17
* Update lint version.
* Use right JDK for dependency analysis, replace deprecated env var.
* Upgrade to Gradle 8.1.
* Remove `@Supress(DSL_SCOPE_VIOLATION)` as it's no longer needed.
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>