Commit graph

1338 commits

Author SHA1 Message Date
ganfra
bb082191e4 Merge branch 'develop' into feature/fga/space_manage_rooms 2026-01-14 17:54:43 +01:00
ganfra
df3fe6d6d6 Fix wrong param order for removeChildFromSpace 2026-01-14 15:27:06 +01:00
Jorge Martin Espinosa
3ef5e76e99
When a duplicate room list entry is found, report it and remove it (#6006)
* When a duplicate room list entry is found, report it and remove it

* Fix tests and fixtures

* Simplify how the updates are described in the Sentry reports
2026-01-14 10:56:45 +00:00
ganfra
b7ff884838 Add manage mode to space view for removing child rooms, wip. 2026-01-13 22:08:48 +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
ganfra
1614bd7a20
Merge pull request #5979 from element-hq/feature/fga/space_members_access
Change Room’s Access to/from Space members
2026-01-12 10:48:44 +01:00
Jorge Martin Espinosa
1f86a4d2c4
Remove previously used id filtering from RoomSyncSubscriber (#5985)
This is done in the SDK, doing it in the client was a source of issues.
2026-01-09 17:19:35 +01:00
ganfra
0668135d0e Merge branch 'develop' into feature/fga/space_members_access 2026-01-08 13:46:02 +01:00
renovate[bot]
ff11d6e9c1
fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v26 (#5977)
* fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v26

* Fix API breaks: `ShieldStateCode` is now `TimelineEventShieldStateCode`

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-01-07 17:29:18 +00:00
Jorge Martin Espinosa
06c4b9488b
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
Jorge Martin Espinosa
8955fb18ae
Use VerificationState.VERIFIED as soon as it's available (#5973)
This can't be a false positive like `VerificationState.UNKNOWN` or `VerificationState.UNVERIFIED`, so it makes sense to return it as fast as possible instead of waiting for the whole encryption layer to be fully loaded.
2026-01-05 15:06:00 +00:00
Benoit Marty
b26b435e27 Ensure factorize follow the same code convention 2025-12-29 09:40:24 +01:00
ganfra
c398c62cc7 space service : expose methods from sdk 2025-12-23 20:49:41 +01:00
Jorge Martín
dbf32a1bfe RustSpaceService.joinedSpaces() now points to the FFI method SpaceService.topLevelJoinedSpaces() 2025-12-22 11:19:37 +01:00
Jorge Martín
0440f760ed Instantiate the now suspending innerClient.spaceService() RustMatrixClient with runBlocking for now 2025-12-22 11:19:37 +01:00
Jorge Martín
a8ffe46d99 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 Martín
0ed40c562d Replace some usages of TimelineEventType in EventType with TimelineEventContent 2025-12-22 11:19:37 +01:00
Jorge Martin Espinosa
4f1fd33b47
Fix unverified account after account creation (#5914)
* Fix unverified account after account creation:

When we create an account either using OIDC or by importing a login and password one, we need to wait until the verification state is known (either verified or unverified).

The problem is the verification service will return incorrect values until the E2EE tasks are initialized in the SDK, even if we add the state listeners after doing so.

So what we can do is initialize the E2EE setup, discard any invalid verification state received while it's not initialized, and take only those received after it's initialized.

* Actually restore the `Client` in `RustMatrixAuthenticationService.importCreatedSession` so we don't need to use `clear` and have the navigation restore the client later:

This standarizes the way the login/registration flow works, always restoring/reusing the existing client instance
2025-12-19 12:55:34 +01:00
Jorge Martin Espinosa
105bab1758
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
3ea10c2c62
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
20eebea077 Remove comment that was no longer valid 2025-12-18 14:08:38 +01:00
Jorge Martín
2590659637 Add tests for RustMatrixClient.getDatabaseSizes() 2025-12-18 14:08:38 +01:00
Jorge Martín
fa8d7b73c7 Fix tests 2025-12-18 14:08:38 +01:00
Jorge Martín
e18a5ef17f 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
6441153dba Rename ByteSize.to to ByteSize.into
This method could clash the the `a to b` operator.
2025-12-18 14:08:38 +01:00
Jorge Martín
a7eb46ed45 Add MatrixClient.getDatabaseSizes
This returns a `SdkStoreSizes` object, with the possible SDK database sizes.
2025-12-18 14:08:38 +01:00
renovate[bot]
74ca4ff9d6
fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.12.17 (#5912)
* fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.12.17

* Fix changes in the SDK:

`LatestEventValue.Local` doesn't have an `isSending` property anymore, now it has `state: LatestEventValueLocalState`. If this is `HAS_BEEN_SENT`, it's equivalent to a `LatestEventValue.Remote`, we just haven't received the updated value from the SDK yet.
---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-12-17 15:08:41 +00:00
ganfra
f29b0e399a
Merge pull request #5908 from element-hq/feature/fga/space_settings_iteration
Change : space settings iteration
2025-12-16 22:41:03 +01:00
ganfra
7d98bd0af5 quality: fix tests after latest changes 2025-12-16 20:34:26 +01:00
Benoit Marty
d7ace0d580 Add test on RustCheckCodeSender 2025-12-16 20:03:33 +01:00
Benoit Marty
ec10a0bf87 Add unit test on RustLinkDesktopHandler
Add unit test on RustLinkMobileHandler
Add unit test on DefaultLinkNewDeviceEntryPoint
2025-12-16 18:37:33 +01:00
Benoit Marty
a073117d62 Link new device using QrCode. 2025-12-16 16:14:04 +01:00
Benoit Marty
5ebb615751 Format files. 2025-12-16 16:13:25 +01:00
ganfra
ce079e84f5 Merge branch 'develop' into feature/fga/space_settings_iteration 2025-12-15 16:06:06 +01:00
ganfra
65c3188b7a
Merge pull request #5879 from element-hq/feature/fga/room_permissions_rework
misc : rework power levels apis
2025-12-15 12:19:54 +01:00
Jorge Martin Espinosa
aa061f8ef3
Fix crash when calling Room.predecessorRoom when the room is destroyed (#5894)
* Fix crash when calling `Client.predecessorRoom` when the room is destroyed

* Handle the root cause of this crash: destroying the room on activity recreation
2025-12-15 10:25:08 +01:00
ganfra
d26f21a53b misc(power level) : update tests following api change 2025-12-12 11:52:24 +01:00
ganfra
541a1d29bd misc(power level) : remove old api 2025-12-12 11:26:54 +01:00
ganfra
44535243ef misc(power level) : introduce RoomPermissions 2025-12-12 11:26:54 +01:00
Jorge Martín
881877b23e Add missing trace log packs 2025-12-10 16:27:53 +01:00
Jorge Martín
27cb88d88e Fix broken API changes: use Room.latestEvent, which will keep its name, but it'll be using the logic previously in Room.newLatestEvent 2025-12-10 16:27:53 +01:00
ganfra
3e67a43799 change(room permissions): support space management 2025-12-10 15:29:50 +01:00
Jorge Martín
607b1d9023 Add Sentry transaction so we can check how long it takes to vacuum and if there were any errors when doing it 2025-12-10 15:22:16 +01:00
Jorge Martín
54c49e4f33 Fix dependency injection 2025-12-10 15:22:16 +01:00
Jorge Martín
2e88815e1b Make sure we schedule the vacuum task only if there isn't an existing one 2025-12-10 15:22:16 +01:00
Jorge Martín
734485255a Add a periodic DB vacuuming task 2025-12-10 15:22:16 +01:00
Jorge Martín
5d6aa1fcfd Add developer option to optimize the SDK DBs 2025-12-10 15:22:16 +01:00
ganfra
5d2008cfe9 misc(power level) : clean up code 2025-12-10 11:26:07 +01:00
ganfra
400d520685 misc(power level) : remove old api 2025-12-08 22:23:17 +01:00
Benoit Marty
f76d817b4e
Merge pull request #5852 from element-hq/renovate/io.nlopez.compose.rules-detekt-0.x
fix(deps): update dependency io.nlopez.compose.rules:detekt to v0.5.1
2025-12-08 15:05:12 +01:00