Commit Graph

4979 Commits

Author SHA1 Message Date
Jorge Martin Espinosa
f6b8c189e1 When a background SDK task fails, react in the client (#6166)
- For initialization issues or errors, we just print and report them.
- For panics (unrecoverable errors) we also crash the app.
2026-02-10 12:28:24 +01:00
ganfra
ee0da6b15c 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
d351f7d471 Use correct bg color. 2026-02-10 10:17:41 +01:00
ganfra
91eeb7b773 Merge branch 'develop' into feature/fga/space_ui_tweaks 2026-02-10 09:31:50 +01:00
Benoit Marty
c03788526c QRCode login: treat not found error as expired error. (#6161)
Reorder some when cases.
2026-02-09 16:34:23 +01:00
ElementBot
6a101e7b65 Sync Strings from Localazy (#6155)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2026-02-09 16:30:57 +01:00
Benoit Marty
c18ac905c8 QRCode login: treat not found error as expired error.
Reorder some when cases.
2026-02-09 15:14:18 +01:00
Skye Elliot
028ec221b0 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
renovate[bot]
82dd9a3f77 Update dependency org.matrix.rustcomponents:sdk-android to v26.2.6 (#6144)
* Update dependency org.matrix.rustcomponents:sdk-android to v26.2.5

* Fix breaking API changes:
- Add temporary imlementation for `RustClientSessionDelegate.onBackgroundTaskErrorReport`, logging unrecoverable errors in background tasks of the SDK.
- Change `TimelineEventTypeFilter` to `TimelineEventFilter`.
- Support new `LatestEventValue.RemoteInvite`.

* Update the Rust SDK to `26.2.6`

* Fix API changes: `TimelineFocus.PinnedEvents` no longer takes any arguments

* Fix test fixtures: `NotificationItem` has a `rawEvent` field now

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-02-06 12:40:03 +00:00
ganfra
bbc11809b0 Fix formatting 2026-02-06 12:03:17 +01:00
ganfra
2dbfa4811f Add border to SpaceAvatar 2026-02-06 12:03:09 +01:00
ganfra
9080400ff0 Use RoomPreviewAliasAtom in space and room headers 2026-02-06 10:55:02 +01:00
ganfra
5775ac5c60 Introduce RoomPreviewAliasAtom with copy feature 2026-02-06 10:52:12 +01:00
ganfra
8625c9d5ae Update SpaceRoom visibility related UI 2026-02-06 09:36:42 +01:00
ganfra
fd34bb0bb4 Sync required strings 2026-02-06 09:32:10 +01:00
ganfra
d58f4a28f8 Merge pull request #6136 from element-hq/feature/fga/space_room_list_filter
Add Space Filters feature for Room List
2026-02-05 16:14:16 +01:00
Jorge Martin Espinosa
a805e0ef6d Fix linkify helper index out of bounds with parenthesis (#6140)
When parenthesis were mismatched by having more opening parenthesis than closing ones, we could end up incorrectly making the URLSpan `end` value greater than the actual text length, causing an `IndexOutOfBoundsException`
2026-02-05 09:33:38 +01:00
Jorge Martin Espinosa
22e60bf3c6 When creating a DM, set room history visibility to invited (#6138) 2026-02-04 14:54:59 +00:00
ganfra
36fb3e251d Add tests for SpaceFiltersPresenter and SpaceFiltersView and fix quality 2026-02-04 14:42:57 +01:00
Jorge Martin Espinosa
5175bacb5e Remove JoinRule.Private from the codebase (#6129)
It shouldn't be in use, since it was never properly defined:

- The `Private` values coming from the SDK are considered to be `Invite` instead.
- Remove any existing `JoinRule.Private` usages in our code.
2026-02-03 19:27:22 +01:00
ganfra
915aca9c1d Add room list filter combining based on space selection 2026-02-02 21:46:33 +01:00
ganfra
908616e8e8 Add RoomListSpaceFilters FF 2026-02-02 21:02:55 +01:00
ganfra
9d576394ac Spaces : expose new SpaceServiceFilter 2026-02-02 21:02:55 +01:00
ganfra
2132b65bf6 Spaces : some cleanup on SpaceService 2026-02-02 21:02:54 +01:00
Benoit Marty
53efcbe636 Merge pull request #6119 from element-hq/feature/bma/handleHttp429
Ensure http 429 are retried 3 times before failing.
2026-02-02 12:42:57 +01:00
Benoit Marty
7ff87a0adf Merge pull request #6122 from element-hq/sync-localazy
Sync Strings
2026-02-02 12:24:28 +01:00
ganfra
bb2e69c4ca Merge pull request #6117 from element-hq/feature/fga/room_list_filter_rust
Refactor room list filtering to use Rust SDK
2026-02-02 10:58:21 +01:00
Benoit Marty
9d8eec7ad1 Update comment 2026-02-02 10:45:39 +01:00
ganfra
b3b15b3764 Remove unused withoutAccents extension function 2026-02-02 10:21:25 +01:00
bmarty
ab78b6e877 Sync Strings from Localazy 2026-02-02 00:39:17 +00:00
Benoit Marty
7d4243657c Ensure http 429 are retried 3 times before failing. 2026-01-30 15:43:00 +01:00
ganfra
9641d3ef4f Add tests and clean code after RoomList Filter rework 2026-01-30 15:33:51 +01:00
Jorge Martin Espinosa
63f24f0ae1 Add special flow for leaving a space as the last owner (#6112)
* When the user is in a v12 room, use different UI to select the last owner when leaving

- Add `LeaveSpaceRoom.areCreatorsPrivileged` to detect when this is happening.
- Import new strings.
- Build the new UI.
- Attach it to a change member roles screen navigation.

* Don't display the `isLastOwner` UI if the user is the only joined one in the room

* Rename `LeaveSpaceState.isLastOwner` to `.needsOwnerChange`. This way, it's easier to understand the difference with the passed `LeaveSpaceRoom.isLastOwner` value

* Add a test for the new check of user not being the last joined member

* Fix paddings in `LeaveSpaceView`

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2026-01-30 09:10:00 +00:00
ganfra
0824a3ab8b Refactor room list filtering to use Rust SDK 2026-01-29 22:08:12 +01:00
ganfra
48ec74c248 Clean up unused imports and improve code documentation 2026-01-27 18:43:38 +01:00
ganfra
1e25938ef7 Iterate on manage space rooms, but not happy with the reset method. 2026-01-27 18:43:38 +01:00
ganfra
4ccfb31646 Add SpaceRoomList extension functions for pagination 2026-01-27 18:43:38 +01:00
ganfra
33eb848c94 Add reset method to SpaceRoomList 2026-01-27 18:43:38 +01:00
renovate[bot]
692302df5c Update dependency org.matrix.rustcomponents:sdk-android to v26.1.27 (#6096)
* Update dependency org.matrix.rustcomponents:sdk-android to v26.1.27

* Fix breaking API changes: `LeaveSpaceRoom.isLastAdmin` is now `LeaveSpaceRoom.isLastOwner`.

* Rename `isLastAdmin` to `isLastOwner` in our codebase too.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-01-27 15:02:55 +00:00
Richard van der Hoff
7dae283874 Show an icon in the room header for shared history (#6090)
Add a decoration to the header for encrypted rooms with `history_visibility:
{shared|public}`.

Fixes: #6070

---------

Co-authored-by: ElementBot <android@element.io>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-01-27 11:31:01 +00:00
Jorge Martin Espinosa
0313fa56dd 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
Benoit Marty
011d375b44 Sync all strings and fix compilation issue. 2026-01-26 14:13:06 +01:00
ElementBot
b731d9a4a3 Sync Strings from Localazy (#6085)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2026-01-26 12:06:38 +01:00
ganfra
b73e15625a Merge pull request #6074 from element-hq/feature/fga/fix_edit_details
Fix RoomDetailsEditView avatar picker for spaces
2026-01-23 15:55:37 +01:00
ganfra
4a43076fc2 Fix AvatarPickerView touch target and disabled state
- Make edit button clickable for better touch accessibility
- Hide edit button and erase background when disabled
- Extract interactionSource to share between clickable areas
2026-01-23 12:11:51 +01:00
ganfra
3e0bd904c9 Merge pull request #6072 from element-hq/feature/fga/search_bar_text_field_state
Let SearchBar/SearchField use TextFieldState
2026-01-23 11:07:37 +01:00
ganfra
fa1b32f0ba Let SearchBar/SearchField use TextFieldState 2026-01-23 10:32:58 +01:00
Jorge Martin Espinosa
deb340daba Use MediaPreviewValue.Private to check if media should be displayed in notifications (#6038)
* Use `MediaPreviewValue.Private` to check if images should be displayed in notifications

Also added `NotificationData.roomJoinRule` so we can use it to check if the room is public or not

* Add logging message for cases when we should have an image uri it turns out we don't
2026-01-23 09:01:52 +00:00
ganfra
626479844f Quality improvements after PR review 2026-01-22 19:57:04 +01:00
ganfra
94876f2dee Fix quality 2026-01-22 10:46:01 +01:00