Commit graph

998 commits

Author SHA1 Message Date
Jorge Martín
69fb344517 Use WindowSizeClass instead of just checking portrait/landscape orientation 2026-04-15 15:51:06 +02:00
Jorge Martin Espinosa
80470b3792
Feature: add room threads list (#6575)
Add threads list screen for rooms:

- Add `ThreadsListService` to subscribe to thread changes in the room.
- Create `ThreadsListView` and its associated node a presenters (the UI may change).
- Add a menu icon in the room screen to open it.

This is still pending info about unread threads, so several UI components related to it will be hidden.

* Add feature flag and use it to hide the access to this new screen

---------

Co-authored-by: ElementBot <android@element.io>
2026-04-15 12:14:22 +00:00
Benoit Marty
8c5caabed4 Sign in with Classic 2026-04-13 11:16:05 +02:00
Jorge Martin Espinosa
410a3d132b
Add floating/sticky date badge in the timeline (#6496)
* Add floating date indicator while scrolling the timeline (#6433)

* Add `FeatureFlags.FloatingDateBadge`. This enables displaying the floating date badge in the timeline as you scroll.

* Don't display the floating badge if the timeline isn't reversed. Otherwise, this will affect talkback users and break the existing navigation

* Use `TimelineItem.formattedDate()` to get the date to display. Always try finding the closest one (usually it will be just the 1st one we try).

* Align designs with iOS. Also fix shadows in fade animation by adding some paddings.

* Update screenshots

---------

Co-authored-by: Gianluca Iavicoli <gianluca.iavicoli04@gmail.com>
Co-authored-by: ElementBot <android@element.io>
2026-04-01 10:45:57 +00:00
Jorge Martin Espinosa
bd618ccba6
Fix content scrolling not working in the RTE (#6492)
Implement a `customDetectVerticalDragGestures` that matches the original `detectVerticalDragGestures` expect we conditionally consume the initial DOWN event in compose to decide whether we need to drag the bottom sheet or scroll inside the Android `EditText`
2026-04-01 11:06:28 +02:00
Jorge Martin Espinosa
579bc7db62
Try fixing location pin previews (#6495)
* Try fixing location pin previews

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
Co-authored-by: Benoit Marty <benoitm@element.io>
2026-03-31 14:57:37 +00:00
Benoit Marty
087c159325
Merge pull request #6459 from element-hq/feature/bma/iterateOnBadgeColors
Sync compound tokens https://github.com/element-hq/compound-design-tokens/releases/tag/v8.0.0
2026-03-25 14:28:15 +01:00
Benoit Marty
aa5b1f5a07
Merge pull request #6456 from element-hq/feature/bma/iterateOnSpaceHeader
Iterate on space header
2026-03-24 17:54:02 +01:00
Benoit Marty
78d500ba55 Edit room detail: increase avatar size. #6458 2026-03-24 16:56:34 +01:00
Benoit Marty
8e1388efb7 Add border for Neutral badge. 2026-03-24 16:39:37 +01:00
ganfra
92920b862b
Merge pull request #6342 from element-hq/feature/fga/live_location_sharing_setup
Setup live location sharing feature
2026-03-24 15:46:45 +01:00
Benoit Marty
3439def2c5 Add Figma link on MatrixBadgeAtom 2026-03-24 15:43:04 +01:00
Benoit Marty
8c5ea9694e Edit room/space detail: change avatar size to 64 and adapt edit icon ratio. See #6364 2026-03-24 12:53:31 +01:00
renovate[bot]
2f99806603
fix(deps): update dependency androidx.compose.material3:material3 to v1.5.0-alpha15 (#6306)
* fix(deps): update dependency androidx.compose.material3:material3 to v1.5.0-alpha15

* Fix deprecations

* Add bottom sheet workaround

* Fix new lint issues

* Fix and ignore broken tests

* Update screenshots

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
Co-authored-by: ElementBot <android@element.io>
2026-03-24 11:24:07 +01:00
ganfra
ccc5945e6f Fix quality! 2026-03-12 21:12:52 +01:00
ganfra
96147967ac Code cleanup 2026-03-12 12:35:46 +01:00
ganfra
e6b18668a6 Improve LocationPin rendering with caching mechanism 2026-03-09 20:54:02 +01:00
ganfra
09382530a3 Use android.graphic.canvas to create proper bitmap 2026-03-09 20:54:02 +01:00
ganfra
5f16a5658b LocationPin : disable hardware rendering if needed 2026-03-09 20:54:02 +01:00
ganfra
785587911b Introduce LocationPinMarkers composable 2026-03-09 20:54:02 +01:00
ganfra
d29accefc6 Remove PinIcon 2026-03-09 20:54:01 +01:00
ganfra
007ce4a753 Better LocationPinMarker 2026-03-09 20:54:01 +01:00
ganfra
d96e6e7909 Introduce LocationPinMarker 2026-03-09 20:54:01 +01:00
ganfra
4e2ba3c1d9 Allow picking duration for the live location share 2026-03-09 20:54:01 +01:00
Benoit Marty
9292a8efc7 Remove ComposerAlertLevel.Default (not in the design). 2026-03-02 13:56:08 +01:00
Benoit Marty
de9987deea Use gradient color in ComposerAlertMolecule. Fixes #6192 2026-03-02 13:03:47 +01:00
Benoit Marty
cc0a9dc907 Fix compilation issue. 2026-03-02 12:44:58 +01:00
Benoit Marty
21aaa98d61 Use stop icon from Compound. 2026-03-02 12:42:45 +01:00
Benoit Marty
86c7d04176 Create HorizontalFloatingToolbar wrapper in our components. 2026-02-25 15:51:20 +01:00
Benoit Marty
ff257164d3 Fix deprecation issue 2026-02-25 15:51:20 +01:00
Jorge Martin Espinosa
b8865d550d
Try to fix common issue with the top app bar (#6187)
The exception is:

> Size(720 x -83) is out of range. Each dimension must be between 0 and 16777215.

So forcing the height to at least 0 should fix it (although it might cause UI glitches?)
2026-02-16 09:42:41 +01:00
Jorge Martin Espinosa
3a565e6065
Remove explicit dependency androix.compose.material (#6199)
* Remove explicit dependency for `androix.compose.material` for compose library modules

* Ensure `Button` uses the `material3.Icon` instead of the `material.Icon`

* Remove entry in `libs.versions.toml`
2026-02-13 15:19:31 +01:00
ganfra
b271e06973
Merge pull request #6150 from element-hq/feature/fga/space_ui_tweaks
Iterate on Space related UI
2026-02-10 11:36:09 +01:00
Benoit Marty
68c9e688ad Use correct bg color. 2026-02-10 10:17:41 +01:00
ganfra
0dec3a1cb6 Merge branch 'develop' into feature/fga/space_ui_tweaks 2026-02-10 09:31:50 +01:00
Skye Elliot
1e268b0709
Add history sharing badges to room details (#6132)
* feat: Add history sharing badges to room details view

* tests: Add snapshots for history sharing room details badges

* fix: Disable soft-wrapping in badges, use FlowRow

* tests: Add unit test for `RoomDetailsState` and history sharing badges.

* tests: Add `MatrixBadgeAtomNeutralWrappingPreview` to exceptions

* chore: Re-order `MatrixBadgeAtom` previews

* fix: Add `Immutable` annotation to `RoomHistoryVisibility`.

* fix: Correct translation for shared badge
2026-02-06 19:03:52 +00:00
ganfra
85f35cb051 Fix formatting 2026-02-06 12:03:17 +01:00
ganfra
53ed396ab5 Add border to SpaceAvatar 2026-02-06 12:03:09 +01:00
ganfra
657d8f3345 Use RoomPreviewAliasAtom in space and room headers 2026-02-06 10:55:02 +01:00
ganfra
ed72a56529 Introduce RoomPreviewAliasAtom with copy feature 2026-02-06 10:52:12 +01:00
ganfra
babaa7351f Add tests and clean code after RoomList Filter rework 2026-01-30 15:33:51 +01:00
ganfra
5c3fc13052 Refactor room list filtering to use Rust SDK 2026-01-29 22:08:12 +01:00
Jorge Martin Espinosa
62768359cb
Create a new room in a space (#6061)
* Add `SpaceService.editableSpaces` and `SpaceService.addChildToSpace`

* Add `parentSpace` to `CreateRoomConfig`

* Allow setting a parent space to a room in `ConfigureRoomPresenter`, make sure the room is added to the parent space when creating it

* `ConfigureRoomPresenter`: Load the list of possible spaces a room can be added to

* Refactor `RoomVisibilityState` to internally use `JoinRuleItem`

This gets rid of `RoomAccess` and `RoomAccessItem`, and it will allow us to map the join rule items in a cleaner way to both join rules and the UI

* Implement the UI changes:

- Display the parent space.
- Allow selecting a new one.
- Import needed strings.

* Fix existing tests

* Add `@Immutable` annotation to `SpaceRoom`, since it was detected as unstable.

Maybe because of `RoomType`?

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2026-01-26 18:23:02 +01:00
ganfra
5b700f7b98 Let SearchBar/SearchField use TextFieldState 2026-01-23 10:32:58 +01:00
ganfra
c53dbf7b2d Quality improvements after PR review 2026-01-22 19:57:04 +01:00
ganfra
8e69174a11 Implement Space "Add existing rooms" logic and ui 2026-01-21 17:33:30 +01:00
Jorge Martin Espinosa
6d1ed5967b
Create spaces (#5982)
* Allow creating a space with `CreateRoomParameters`

* Add 'Create space' menu item in the spaces home screen. Also, imports new strings related to spaces.

* Link the 'Create space' button with the screen to create the space

* Unify room access and visibility for `ConfigureRoom`, use the updated design

* Fix `EditRoomDetails` avatar size (68dp)

* Replace `EditableAvatarView` and `UnsavedAvatar` copmonents with `AvatarPickerView`

* `AvatarDataFetcherFactory`: Make sure we use a fallback image fetcher when the URL is not an MXC one (a local one, i.e.). This removes the previous need for a separate `UnsavedAvatarView`

* Use `AvatarPickerView` in all the screens where `EditableAvatarView` was used

* Improve naming and previews

* Update strings, remove unused ones for `RoomAccessItem`

* Make `isSpace` part of the `CreateRoomConfig`

* Ensure the content fits in the screenshots for `AvatarPickerSizesPreview`

* Add `AvatarDataFetcherFactoryTest`

* Add new feature flag for creating spaces

* Fix ripple being too large for the `Pick` state

* Tweak margins and section titles a bit

* Add preview for `HomeTopBar` with the spaces case

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2026-01-13 14:35:49 +01:00
Benoit Marty
3e4ca0dd53 Remove BigIcon loading state.
Loading is rendered in the buttons now.
2026-01-08 15:53:09 +01:00
Jorge Martin Espinosa
ce85ed16f6
Use TextFieldState for room list search (#5975)
* Add new `FilledTextField` variant using `TextFieldState`

* Use `TextFieldState` for `RoomListSearchState.query` - it seems like this is the best practice for this kind of data

* Bonus: fix the clear button being misaligned
2026-01-07 17:24:01 +01:00
Benoit Marty
7186044482
Merge pull request #5963 from element-hq/feature/bma/variablePlayBackSpeed
Voice message: variable play back speed
2026-01-05 13:58:01 +01:00