Commit Graph

5890 Commits

Author SHA1 Message Date
Benoit Marty 0bd4dc39cd Add KDoc to matrix API room interfaces
Document BaseRoom, JoinedRoom, NotJoinedRoom, RoomAliasHelper and JoinRoom,
along with their members, and add the missing @param entries.

Fix the documentation of BaseRoom.getUpdatedIsEncrypted, which described the
room directory visibility instead of the encryption state it actually returns.

Behaviours taken from the implementations: BaseRoom.predecessorRoom swallows
errors into null, updateMembers only reads the cache on its first call,
JoinedRoom.syncUpdateFlow is an opaque change counter, notification settings
start in an Unknown state until updateRoomNotificationSettings is called, and
JoinRoom maps a Forbidden answer to Failures.UnauthorizedJoin.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-13 19:02:12 +02:00
Benoit Marty 5d6384e175 Add KDoc to MatrixClient
Document the interface itself and all of its 60+ properties and functions.

Notable behaviours taken from RustMatrixClient that callers cannot guess from
the signatures: getRoom and getJoinedRoom build a new closeable instance on
every call, createRoom/joinRoom/knockRoom wait for the membership to come back
through sync and report a null RoomInfo rather than a failure when that wait
times out, getCacheSize excludes the crypto database, and clearCache destroys
the client while keeping the session.

Also fix the stale wording and the malformed KDoc block on resolveRoomAlias,
and add the missing @param entries on the functions that already had a summary.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-13 18:49:45 +02:00
Richard van der Hoff f7d24050f8 fix unit test 2026-08-13 17:38:59 +01:00
Benoit Marty 42d3893755 Add KDoc to matrix API session and sync interfaces
Document MatrixClientProvider, SdkMetadata, HomeserverCapabilitiesProvider,
TemporaryMatrixClientFactory and SyncService, along with each of their members.

Behaviour described here was checked against the implementations
(MatrixSessionCache, RustSdkMetadata, RustHomeserverCapabilitiesProvider,
RustTemporaryMatrixClientFactory and RustSyncService), so the docs mention the
caching, idempotence and error-wrapping that callers cannot infer from the
signatures alone.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-13 18:34:30 +02:00
Richard van der Hoff 5b728d911b Add hooks to allow providing additional feature flags in EX pro
We modify the existing `FeaturesProvider` interface so that there can be more
than one of them, and the Features provided by *all* of the instances are
shown. We can then make another instance in element-android-enterprise, which
exposes enterprise-only features.
2026-08-13 15:57:57 +01:00
Jorge Martín 913b566270 Add missing tests for RustTemporaryMatrixClient 2026-08-13 12:46:46 +02:00
Jorge Martín 07e90ff704 Fix MarkdownTextInputTest using the previous onSendMessage signature 2026-08-13 12:10:19 +02:00
Benoit Marty d017a84b2b Remove useless let statement. 2026-08-13 11:47:22 +02:00
Benoit Marty 76d547e988 Merge pull request #7347 from hayaksi1/fix/2614-linkify-ipv6-urls
Linkify URLs whose host is a bracketed IPv6 address
2026-08-13 09:49:40 +02:00
Benoit Marty 8c8d232eac Make onSendMessage parameter not nullable 2026-08-13 09:21:31 +02:00
Benoit Marty fb82291f0a Merge pull request #7353 from hayaksi1/fix/860-enter-sends-message
Send a message with Enter on a physical keyboard, Shift+Enter for a new line
2026-08-13 09:19:07 +02:00
Benoit Marty 2aea4782e3 Merge pull request #7370 from hayaksi1/fix/6253-duplicate-notification-messages
Stop repeating messages that are already shown in a room notification
2026-08-13 09:13:15 +02:00
Benoit Marty 530de1f85d Merge pull request #7345 from hayaksi1/fix/6426-unifiedpush-account-name
Show the account a UnifiedPush registration belongs to in the distributor
2026-08-13 09:09:57 +02:00
Benoit Marty ae5c4161c7 Remove redundant parenthesis 2026-08-12 18:14:36 +02:00
Benoit Marty 00e9a8ab71 Fix wrong TextComposer placeholder displayed when in a thread.
We cannot only use MessageComposerMode since use can edit a message in a thread, so this is becoming handly.
2026-08-12 17:05:08 +02:00
Benoit Marty 3029218dde Merge branch 'develop' into fix/2614-linkify-ipv6-urls 2026-08-12 13:48:36 +02:00
Benoit Marty 7b0745c5f1 Fix layout issues. 2026-08-12 11:00:55 +02:00
Benoit Marty 7d99bf0d52 Merge branch 'develop' into matthew/knock-push-notifications-pr 2026-08-11 17:21:34 +02:00
Benoit Marty b2269a9f64 Merge pull request #7351 from hayaksi1/fix/4191-video-bitrate-clamp
Never re-encode a video at a higher bitrate than the source
2026-08-11 17:18:50 +02:00
Benoit Marty 6a124c59ac Merge pull request #7348 from hayaksi1/fix/3338-rtl-room-list-preview
Stop a right to left sender name from reordering a room list preview
2026-08-11 16:25:59 +02:00
Benoit Marty 433f5d1d04 Merge pull request #7350 from hayaksi1/fix/5766-redaction-unknown-target
Do not notify about a redaction whose target event is unknown
2026-08-11 16:21:28 +02:00
Benoit Marty 2e7f3f1371 Merge pull request #7346 from hayaksi1/fix/5780-voice-recorder-double-start
Ignore a second voice recording start while one is already running
2026-08-11 16:20:20 +02:00
Benoit Marty fbe2b3574f Merge pull request #7363 from hayaksi1/fix/2419-empty-waveform-seek
Let a voice message without a waveform be seeked
2026-08-11 16:00:59 +02:00
Benoit Marty 0eb73af1fd Merge pull request #7365 from hayaksi1/fix/7046-voice-message-screen-timeout
Keep playing a voice message when the screen turns off
2026-08-11 16:00:23 +02:00
Benoit Marty 12f4330724 Merge pull request #7371 from hayaksi1/fix/5428-send-to-room-subtitle
Show the alias or the direct message user's Matrix ID in the room picker
2026-08-11 15:59:29 +02:00
Benoit Marty 44caa94f3d Merge pull request #7373 from hayaksi1/fix/5794-account-data-api
Expose global account data get and set on MatrixClient
2026-08-11 14:51:57 +02:00
Benoit Marty f7508cb29a Merge pull request #7356 from hayaksi1/fix/4008-fediverse-handle-not-email
Do not linkify the server part of a fediverse handle as an email address
2026-08-11 14:48:40 +02:00
Benoit Marty ad39144a99 Merge pull request #7362 from hayaksi1/fix/4973-media-gallery-error
Keep the opened image on screen when the media gallery fails to load
2026-08-11 14:15:01 +02:00
Benoit Marty e2a1342efa Merge pull request #7360 from hayaksi1/fix/7253-skip-other-account-notifications
Do not notify about an event sent by another account on the same device
2026-08-11 14:14:36 +02:00
Benoit Marty 4ac913e7c0 Merge pull request #7366 from hayaksi1/fix/3493-media-progress-insets
Do not draw the media loading progress bar under the status bar
2026-08-11 14:05:05 +02:00
Benoit Marty 90a2a258d1 Merge branch 'develop' into fix/5794-account-data-api 2026-08-11 14:03:39 +02:00
Jorge Martín 6c7f4d3b24 Add some missing tests to improve coverage 2026-08-11 13:18:49 +02:00
Jorge Martín e371b46c68 Rename GetUrlResolver to UrlContentFetcher and TemporaryMatrixClientFactory.createTemporaryMatrixClient to just create 2026-08-11 13:18:49 +02:00
Jorge Martín dbc28df3eb Remove unnecessary call to fetchElementWellKnown when the value was up to date in the store in DefaultWellknownRetriever 2026-08-11 13:18:49 +02:00
Jorge Martín e92016c68e Improve host extraction in DefaultWellknownRetriever 2026-08-11 13:18:49 +02:00
Jorge Martín e24468c74f Fix and add tests 2026-08-11 13:18:49 +02:00
Jorge Martín e3290707d9 Remove no longer needed SessionWellknownRetriever 2026-08-11 13:18:49 +02:00
Jorge Martín 89908c2511 Add WellknownRetrieverResul.upToDateDataOrNull helper function for the enterprise module 2026-08-11 13:18:49 +02:00
Jorge Martín b9afbf0692 Add a session-scoped WellknownRetriever provider so we don't have to build it every time there 2026-08-11 13:18:49 +02:00
Jorge Martín ec0819ad07 Fixup geturlresolver matrix client 2026-08-11 13:18:49 +02:00
Jorge Martín 90d4fbe0bd Apply the GetUrlResolver pattern using unauthenticated matrix clients where possible 2026-08-11 13:18:49 +02:00
Jorge Martín 25eca29cd2 Rework WellknownRetriever so it uses the GetUrlResolver
Also, allow instantiating it using a factory: with this we can always decide where to take the config from and how to do it

Do the same for `ElementWellknownStore` so we can store and restore the values for different sources (endpoints) independently
2026-08-11 13:18:49 +02:00
Jorge Martín 3f19100427 Add TemporaryMatrixClient interface
This is an abstraction over an actual unauthenticated `Client` from the SDK that implements `GetUrlResolver`, and is supposed to be short-lived.

With this, we can use the SDK network stack to perform arbitrary GET url operations.

The `AutoCloseable` implementation makes it easier to clean up any leftover local config after using this temporary client.
2026-08-11 13:18:49 +02:00
Jorge Martín d48f5bd8b9 Have MatrixClient implement GetUrlResolver 2026-08-11 13:18:49 +02:00
Jorge Martín c8e43bdad6 Create GetUrlResolver interface
Implementations should just perform a GET request and return the raw body as bytes
2026-08-11 13:18:49 +02:00
Jorge Martín 49abaf5a5c Create EnterpriseRemoteConfigSource enum
This allows us to decide where to get the remote enterprise config from.
2026-08-11 13:18:49 +02:00
ganfra 6d6ca97899 Merge pull request #7328 from element-hq/feature/fga/user_status_last_pieces
User status last pieces
2026-08-11 11:11:12 +02:00
ganfra 0de78ed956 Merge branch 'develop' into feature/fga/user_status_last_pieces 2026-08-11 10:04:18 +02:00
bmarty 17c5d7db59 Sync Strings from Localazy 2026-08-11 09:27:29 +02:00
Jenna Vassar 749c96e409 Raise the account provider history cap to 20 entries 2026-08-10 09:42:44 -07:00