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").
* Screenshot tests changes:
- Group components for Showkase.
- Set special Paparazzi config for scrolling screens using non null `Preview.heightDp`.
- Add merged theme preview with `ElementThemedPreview` component.
* Design fixes for room detail, dm & room member detail screens.
* Record new screenshots, improve RoomDetailsStateProvider.
* Move MainActionButton to its own component in the design system.
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
* Add support for autofilling login text fields
Support autofilling login text fields via Android Autofill with the
experimental AndroidX Compose API for it.
Based on https://bryanherbst.com/2021/04/13/compose-autofill/ (with permission).
Signed-off-by: Hans Christian Schmitz <git@hcsch.eu>
* Move autofill implementation to designsystem library
Signed-off-by: Hans Christian Schmitz <git@hcsch.eu>
---------
Signed-off-by: Hans Christian Schmitz <git@hcsch.eu>
* 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>
* Use user friendly error messages in login following iOS logic, fix dialog colors.
* Use `AlertDialogDefaults` for the default properties of dialogs
* Improve Maestro tests with wrong password dialog
* Add tests for error messages
* Fix dark theme
* First attempt at replicating iOS' UI & flows.
* Try to fix Maestro tests
* Add error dialogs and tests
* Remove unused modifiers
* Try to fix detekt issues
* Tidy up maestro login flow a bit
* Add `CompoundColorPalette` with some needed colors
* Fixes to designs
* Fix detekt issues
* More design fixes
* Some other minor design fixes
* Add changelog
* Minor tweaks.
* Remove legacy dark material theme as it's no longer needed.
* Move sliding sync 'learn more' url to constants object
* Remove unused focusManager
* Change how the displayed homeserver works
* Keep user input as homeserver if it's valid
* Remove `CompoundColorPalette`, try to fix issue when toggling dark mode.
* Add `@Stable` to the theme, adjust how it toggles in dark mode
* Remove unused strings
* Update screenshots
* Re-organize components in LoginRootScreen
* Bump min coverage to 55, max to 60
* Always replace the snapshots contents when running `recordPaparazzi`
* Fix dark theme preview of components using content colors
* Add `BackButton` component
* Handle errors with dialogs in a generic way
* Align our Dialog components with the designs, use them were needed
* Use a `MatrixHomeserverDetails` data class instead of just an URL.
* `AuthenticationService.getHomeserverDetails()` now returns a `StateFlow`.
Also, try to fix coverage issues in tests.