* Use outlined textfields in the login screen
* Fix enabled status
* Fix loading state for button in `ConfirmAccountProviderView` too
* Update subtitle string
* Remove no longer used translation
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
* Fix actions for redacted, not sent and media messages
* Make `EventDebugInfoView` sections fill max width
* Don't display action list if there are no actions to display
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
* Send read receipts
* Add changelog
* Add tests.
* Optimise how sending read receipts work in the timeline.
* Move the check for send read receipts to the presenter
Also improve the way we find the first visible `Event` if we have `Virtual` ones in the timeline.
* Add `Copy` action for text events
* Remove 'Copy' action from the list for non-text events
* Use `@ContributesBinding` to inject `AndroidClipboardHelper`.
* Add `RetrySendMessageMenu` to retry sending failed messages or removing its local echo.
* Fix initial event being retrieved, not the updated one
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
* 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
- 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>
Display a notice if Matrix ID isn't resolved
If we can't get the profile of a user after an mxid was
searched for, show a warning under their ID to say the
invite probably won't be delivered.
Closes#424
- Adds `ModalBottomSheet` to our design components (it wraps the homonimous Material3 one).
- Adds a bottom sheet to the Room list using the aforementioned design component.
- Adds navigation from the room list to a room detail (context menu "Settings" action).
- Consolidates the "leave room flow" into a new `leaveroom` module used by both the room list and the room details.
- Adds progress indicator to the leave room flow
- Uses new `leaveroom` module in `roomdetails` module too.
Parent issue:
- https://github.com/vector-im/element-x-android/issues/261
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
Splits a Room's member list in 2 showing pending invitees first and then the actual room member.
This simple user facing change entails a host of under the hood changes:
- It copies the logic from the `userlist` module and merges it into the `roomdetails` module removing all details not related to the member list (e.g. gets rid of multiple selection, debouncing etc.).
- Uncouples the `roomdetails` module from the `userlist` one. Now leaving only the `createroom` module to depend on the `userlist` module. Therefore the `userlist` module could be in the future completely removed and merged into the `createroom` module.
- Changes the room members count in the room details screen to only show the members who have joined (i.e. don't count those still in the invited state).
Missed ACs:
- This change does not make the member list live update. Discussion is ongoing on how to make this technically feasible.
Parent issue:
- https://github.com/vector-im/element-x-android/issues/246
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
* 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
* Design fixes.
* Make text in emoji items secondary color and the snackbar duration short again
* Try to make margins smaller on smaller displays
---------
Co-authored-by: Florian Renaud <florianr@element.io>
* 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`.