Skip to content

Commit 2e1eb90

Browse files
committed
Merge branch 'develop' into feature/fga/user_moderation_bottomsheet
2 parents 1ac5674 + 0e5fc8f commit 2e1eb90

File tree

250 files changed

+3337
-2740
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

250 files changed

+3337
-2740
lines changed

.github/workflows/maestro-local.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ env:
1111
CI_GRADLE_ARG_PROPERTIES: --stacktrace --no-daemon -Dsonar.gradle.skipCompile=true --no-configuration-cache
1212
ARCH: x86_64
1313
DEVICE: pixel_7_pro
14-
API_LEVEL: 35
14+
API_LEVEL: 33
1515
TARGET: google_apis
1616

1717
jobs:
@@ -56,7 +56,7 @@ jobs:
5656
maestro-cloud:
5757
name: Maestro test suite
5858
runs-on: ubuntu-latest
59-
needs: [build-apk]
59+
needs: [ build-apk ]
6060
# Allow one per PR.
6161
concurrency:
6262
group: ${{ format('maestro-{0}', github.ref) }}
@@ -80,6 +80,7 @@ jobs:
8080
- name: Install maestro
8181
run: curl -fsSL "https://get.maestro.mobile.dev" | bash
8282
- name: Run Maestro tests in emulator
83+
id: maestro_test
8384
uses: reactivecircus/android-emulator-runner@v2
8485
continue-on-error: true
8586
env:
@@ -109,3 +110,8 @@ jobs:
109110
retention-days: 5
110111
overwrite: true
111112
if-no-files-found: error
113+
- name: Fail the workflow in case of error in test
114+
if: steps.maestro_test.outcome != 'success'
115+
run: |
116+
echo "Maestro tests failed. Please check the logs."
117+
exit 1

.github/workflows/post-release.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Post-release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
jobs:
9+
post-release:
10+
runs-on: ubuntu-latest
11+
# Skip in forks
12+
if: github.repository == 'element-hq/element-x-android'
13+
14+
steps:
15+
- name: Trigger pipeline
16+
uses: actions/github-script@v7
17+
with:
18+
github-token: ${{ secrets.ENTERPRISE_ACTIONS_TOKEN }}
19+
script: |
20+
const tag = context.ref.replace('refs/tags/', '');
21+
const inputs = { git_tag: tag };
22+
await github.rest.actions.createWorkflowDispatch({
23+
owner: 'element-hq',
24+
repo: 'element-enterprise',
25+
workflow_id: 'pipeline-android.yml',
26+
ref: 'main',
27+
inputs: inputs
28+
});

.github/workflows/tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ jobs:
8282
8383
# https://github.com/codecov/codecov-action
8484
- name: ☂️ Upload coverage reports to codecov
85-
uses: codecov/codecov-action@ad3126e916f78f00edff4ed0317cf185271ccc2d # v5.4.2
85+
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
8686
with:
8787
fail_ci_if_error: true
8888
token: ${{ secrets.CODECOV_TOKEN }}

.idea/kotlinc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.maestro/allTests.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
appId: ${MAESTRO_APP_ID}
2+
androidWebViewHierarchy: devtools
23
---
34
## Check that all env variables required in the whole test suite are declared (to fail faster)
45
- runScript: ./scripts/checkEnv.js

.maestro/tests/account/login.yaml

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,39 @@ appId: ${MAESTRO_APP_ID}
77
- runFlow: ../assertions/assertLoginDisplayed.yaml
88
- tapOn:
99
id: "login-continue"
10+
## MAS page
11+
## Conditional workflow to pass the Chrome first launch welcome page.
12+
- runFlow:
13+
when:
14+
visible: 'Use without an account'
15+
commands:
16+
- tapOn: "Use without an account"
17+
## For older chrome versions
18+
- runFlow:
19+
when:
20+
visible: 'Accept & continue'
21+
commands:
22+
- tapOn: "Accept & continue"
23+
- runFlow:
24+
when:
25+
visible: 'No thanks'
26+
commands:
27+
- tapOn: "No thanks"
28+
## Working when running Maestro locally, but not on the CI yet.
29+
- extendedWaitUntil:
30+
visible:
31+
id: "form-1"
32+
timeout: 10000
1033
- tapOn:
11-
id: "login-email_username"
34+
id: "form-1"
1235
- inputText: ${MAESTRO_USERNAME}
1336
- pressKey: Enter
1437
- tapOn:
15-
id: "login-password"
16-
- inputText: "wrong-password"
17-
- pressKey: Enter
18-
- tapOn: "Continue"
19-
- tapOn: "OK"
20-
- tapOn:
21-
id: "login-password"
22-
- eraseText: 20
38+
id: "form-3"
2339
- inputText: ${MAESTRO_PASSWORD}
2440
- pressKey: Enter
2541
- tapOn: "Continue"
42+
## Back to native world
2643
- runFlow: ../assertions/assertSessionVerificationDisplayed.yaml
2744
- runFlow: ./verifySession.yaml
2845
- runFlow: ../assertions/assertAnalyticsDisplayed.yaml

.maestro/tests/account/verifySession.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ appId: ${MAESTRO_APP_ID}
88
- hideKeyboard
99
- tapOn: "Continue"
1010
- extendedWaitUntil:
11-
visible: "Device verified"
11+
visible: "Verification complete"
1212
timeout: 30000
1313
- tapOn: "Continue"

.maestro/tests/roomList/createAndDeleteDM.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ appId: ${MAESTRO_APP_ID}
77
- tapOn:
88
text: ${MAESTRO_INVITEE1_MXID}
99
index: 1
10+
- tapOn: "Send invite"
1011
- takeScreenshot: build/maestro/330-createAndDeleteDM
1112
- tapOn: "maestroelement2"
1213
- scroll
13-
- tapOn: "Leave conversation"
14+
- tapOn: "Leave room"
1415
- tapOn: "Leave"
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
appId: ${MAESTRO_APP_ID}
2+
---
3+
- tapOn: "Start a call"
4+
- takeScreenshot: build/maestro/700-Call
5+
- extendedWaitUntil:
6+
visible: "maestroelement"
7+
timeout: 10000
8+
- takeScreenshot: build/maestro/710-Call
9+
# Hangup
10+
- tapOn: "End call"
11+
- extendedWaitUntil:
12+
visible: "MyRoom"
13+
timeout: 10000

.maestro/tests/roomList/timeline/timeline.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ appId: ${MAESTRO_APP_ID}
66
- runFlow: messages/text.yaml
77
- runFlow: messages/location.yaml
88
- runFlow: messages/poll.yaml
9+
- runFlow: call/call.yaml
910
- back
1011
- runFlow: ../../assertions/assertHomeDisplayed.yaml

CHANGES.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,50 @@
1+
<!-- Release notes generated using configuration in .github/release.yml at v25.05.4 -->
2+
3+
Changes in Element X v25.05.4
4+
=============================
5+
6+
Rust SDK: https://github.com/matrix-org/matrix-rust-sdk/releases/tag/matrix-sdk-ffi%2F20250521
7+
8+
## What's Changed
9+
### 🙌 Improvements
10+
* Change (report room) : check if server supports the report room api by @ganfra in https://github.com/element-hq/element-x-android/pull/4718
11+
### 🐛 Bugfixes
12+
* Improve audio focus management by @bmarty in https://github.com/element-hq/element-x-android/pull/4707
13+
* When transcoding a video fails, send it as a file by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4257
14+
* Disable mutliple click (parallel or serial) on a room by @bmarty in https://github.com/element-hq/element-x-android/pull/4683
15+
* Fix generic mime type used when externally sharing several files by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4715
16+
* Fix issues on JoinedRoom / BaseRoom by @bmarty in https://github.com/element-hq/element-x-android/pull/4724
17+
* Use the right live timeline instance in `RustRoomFactory` by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4745
18+
### 🗣 Translations
19+
* Sync Strings by @ElementBot in https://github.com/element-hq/element-x-android/pull/4739
20+
### 🧱 Build
21+
* Ensure the CI is marked as failed when Maestro test is failing by @bmarty in https://github.com/element-hq/element-x-android/pull/4700
22+
* Trigger pipeline build when a release tag is pushed by @bmarty in https://github.com/element-hq/element-x-android/pull/4741
23+
* Fix compilation issues. by @bmarty in https://github.com/element-hq/element-x-android/pull/4750
24+
### 📄 Documentation
25+
* README.md: fix broken link by @richvdh in https://github.com/element-hq/element-x-android/pull/4728
26+
### Dependency upgrades
27+
* chore(config): migrate renovate config by @renovate in https://github.com/element-hq/element-x-android/pull/4688
28+
* fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.5.13 by @renovate in https://github.com/element-hq/element-x-android/pull/4716
29+
* fix(deps): update dependency io.sentry:sentry-android to v8.12.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4717
30+
* chore(deps): update plugin sonarqube to v6.2.0.5505 by @renovate in https://github.com/element-hq/element-x-android/pull/4725
31+
* fix(deps): update dependency com.posthog:posthog-android to v3.15.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4723
32+
* fix(deps): update dependency com.squareup.retrofit2:retrofit-bom to v2.12.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4727
33+
* chore(deps): update codecov/codecov-action action to v5.4.3 by @renovate in https://github.com/element-hq/element-x-android/pull/4730
34+
* fix(deps): update kotlin by @renovate in https://github.com/element-hq/element-x-android/pull/4713
35+
* fix(deps): update dependency com.squareup.retrofit2:retrofit-bom to v3 by @renovate in https://github.com/element-hq/element-x-android/pull/4729
36+
* fix(deps): update kotlinpoet to v2.2.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4732
37+
* fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.5.21 by @renovate in https://github.com/element-hq/element-x-android/pull/4759
38+
### Others
39+
* Remove event cache feature flag by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4719
40+
* Check homeserver when login using qr code by @bmarty in https://github.com/element-hq/element-x-android/pull/4708
41+
* Merge on boarding module to login module by @bmarty in https://github.com/element-hq/element-x-android/pull/4746
42+
* Allow configuration to provide multiple account providers. by @bmarty in https://github.com/element-hq/element-x-android/pull/4742
43+
* Reduce API of JoinedRoom, caller must use the Timeline API from liveTimeline instead by @bmarty in https://github.com/element-hq/element-x-android/pull/4731
44+
45+
46+
**Full Changelog**: https://github.com/element-hq/element-x-android/compare/v25.05.3...v25.05.4
47+
148
Changes in Element X v25.05.3
249
=============================
350

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ Just clone the project and open it in Android Studio. Make sure to select the
8787
`app` configuration when building (as we also have sample apps in the project).
8888

8989
To build against a local copy of the Rust SDK, see the [Developer
90-
onboarding](docs/_developer_onboarding.md#build-the-sdk-locally) instructions.
90+
onboarding](docs/_developer_onboarding.md#building-the-sdk-locally) instructions.
9191

9292
## Support
9393

app/src/main/AndroidManifest.xml

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,17 @@
3434
android:value='androidx.startup' />
3535
</provider>
3636

37+
<!--
38+
Using launchMode singleTask to avoid multiple instances of the Activity
39+
when the app is already open. This is important for incoming share (see
40+
https://github.com/element-hq/element-x-android/issues/4074) and for opening
41+
the application from a mobile.element.io link.
42+
-->
3743
<activity
3844
android:name=".MainActivity"
3945
android:configChanges="orientation|screenSize|screenLayout|keyboardHidden|uiMode"
4046
android:exported="true"
41-
android:launchMode="singleTop"
47+
android:launchMode="singleTask"
4248
android:theme="@style/Theme.ElementX.Splash"
4349
android:windowSoftInputMode="adjustResize">
4450
<intent-filter>
@@ -54,6 +60,9 @@
5460
android:host="open"
5561
android:scheme="elementx" />
5662
</intent-filter>
63+
<!--
64+
Oidc redirection
65+
-->
5766
<intent-filter>
5867
<action android:name="android.intent.action.VIEW" />
5968

@@ -80,6 +89,21 @@
8089
<!-- Matching asset file: https://staging.element.io/.well-known/assetlinks.json -->
8190
<data android:host="staging.element.io" />
8291
</intent-filter>
92+
<!--
93+
Element mobile links
94+
Example: https://mobile.element.io/element?account_provider=example.org&login_hint=mxid:@alice:example.org
95+
-->
96+
<intent-filter android:autoVerify="true">
97+
<action android:name="android.intent.action.VIEW" />
98+
99+
<category android:name="android.intent.category.DEFAULT" />
100+
<category android:name="android.intent.category.BROWSABLE" />
101+
102+
<data android:scheme="https" />
103+
<!-- Matching asset file: https://mobile.element.io/.well-known/assetlinks.json -->
104+
<data android:host="mobile.element.io" />
105+
<data android:path="/element" />
106+
</intent-filter>
83107
<!--
84108
matrix.to links
85109
Note: On Android 12 and higher clicking a web link (that is not an Android App Link) always shows content in a web browser

appconfig/src/main/kotlin/io/element/android/appconfig/MatrixConfiguration.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,4 @@ package io.element.android.appconfig
1010
object MatrixConfiguration {
1111
const val MATRIX_TO_PERMALINK_BASE_URL: String = "https://matrix.to/#/"
1212
val clientPermalinkBaseUrl: String? = null
13-
14-
// TODO remove this when report is fixed
15-
const val CAN_REPORT_ROOM = false
1613
}

appnav/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ dependencies {
5353
testImplementation(libs.molecule.runtime)
5454
testImplementation(libs.test.truth)
5555
testImplementation(libs.test.turbine)
56+
testImplementation(projects.features.login.test)
5657
testImplementation(projects.libraries.matrix.test)
5758
testImplementation(projects.libraries.oidc.impl)
5859
testImplementation(projects.libraries.preferences.test)

0 commit comments

Comments
 (0)