Move and refactor MatrixUser
Instead of living in matrixui and having an AvatarData, this can
reside in the matrix module and just have the URL. An extension
method in matrixui can then provide the AvatarData when required.
This removes some small duplication, and pushes the UI-specific
information (i.e., what size of avatar is going to be rendered)
further down the stack. It also aligns the field names with those
used by the rust SDK (e.g. "displayName" instead of "userName").
Search for users to start a new DM.
Hooks up the create room UI to the matrix client to get
search results. Searches are debounced for 500ms and
only executed when 3 or more characters are entered.
Wrap the result state so we can distinguish between
"no results because we haven't searched yet" and
"no results because the API returned nothing", and
add a "No results found" message in the UI for the
latter case.
Closes#95
Hook up accept and decline buttons in the invites UI. Accept
will attempt to accept and then navigate to the room; decline
shows a confirmation dialog.
Fixes#106
Adds a CTA on the room list to view invites if there are any.
The invite list presents each invite with accept/decline buttons
and (for room invites) the sender details.
Fixes#102
* Validate ids in constructors.
* Remove redundant `.value` usage in string interpolation.
* Make a distinction between `SessionId` and `UserId` in `TestData`.
* Update the Rust SDK to v0.1.7.
* Try to have the same setup for the build apk job and maestro.
* Add option to run maestro manually.
* Update to v0.1.9 (0.1.7 and 0.1.8 were broken in x86_64).
* Implement room member list
* Move timeline initialization back to `TimelinePresenter`.
* Fix crash when the `innerRoom` inside a `RustMatrixRoom` is destroyed but `syncUpdateFlow` is still running.
* Address review comments
* Add missing 'start verification' screen.
* Fix retries sometimes not working because of `SessionVerificationController.setDelegate`.
* Make the negative button invisible when not needed.
* Create `RoomLastMessageFormatter` to produce readable room summaries.
* Add unit tests using Robolectric, fix bugs
* Add changelog
* Move `RoomLastMessageFormatter` back to `impl` module, allow it to receive an `EventTimelineItem` instead of `MessageContent`.
* Fix the case when a valid homeserver url can't be extracted from the mxid
* Add changelog
* Add `use` to Rust SDK calls in loginto automatically free memory from Rust objects