Commit Graph

1816 Commits

Author SHA1 Message Date
renovate[bot]
7b3f082eb3 fix(deps): update kotlin to 2.3.0 (#5917)
* fix(deps): update kotlin to 2.3.0

* Cleanup - remove `datetime` compat version

* Fix several lint issues caused by the Kotlin compiler inference working better (checks in nullables, vars, etc.)

* Fix tests by removing mock in `File.readBytes`, it seems like it's no longer allowed. Using a tmp file works well enough.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-12-22 14:28:15 +01:00
Jorge Martín
293d41f122 RustSpaceService.joinedSpaces() now points to the FFI method SpaceService.topLevelJoinedSpaces() 2025-12-22 11:19:37 +01:00
Jorge Martín
cfa7d39966 Instantiate the now suspending innerClient.spaceService() RustMatrixClient with runBlocking for now 2025-12-22 11:19:37 +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 Martín
63d205f8aa Replace some usages of TimelineEventType in EventType with TimelineEventContent 2025-12-22 11:19:37 +01:00
Jorge Martin Espinosa
83eae74488 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
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
37d81fd4d1 Remove comment that was no longer valid 2025-12-18 14:08:38 +01:00
Jorge Martín
de694cecdb Add tests for RustMatrixClient.getDatabaseSizes() 2025-12-18 14:08:38 +01:00
Jorge Martín
5c6fee08fd Fix tests 2025-12-18 14:08:38 +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
b4d2f322ad 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
dc0b508b08 Add MatrixClient.getDatabaseSizes
This returns a `SdkStoreSizes` object, with the possible SDK database sizes.
2025-12-18 14:08:38 +01:00
renovate[bot]
10b85ec1ff 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
8266902ec2 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
f8824e1ce1 quality: add missing doc 2025-12-16 20:34:33 +01:00
ganfra
10b61df11b quality: fix tests after latest changes 2025-12-16 20:34:26 +01:00
Benoit Marty
086229f5dc Add test on RustCheckCodeSender 2025-12-16 20:03:33 +01:00
Benoit Marty
b5fdc179c7 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
fd446e98dd Link new device using QrCode. 2025-12-16 16:14:04 +01:00
Benoit Marty
028741d81c Format files. 2025-12-16 16:13:25 +01:00
ganfra
591eac83bd Merge branch 'develop' into feature/fga/space_settings_iteration 2025-12-15 16:06:06 +01:00
ganfra
5bb71db3b1 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
aaf788b448 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
5c8fd831e3 misc(power level) : update tests following api change 2025-12-12 11:52:24 +01:00
ganfra
29c1f33638 misc(power level) : remove old api 2025-12-12 11:26:54 +01:00
ganfra
ee38fb5f63 misc(power level) : use new api 2025-12-12 11:26:54 +01:00
ganfra
2dc8018c37 misc(power level) : introduce RoomPermissions 2025-12-12 11:26:54 +01:00
Jorge Martín
9723a7c426 Add missing trace log packs 2025-12-10 16:27:53 +01:00
Jorge Martín
289c0751d5 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
03dd89a77f change(room permissions): support space management 2025-12-10 15:29:50 +01:00
Jorge Martín
7e3acd6b58 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
09cab10abc Fix dependency injection 2025-12-10 15:22:16 +01:00
Jorge Martín
d78e28be5e 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
482d7e0648 Add a periodic DB vacuuming task 2025-12-10 15:22:16 +01:00
Jorge Martín
9c72310cb4 Add developer option to optimize the SDK DBs 2025-12-10 15:22:16 +01:00
ganfra
0befce4743 misc(power level) : clean up code 2025-12-10 11:26:07 +01:00
ganfra
b32157f99e misc(power level) : update tests following api change 2025-12-09 22:38:30 +01:00
ganfra
c87a8e9cff misc(power level) : remove old api 2025-12-08 22:23:17 +01:00
ganfra
8b8f58f018 misc(power level) : use new api 2025-12-08 22:23:07 +01:00
Benoit Marty
4cfd8907dd 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
Benoit Marty
ad366c63ec Merge pull request #5855 from element-hq/renovate/org.matrix.rustcomponents-sdk-android-25.x
fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.12.4
2025-12-08 14:24:24 +01:00
Jorge Martín
754c0781f9 Don't re-schedule notification fetches if the cause of the failure is SessionRestorationException, since that means it'll most likely fail again 2025-12-05 17:42:57 +01:00
Jorge Martín
f745f2ca1e Add SessionRestorationException, make sure ClientException can expose it through the cause property 2025-12-05 17:42:57 +01:00
ganfra
9b056f8aec misc(power level) : introduce RoomPermissions 2025-12-05 12:53:58 +01:00
Benoit Marty
096b8768ea Fix warning "Throwable should be first argument" 2025-12-05 09:48:26 +01:00
Benoit Marty
72b3decf4c Detekt: enable rule exceptions.SwallowedException and fix existing issue. 2025-12-05 09:45:23 +01:00
Jorge Martín
5d88a04ab0 Add missing abstractions and fakes 2025-12-04 18:02:59 +01:00
Jorge Martín
e814906ba1 Restore disabled tests with FFI fakes 2025-12-04 16:55:22 +01:00