Skip to content

Commit 0fab33a

Browse files
committed
Merge branch 'release/25.05.4' into main
2 parents c78d0fc + 2000862 commit 0fab33a

File tree

260 files changed

+2796
-2457
lines changed

Some content is hidden

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

260 files changed

+2796
-2457
lines changed

.github/renovate.json

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
11
{
2-
"$schema" : "https://docs.renovatebot.com/renovate-schema.json",
3-
"extends" : [
4-
"config:base"
2+
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
3+
"extends": [
4+
"config:recommended"
55
],
6-
"labels" : [
6+
"labels": [
77
"PR-Dependencies"
88
],
9-
"ignoreDeps" : [
9+
"ignoreDeps": [
1010
"string:app_name",
1111
"gradle"
1212
],
13-
"packageRules" : [
13+
"packageRules": [
1414
{
15-
"matchPackagePatterns" : [
16-
"^org.jetbrains.kotlin",
17-
"^com.google.devtools.ksp",
18-
"^androidx.compose.compiler"
19-
],
20-
"groupName" : "kotlin"
15+
"groupName": "kotlin",
16+
"matchPackageNames": [
17+
"/^org.jetbrains.kotlin/",
18+
"/^com.google.devtools.ksp/",
19+
"/^androidx.compose.compiler/"
20+
]
2121
},
2222
{
23-
"matchPackagePatterns" : [
24-
"^org.maplibre"
25-
],
26-
"versioning" : "semver"
23+
"versioning": "semver",
24+
"matchPackageNames": [
25+
"/^org.maplibre/"
26+
]
2727
}
2828
]
2929
}

.github/workflows/maestro-local.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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/tests/account/login.yaml

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,24 @@ 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+
## Working when running Maestro locally, but not on the CI yet.
1018
- tapOn:
11-
id: "login-email_username"
19+
id: "form-1"
1220
- inputText: ${MAESTRO_USERNAME}
1321
- pressKey: Enter
1422
- 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
23+
id: "form-3"
2324
- inputText: ${MAESTRO_PASSWORD}
2425
- pressKey: Enter
2526
- tapOn: "Continue"
27+
## Back to native world
2628
- runFlow: ../assertions/assertSessionVerificationDisplayed.yaml
2729
- runFlow: ./verifySession.yaml
2830
- 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: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,27 @@
1+
Changes in Element X v25.05.3
2+
=============================
3+
4+
Version 25.05.2 was skipped.
5+
6+
## What's Changed
7+
### 🐛 Bugfixes
8+
* Disable Continue button when the login field is cleared. by @bmarty in https://github.com/element-hq/element-x-android/pull/4699
9+
* Revert "fix(deps): update dependency io.element.android:element-call-embedded to v0.10.0", which caused an issue with to-device events in the latest version by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4706
10+
### 🗣 Translations
11+
* Sync Strings by @ElementBot in https://github.com/element-hq/element-x-android/pull/4703
12+
### 🧱 Build
13+
* Update Gradle Wrapper from 8.13 to 8.14 by @ElementBot in https://github.com/element-hq/element-x-android/pull/4645
14+
### Dependency upgrades
15+
* fix(deps): update datastore to v1.1.6 by @renovate in https://github.com/element-hq/element-x-android/pull/4630
16+
* fix(deps): update lifecycle to v2.9.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4693
17+
* fix(deps): update dependency androidx.sqlite:sqlite-ktx to v2.5.1 by @renovate in https://github.com/element-hq/element-x-android/pull/4692
18+
### Others
19+
* Update "Learn more" link by @bmarty in https://github.com/element-hq/element-x-android/pull/4686
20+
* Keep call notification ringing while a call is present in the room by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4634
21+
22+
23+
**Full Changelog**: https://github.com/element-hq/element-x-android/compare/v25.05.1...v25.05.3
24+
125
Changes in Element X v25.05.1
226
=============================
327

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

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/src/main/kotlin/io/element/android/appnav/NotLoggedInFlowNode.kt

Lines changed: 5 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,10 @@ import com.bumble.appyx.core.node.Node
2020
import com.bumble.appyx.core.plugin.Plugin
2121
import com.bumble.appyx.core.plugin.plugins
2222
import com.bumble.appyx.navmodel.backstack.BackStack
23-
import com.bumble.appyx.navmodel.backstack.operation.push
2423
import dagger.assisted.Assisted
2524
import dagger.assisted.AssistedInject
2625
import io.element.android.anvilannotations.ContributesNode
2726
import io.element.android.features.login.api.LoginEntryPoint
28-
import io.element.android.features.login.api.LoginFlowType
29-
import io.element.android.features.onboarding.api.OnBoardingEntryPoint
3027
import io.element.android.libraries.architecture.BackstackView
3128
import io.element.android.libraries.architecture.BaseFlowNode
3229
import io.element.android.libraries.designsystem.utils.ForceOrientationInMobileDevices
@@ -39,12 +36,11 @@ import kotlinx.parcelize.Parcelize
3936
class NotLoggedInFlowNode @AssistedInject constructor(
4037
@Assisted buildContext: BuildContext,
4138
@Assisted plugins: List<Plugin>,
42-
private val onBoardingEntryPoint: OnBoardingEntryPoint,
4339
private val loginEntryPoint: LoginEntryPoint,
4440
private val notLoggedInImageLoaderFactory: NotLoggedInImageLoaderFactory,
4541
) : BaseFlowNode<NotLoggedInFlowNode.NavTarget>(
4642
backstack = BackStack(
47-
initialElement = NavTarget.OnBoarding,
43+
initialElement = NavTarget.Root,
4844
savedStateMap = buildContext.savedStateMap
4945
),
5046
buildContext = buildContext,
@@ -65,42 +61,22 @@ class NotLoggedInFlowNode @AssistedInject constructor(
6561

6662
sealed interface NavTarget : Parcelable {
6763
@Parcelize
68-
data object OnBoarding : NavTarget
69-
70-
@Parcelize
71-
data class LoginFlow(val type: LoginFlowType) : NavTarget
64+
data object Root : NavTarget
7265
}
7366

7467
override fun resolve(navTarget: NavTarget, buildContext: BuildContext): Node {
7568
return when (navTarget) {
76-
NavTarget.OnBoarding -> {
77-
val callback = object : OnBoardingEntryPoint.Callback {
78-
override fun onSignUp() {
79-
backstack.push(NavTarget.LoginFlow(type = LoginFlowType.SIGN_UP))
80-
}
81-
82-
override fun onSignIn() {
83-
backstack.push(NavTarget.LoginFlow(type = LoginFlowType.SIGN_IN_MANUAL))
84-
}
85-
86-
override fun onSignInWithQrCode() {
87-
backstack.push(NavTarget.LoginFlow(type = LoginFlowType.SIGN_IN_QR_CODE))
88-
}
89-
69+
NavTarget.Root -> {
70+
val callback = object : LoginEntryPoint.Callback {
9071
override fun onReportProblem() {
9172
plugins<Callback>().forEach { it.onOpenBugReport() }
9273
}
9374
}
94-
onBoardingEntryPoint
75+
loginEntryPoint
9576
.nodeBuilder(this, buildContext)
9677
.callback(callback)
9778
.build()
9879
}
99-
is NavTarget.LoginFlow -> {
100-
loginEntryPoint.nodeBuilder(this, buildContext)
101-
.params(LoginEntryPoint.Params(flowType = navTarget.type))
102-
.build()
103-
}
10480
}
10581
}
10682

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
33
<string name="banner_migrate_to_native_sliding_sync_action">"Abmelden und aktualisieren"</string>
4-
<string name="banner_migrate_to_native_sliding_sync_app_force_logout_title">"%1$sunterstützt das alte Protokoll nicht mehr. Bitte melden Sie sich ab und wieder an, um die App weiter nutzen zu können."</string>
4+
<string name="banner_migrate_to_native_sliding_sync_app_force_logout_title">"%1$s unterstützt das alte Protokoll nicht mehr. Bitte melden Sie sich ab und wieder an, um die App weiter nutzen zu können."</string>
55
<string name="banner_migrate_to_native_sliding_sync_force_logout_title">"Dein Homeserver unterstützt das alte Protokoll nicht mehr. Bitte logge dich aus und melde dich wieder an, um die App weiter zu nutzen."</string>
66
</resources>

enterprise

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Main changes in this version: bug fixes and improvements.
2+
Full changelog: https://github.com/element-hq/element-x-android/releases

features/call/impl/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ dependencies {
6767
implementation(projects.features.enterprise.api)
6868
implementation(projects.libraries.architecture)
6969
implementation(projects.libraries.androidutils)
70+
implementation(projects.libraries.audio.api)
7071
implementation(projects.libraries.core)
7172
implementation(projects.libraries.designsystem)
7273
implementation(projects.libraries.featureflag.api)

0 commit comments

Comments
 (0)