Commit Graph

16439 Commits

Author SHA1 Message Date
Jorge Martín f28b5093df Fix licenses in enterprise 2026-08-21 13:22:50 +02:00
Jorge Martín 76b6e5857f Fix lint issues 2026-08-21 13:03:21 +02:00
ElementBot d05978cc16 Update screenshots 2026-08-21 11:00:17 +00:00
Jorge Martín b29a4c06d7 Improve previews 2026-08-21 12:43:09 +02:00
Jorge Martín 3a946475f7 Fix search results never displaying an empty state
Use the pagination state to understand when a search finished with no results
2026-08-21 12:37:47 +02:00
Benoit Marty 1300112edc Merge pull request #7453 from hayaksi1/fix/4639-system-theme
Apply the system theme when switching back to it from a forced light or dark theme
2026-08-21 12:18:52 +02:00
Jorge Martín 9a2d23c8a1 Remove unnecessary GlobalSearchPresenter.Factory 2026-08-21 12:07:38 +02:00
Benoit Marty 1186ad6f6e Merge pull request #7497 from bxdxnn/misc/allow-empty-desc
Allow empty problem description if the GitHub issue number is present for rageshakes
2026-08-21 12:06:23 +02:00
Jorge Martin Espinosa 614619e306 Make PIP react to camera orientation changes in the other participant's device (#6951)
* Make PIP react to camera orientation changes in the other participant's device

Adds a `controls.onPipMediaOrientationUpdate` callback for the WebView that will trigger a new `pipParamsBuilder.setAspectRatioFromOrientation(orientation)` method

* Fix warning about `PictureInPictureParams.Builder.setAspectRatio` only being available on API 26+
2026-08-21 09:47:49 +00:00
bxdxnn 7a3074af20 Allow empty description if GitHub issue is not empty 2026-08-21 08:46:11 +00:00
Benoit Marty a59997336d Suppress Large Class warning on test. 2026-08-21 10:17:45 +02:00
ElementBot df2ea586bd Update screenshots 2026-08-21 08:13:54 +00:00
Benoit Marty 2b3aeee1c6 Merge pull request #7494 from element-hq/feature/bma/loginWording
Move strings to the login module
2026-08-21 10:06:21 +02:00
Jorge Martín 4b32816b32 Add ClientEnterpriseHook and ClientBuilderEnterpriseHook
These allow us to not expose the enterprise internal when setting up custom configs for both `ClientBuilder` and `Client`
2026-08-21 10:05:00 +02:00
Benoit Marty 392d73826a Add instruction about screenshot test, so that AI does not try to record them. 2026-08-21 09:54:48 +02:00
Benoit Marty eb37c7bd55 Update test with Claude 2026-08-21 09:54:48 +02:00
Benoit Marty 25989135a8 Add error content to Localazy 2026-08-21 09:54:47 +02:00
renovate[bot] 069763ce54 Update metro to v1.4.2 (#7493)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-21 07:00:30 +00:00
ElementBot babed8eb1f Update screenshots 2026-08-20 18:01:33 +00:00
renovate[bot] 9aeb4c4a9f Update roborazzi to v1.72.0 (#7489)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-20 19:45:02 +02:00
Benoit Marty 3f2a1d95fc Fix issues and add missing text. 2026-08-20 19:44:05 +02:00
Benoit Marty 27d3f3dabc Add preview for the new dialog 2026-08-20 19:06:07 +02:00
Benoit Marty c10e84923b Let user see an error dialog in the case a message fails to be sent.
Closes #7470
2026-08-20 19:02:02 +02:00
Benoit Marty a890db969f Merge pull request #7488 from element-hq/feature/bma/fixColdStartDeepLink
Fix cold start with a mobile deep link
2026-08-20 17:24:30 +02:00
renovate[bot] d710b23513 Update dependency io.element.android:element-call-embedded to v0.24.0 (#7474)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-20 16:25:14 +02:00
Benoit Marty 1209d7e283 Move the test constants to the top of RootFlowNodeTest
Declaring them before the test class makes them easier to find.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-20 16:02:35 +02:00
Benoit Marty a6a09a8be0 Move FakeParentNode to the testutils module
The fake was declared in RootFlowNodeTest, so other tests could not use
it. Move it to the testutils module, in the node package, and make its
documentation generic.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-20 16:01:31 +02:00
Benoit Marty 8e4b2145d5 Move FakeNodeFactoriesBindings to the testutils module
The fake was declared in RootFlowNodeTest, so other tests could not use
it. Move it to the testutils module, in a new node package.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-20 15:56:39 +02:00
Benoit Marty e85c5041a4 Move NotUsedPresenter to the testutils module
The fake presenter was declared in RootFlowNodeTest, so other tests could
not use it. Move it to the testutils module, in a new presenter package,
along with MutablePresenter.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-20 15:51:30 +02:00
Benoit Marty d71f691d75 Move the session related classes to a session package
MatrixSessionCache and SyncOrchestrator were in the di package, which
does not describe what they do. Move them, along with their tests, to a
session package, and extract FakeSyncOrchestratorFactory from
RootFlowNodeTest so that other tests can use it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-20 15:41:30 +02:00
Benoit Marty be124610f0 Reuse the existing FakeOAuthActionFlow in RootFlowNodeTest
RootFlowNodeTest was declaring its own no-op fake, while the oauth test
module already provides one. Use it, and move it out of the customtab
package, since it is not specific to the custom tabs.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-20 15:28:22 +02:00
Benoit Marty 5bdaea3f6e Move FakeAccountProviderAccessControl to the login test module
The fake was declared in RootFlowNodeTest, so other tests could not use
it. Move it next to the API it fakes, in a package mirroring the one of
the API, and let the result be provided by the caller, so that the case
where the account provider is not allowed can be tested too.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-20 15:20:57 +02:00
Benoit Marty 67500edafa Move FakeCacheService to the preferences test module
The fake was declared in RootFlowNodeTest, so other tests could not use
it. Move it next to the API it fakes, and let the cleared cache event
flow be provided by the caller, so that a test can emit events.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-20 15:17:18 +02:00
Benoit Marty f0e575e25e Move the fake entry points of RootFlowNodeTest to the test modules
The fakes were declared in RootFlowNodeTest, so other tests could not use
them. Move each of them next to the API it fakes, following the existing
convention of a createNodeResult lambda defaulting to lambdaError():

- FakeLoginEntryPoint in features/login/test
- FakeBugReportEntryPoint in features/rageshake/test
- FakeSignedOutEntryPoint in features/signedout/test (new module)
- FakeAccountSelectEntryPoint in libraries/accountselect/test (new module)

The login and rageshake test modules did not have Appyx on their
classpath, so add the architecture module to their dependencies.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-20 15:11:00 +02:00
Benoit Marty b3f53da7d9 Add exception for Konsist test. 2026-08-20 14:55:03 +02:00
Benoit Marty 8d4c7c868e Cleanup test 2026-08-20 14:21:53 +02:00
ElementBot f854fbd70a Update screenshots 2026-08-20 14:18:15 +02:00
Jorge Martín 8bdce7cfd6 Add tests 2026-08-20 14:18:06 +02:00
Benoit Marty d471241da8 Fix account provisioning deep link being ignored when it cold starts the app
At cold start two writers set the root nav target of RootFlowNode: the
intent path (handleIntent -> onLoginLink -> NotLoggedInFlow(params)) and
the first nav state emission (NotLoggedIn -> NotLoggedInFlow(null)).
safeRoot() only dedupes on strict equality, so the two targets do not
cancel each other out and the last writer wins, silently dropping the
login params.

Keep the params coming from the intent as pending state on the node, and
let the nav state observer take them into account, so that the root is
derived from both the logged in state and the pending login params, and
both orderings converge on the same target. The pending params are
cleared when leaving the not logged in flow, so that a later sign out
does not resurrect a stale provisioning link.

Also log when switching to the not logged in flow, since the drop was
silent. The login hint can contain an email address, so only its
presence is logged.

Closes #7482

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-20 13:58:03 +02:00
Jorge Martín 3ca5081f33 Integrate the new screen with the existing home screen, display it only when the search feature flag is enabled 2026-08-20 13:56:29 +02:00
Jorge Martín be2909bca2 Add a global search screen, which reads from both the RoomListSearchDataSource for the rooms search and MessageSearchService for the message search
Note the designs and texts of this screen are temporary.
2026-08-20 13:55:45 +02:00
Jorge Martín 9d36c8c4ed Export missing MessageSearchService to SessionScope 2026-08-20 13:53:49 +02:00
hayaksi1 c239190994 Merge develop into the wildcard mime type branch
Develop gained resolveImageMimeType, which reads the image header so a
share that declares a broad type is encoded as the format it really is.
Resolving the wildcard first would hand that helper a concrete image/jpeg
and make it return early, so a transparent PNG shared as image/* would be
flattened and an animated GIF would be recompressed. The header is now
read from the type the sender declared and the default subtype is applied
to whatever comes back, so the sniffing still runs and an undecodable file
no longer keeps a wildcard.

A non-image shared as image/* is therefore sent as image/jpeg rather than
image/*, which is the whole point of this branch, so the test covering
that case now expects the default subtype.
2026-08-20 14:26:57 +03:00
Benoit Marty a078851b78 Add small script to force stop an application. 2026-08-20 13:23:21 +02:00
Jorge Martin Espinosa f2883ef9df Fix flaky test in DefaultVoiceMessageComposerPresenterTest (#7487) 2026-08-20 11:49:59 +02:00
renovate[bot] ca86711ecb Update dependency io.sentry:sentry-android to v8.53.0 (#7481)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-20 11:49:21 +02:00
renovate[bot] e98d37cbcb Update dependency androidx.webkit:webkit to v1.17.0 (#7484)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-20 11:49:07 +02:00
renovate[bot] 85226228e9 Update dependency org.maplibre.gl:android-sdk to v13.5.0 (#7486)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-20 11:48:50 +02:00
ElementBot 4fa9576029 Update Gradle Wrapper from 9.7.0 to 9.7.1 (#7485)
Signed-off-by: gradle-update-robot <gradle-update-robot@regolo.cc>
Co-authored-by: gradle-update-robot <gradle-update-robot@regolo.cc>
2026-08-20 11:44:15 +02:00
hayyaksi 2525019ca1 Show the right image when opening one that has not finished sending (#7359)
* Show the right image when opening one that has not finished sending

* Reuse the timeline media gallery for events that have no event id
2026-08-20 11:16:13 +02:00