Commit Graph

948 Commits

Author SHA1 Message Date
Jorge Martín
7fe0cc4d45 Add MediaSource.withCleanUrl method that removes invalid fragment data from MXC urls
We've seen some MXC urls in the wild having some `mxc://foo/bar#auto` fragment suffix, which is invalid, but the URL before that fragment part is valid and can be displayed
2026-02-27 09:52:17 +01:00
renovate[bot]
1ce57d811e Update dependency org.matrix.rustcomponents:sdk-android to v26.02.19 (#6229)
* Update dependency org.matrix.rustcomponents:sdk-android to v26.02.19

* Fix breaking API changes: added `isLowPriority` to `RoomInfo` and `RoomSummary`.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-02-20 09:01:07 +01:00
renovate[bot]
bc295b3c97 Update dependency org.matrix.rustcomponents:sdk-android to v26.2.16 (#6211)
* Update dependency org.matrix.rustcomponents:sdk-android to v26.2.16

* Fix log rotation breaking changes. The new values match iOS (https://github.com/element-hq/element-x-ios/pull/5108/)

* Fix `aRustRoomInfo()` test fixture

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-02-17 10:42:31 +01:00
Benoit Marty
83fee6d9ba Remove NavigationState.Space.
We do not have the concept of current space.
2026-02-11 20:41:55 +01:00
ganfra
91eeb7b773 Merge branch 'develop' into feature/fga/space_ui_tweaks 2026-02-10 09:31:50 +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
8625c9d5ae Update SpaceRoom visibility related UI 2026-02-06 09:36:42 +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
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
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
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
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
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
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
9fe7c50972 Implement Space "Add existing rooms" logic and ui 2026-01-21 17:33:30 +01:00
ganfra
c3a469544e Add addChildToSpace method to SpaceService 2026-01-21 17:33:30 +01:00
ganfra
edba196a69 sdk : allow passing coroutineScope to RoomList 2026-01-21 16:48:22 +01:00
ganfra
1cbf7d9624 Merge pull request #6045 from element-hq/feature/fga/invite_people_suggestions
Add suggestions section to InvitePeopleView
2026-01-20 13:45:42 +01:00
ganfra
7be66061e2 Add suggestions section to InvitePeopleView 2026-01-20 10:09:49 +01:00
Jorge Martin Espinosa
666a5f4f74 The relatedTo field in RoomSendQueueUpdate.MediaUpload is a transaction id (#6002)
It was being incorrectly mapped to an event id.
2026-01-19 10:39:48 +01:00
Richard van der Hoff
ae76e8b0ea Display a badge for messages decrypted using shared keys (#6023)
The EXA side of element-hq/element-meta#2877: if the keys for a message have been forwarded by another user, indicate that in the UI via the text shown when tapping the event shield.
2026-01-16 17:24:18 +00:00
Jorge Martin Espinosa
98890f5365 Create AppMigration09 to remove the cached well-known config from the SDK (#6026)
This value was most likely was incorrectly cached due to a previous issue in the SDK
2026-01-16 16:03:49 +01:00
ganfra
d4e676fd5a Merge branch 'develop' into feature/fga/space_manage_rooms 2026-01-14 17:54:43 +01:00
ganfra
78b4895254 Add manage mode to space view for removing child rooms, wip. 2026-01-13 22:08:48 +01:00
Jorge Martin Espinosa
03d14087e6 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
ganfra
3c5d50860d Merge branch 'develop' into feature/fga/space_members_access 2026-01-08 13:46:02 +01:00
Jorge Martin Espinosa
71031008dd Adjust metrics to the new specifications (#5937)
* Add `AnalyticsTransactions` with a set of `TransactionDefinition` items matching those in the user story

* Use that for `AnalyticsLongRunningTransactions`, make sure we send the right fields (name, operation, description)

* Add `AnalyticsSendMessageWatcher` to track how long it takes for an event to be sent and for us to get a call back for that from sync

* Add `Noop` implementation for enterprise
2026-01-05 16:23:26 +01:00
ganfra
b59e36aabd space service : expose methods from sdk 2025-12-23 20:49:41 +01:00
Jorge Martín
75f8c4f594 Transform MessageEventType and StateEventType into sealed interfaces to handle the Custom variant, also add missing variants 2025-12-22 11:19:37 +01:00
Jorge Martin Espinosa
0b5c4fc8bb Add threadInfo field to message like timeline events (#5930)
* Add `threadInfo` field to message like timeline events:
- Polls
- Stickers
- UTDs

* Add missing cases for `EventTimeline.threadInfo()`
2025-12-19 09:43:40 +00:00
Benoit Marty
65c17eacc6 Merge pull request #5909 from element-hq/feature/bma/qrCodeLogin
Link new device using QrCode - First version
2025-12-18 16:08:21 +01:00
Jorge Martín
b064b35c93 Create GetDatabaseSizesUseCase so we don't have to expose the while MatrixClient to get these values 2025-12-18 14:08:38 +01:00
Jorge Martín
dc0b508b08 Add MatrixClient.getDatabaseSizes
This returns a `SdkStoreSizes` object, with the possible SDK database sizes.
2025-12-18 14:08:38 +01:00
ganfra
f8824e1ce1 quality: add missing doc 2025-12-16 20:34:33 +01:00
Benoit Marty
fd446e98dd Link new device using QrCode. 2025-12-16 16:14:04 +01:00
ganfra
591eac83bd Merge branch 'develop' into feature/fga/space_settings_iteration 2025-12-15 16:06:06 +01:00
ganfra
5c8fd831e3 misc(power level) : update tests following api change 2025-12-12 11:52:24 +01:00