Commit Graph

2526 Commits

Author SHA1 Message Date
Benjamin Bouvier 4ee20befa3 chore: address first batch of review comments 2026-04-20 12:18:52 +02:00
Benjamin Bouvier 4348d9de23 chore: add changelog entries for search! 2026-04-20 12:18:52 +02:00
Benjamin Bouvier 477ee70e1c feat(ffi): bindings for search 2026-04-20 12:18:52 +02:00
Benjamin Bouvier 83989c030a feat(ffi): allow enabling search with a search index store 2026-04-20 12:18:52 +02:00
Ivan Enderlin 1bff8cbe5d chore(ffi): Do not log errors in ClientError::from_str.
This patch stops logging errors in `ClientError::from_str` as it was an
artifact of some old debugging sessions.
2026-04-20 11:33:15 +02:00
Ivan Enderlin 9bb67e8422 fix(ffi): Use the ERROR log level for errors.
This patch changes a `warn!` to an `error!` in `ClientError`. There are
errors, let's use the proper log level here.
2026-04-20 11:33:15 +02:00
Benoit Marty 3293c94451 feat(ffi): Expose Client.request_openid_token() in order to let sdk clients request an openId token 2026-04-17 08:29:43 +00:00
Johannes Marbach 63f5be6935 feat(sync): Allow setting a custom Sliding Sync connection ID and timeline limit on RoomListService
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2026-04-15 11:06:57 +02:00
Jorge Martín 9c28ee7041 feat(ffi): Add ffi::Client::set_avatar_url
This method uses `Account::set_avatar_url` under the hood to update the user's avatar to the provided MXC url
2026-04-14 12:08:47 +02:00
ganfra 96d63b7c8d doc: update changelogs 2026-04-13 16:57:57 +02:00
ganfra 260eaeea2b feat (live location): rewrite live location shares subscription logic 2026-04-13 16:57:57 +02:00
Hubert Chathi 45fa860b6b add secret pushing feature to FFI 2026-04-10 14:52:39 +01:00
Daniel Salinas d47306045f Add cfg around inadvertent use of sqlite in matrix-sdk-ffi crate
Several new functions implicitly rely on the sqlite config.
sqlite might not be present if you are using the indexedb store, in which case
these functions are likely irrelevant.

This change conditionalizes their compilation.
2026-04-10 14:11:36 +02:00
Philippe Bertin ba461598b2 feat(ffi): expose latest json
Signed-off-by: Philippe Bertin <pbertin@teladochealth.com>
2026-04-09 15:57:29 +02:00
Stanislav Skobelkin 0233d03d4e fix(ffi): Export Eq and Hash traits in enums used as HashMap keys
matrix_sdk_ffi::ruma::TagName and matrix_sdk_ffi::event::TimelineEventType enums
that are used as HashMap keys by matrix_sdk_ffi::ruma::Tag and
matrix_sdk_ffi::room::power_levels::RoomPowerLevels respectively should probably
export Eq and Hash traits, so that we can generate bindings for languages that
implement uniffi's record/HashMap type using a hash table (e.g.
std::unordered_map in C++)

Signed-off-by: Stanislav Skobelkin <stanislav@skobelk.in>
2026-04-09 12:12:57 +02:00
Damir Jelić 725f74cbe8 fix(ffi): Correctly return that the backup is complete if the backup key is valid 2026-04-09 12:01:04 +02:00
Damir Jelić 34a35ad32a feat(ffi): Allow passing in a SecretsBundle after logging in (#6212)
This allows people to get a secrets bundle out of band or out of a database and import it
after logging in a new client.

Mainly targeted to support the Element Classic -> Element X migration.

Signed-off-by: Damir Jelić <poljar@termina.org.uk>
Co-authored-by: Benoit Marty <benoitm@matrix.org>
2026-04-08 14:07:57 +00:00
Jonas Platte 94d8674709 refactor(ffi): Deduplicate thumbnail conversion code 2026-04-08 07:58:36 +02:00
Jonas Platte dfc4e03d5b refactor(ffi): Replace nested match with if-let chain 2026-04-08 07:58:36 +02:00
Jonas Platte 14b8248e4b refactor(ffi): Extract closure as fn to reduce indentation 2026-04-08 07:58:36 +02:00
Jonas Platte 447c89aed4 refactor(ffi): Merge separate impl blocks 2026-04-08 07:58:36 +02:00
Michael Goldenberg 41edb08283 doc(ffi): update change log
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net>
2026-04-07 09:44:34 -04:00
Michael Goldenberg 44aad14732 doc: update references to tls features
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net>
2026-04-07 09:44:34 -04:00
Michael Goldenberg c8c9a94995 feat(ffi): remove rustls-tls feature flag
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net>
2026-04-07 09:44:33 -04:00
Michael Goldenberg 89c50c7ecd feat(ffi): remove support for native-tls
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net>
2026-04-07 09:44:33 -04:00
Jonas Platte 12cd1effdc refactor(ffi): Fix new clippy lints 2026-04-07 12:39:12 +02:00
Jonas Platte 3a14b73258 chore(ffi): Rerun cargo fmt 2026-04-07 12:39:12 +02:00
Jonas Platte d97f4ab8b3 chore(ffi): Upgrade to Rust edition 2024 2026-04-07 12:39:12 +02:00
Bryant Mairs 3539487c49 feat: expose call_intent for m.rtc.notification
This allows for notifications to use the intent for deciding how to
render the message (e.g. whether to call it a "call" or a "video call").

Signed-off-by: Bryant Mairs <bryant@mai.rs>
2026-04-07 10:26:26 +02:00
Kévin Commaille 30de5372eb Upgrade Ruma after api::Error breaking change
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-04-07 10:17:42 +02:00
Kévin Commaille ba451b67c9 Upgrade Ruma after RoomAliases removal
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-04-07 10:17:42 +02:00
Valere Fedronic fcce02fc11 feat(widget): Support for avatars in calls via msc4039 (#6354)
Allows to get the avatars in Element Call widget !
Using
[MSC4039](https://github.com/nordeck/matrix-spec-proposals/blob/nic/feat/widgetapi-upload-files/proposals/4039-widget-api-media.md)

Counter part of web support:
- https://github.com/element-hq/element-web/pull/32755
- https://github.com/element-hq/element-call/pull/3780

Needs a EC PR to support passing data as base64 via the widget json API
- https://github.com/element-hq/element-call/pull/3818
2026-04-02 13:35:22 +03:00
Bertin Philippe 32e9626e0f feat(ffi): expose event types and content (#6387)
Signed-off-by: Philippe Bertin <pbertin@teladochealth.com>
2026-04-02 09:14:57 +02:00
Kévin Commaille 644c5e8a4c Upgrade Ruma to commit after PushCondition breaking changes
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-04-01 10:20:21 +01:00
Kévin Commaille 34d5e6da2a Upgrade Ruma to commit after UserIdentifier breaking changes
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-04-01 10:20:21 +01:00
Kévin Commaille 5936a7285f Upgrade Ruma to commit after push Action breaking changes
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-04-01 10:20:21 +01:00
Doug 0afd7c9528 fix: Update the iOS platform version to match the deployment target. 2026-04-01 11:12:18 +03:00
Benjamin Bouvier 388ced09a6 Merge pull request #6344 from matrix-org/bnjbvr/automatic-backpagination-unread-counts
feat(event cache): automatic back-pagination for unread counts, MVP
2026-04-01 09:26:55 +02:00
Damir Jelić 16c1b9b57f chore: Bump rand 2026-03-31 16:57:50 +02:00
Benjamin Bouvier 9913cce946 Merge branch 'main' into bnjbvr/automatic-backpagination-unread-counts 2026-03-31 15:55:44 +02:00
Jorge Martín 5d2eab119d feat: Improve getting homeserver capabilities
This extracts the `/capabilities` logic to its own `HomeserverCapabilities` component in the SDK that can be manually asked to fetch, cache locally and return these capabilities.
2026-03-31 15:25:37 +02:00
Benjamin Bouvier 950fcd289d refactor(ffi): only start with a reset diff if the timeline isn't empty 2026-03-31 11:17:34 +02:00
Bertin Philippe 2214aded9d feat(ffi): expose Client.sync() (#6359)
### Expose sync v2 API through FFI via `Client.sync()` and
`Client.sync_once()` #6348

Mobile clients can now sync using the traditional `/sync` v2 endpoint
through the FFI bindings, without requiring Sliding Sync (MSC4186)
support on the homeserver.

This PR introduces a new API (non-breaking change).

#### Implementation notes

I chose to expose only the **list of room IDs** (invited, joined, left,
knocked) in the `SyncResponse`, rather than forwarding the full per-room
event payloads. This keeps the FFI surface simple. Clients that need
room details can query them through the existing `Room` APIs after being
notified of changes via the listener.

Two entry points are provided:

- **`Client.sync(settings, listener)`** starts a continuous sync loop,
returning a `TaskHandle` for cancellation. The `SyncListener` callback
fires after each successful sync response.
- **`Client.sync_once(settings)`** performs a single sync call, useful
for initial sync or one-off use cases.

`SyncSettings` exposes `timeout_ms` and `full_state`.

Signed-off-by: Philippe Bertin <pbertin@teladochealth.com>
2026-03-31 10:40:54 +02:00
Jorge Martín e65d4c44b4 fix(ffi): Replace libloading with jvm-getter for getting a JVM
The `libloading` approach only works on Android 12+
2026-03-30 11:17:58 +02:00
Benjamin Bouvier bf9ffd7d09 refactor(event cache): make EventCache::config/config_mut sync by using a sync lock
There wasn't good reason to use an async lock, as this lock is always
super short-lived, it can be sync, which avoids complications in the
subsequent commit when calling sync init code.
2026-03-30 10:40:31 +02:00
Benjamin Bouvier 9f18d76355 feat(event cache): add a feature toggle to enable automatic back-pagination 2026-03-30 10:40:30 +02:00
Andrew Ferrazzutti 83c6a7fdf4 Fix location & name of the built shared object 2026-03-30 10:31:07 +02:00
Andrew Ferrazzutti 67fbba1e87 Tweak suggested ANDROID_NDK path
- Remove redundant trailing slash
- Clarify what the version component may be
2026-03-30 10:31:07 +02:00
Andrew Ferrazzutti 9c66221830 Fix crypto-ffi build instructions in README
- Change the example config file to not make it appear as though it
  processes environment variables
- Remove the `ar` setting from the example config file, as that setting
  is deprecated and unused (see
  https://doc.rust-lang.org/cargo/reference/config.html#targettriplear)
- Replace references of `.cargo/config` to `.cargo/config.toml`, as the
  former is deprecated
- Add example of how to set the linker through an environment variable
- Add instruction to include the NDK binary tools directory to PATH,
  because builds may fail without it
  (see https://github.com/matrix-org/matrix-rust-sdk/issues/4042)
2026-03-30 10:31:07 +02:00
Philippe Bertin f00d09597c feat(ffi): expose Room.send_state_event_raw() for sending arbitrary state events
Closes #6349

Signed-off-by: Philippe Bertin <pbertin@teladochealth.com>
2026-03-30 10:27:00 +02:00