From b4de7b101f8151c4c27467b43334a1277f9faf74 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 21 May 2025 17:39:58 +0200 Subject: [PATCH 1/9] fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.5.21 (#4759) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.5.21 * Fix API breaks --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Jorge MartΓ­n --- gradle/libs.versions.toml | 2 +- .../matrix/impl/widget/DefaultCallWidgetSettingsProvider.kt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0aa2f926c7..e55a7baf07 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -169,7 +169,7 @@ jsoup = "org.jsoup:jsoup:1.20.1" appyx_core = { module = "com.bumble.appyx:core", version.ref = "appyx" } molecule-runtime = "app.cash.molecule:molecule-runtime:2.1.0" timber = "com.jakewharton.timber:timber:5.0.1" -matrix_sdk = "org.matrix.rustcomponents:sdk-android:25.5.13" +matrix_sdk = "org.matrix.rustcomponents:sdk-android:25.5.21" matrix_richtexteditor = { module = "io.element.android:wysiwyg", version.ref = "wysiwyg" } matrix_richtexteditor_compose = { module = "io.element.android:wysiwyg-compose", version.ref = "wysiwyg" } sqldelight-driver-android = { module = "app.cash.sqldelight:android-driver", version.ref = "sqldelight" } diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/widget/DefaultCallWidgetSettingsProvider.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/widget/DefaultCallWidgetSettingsProvider.kt index 7f179ad2f7..77152776aa 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/widget/DefaultCallWidgetSettingsProvider.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/widget/DefaultCallWidgetSettingsProvider.kt @@ -49,6 +49,7 @@ class DefaultCallWidgetSettingsProvider @Inject constructor( sentryEnvironment = if (buildMeta.buildType == BuildType.RELEASE) "RELEASE" else "DEBUG", parentUrl = null, hideHeader = true, + controlledMediaDevices = false, ) val rustWidgetSettings = newVirtualElementCallWidget(options) return MatrixWidgetSettings.fromRustWidgetSettings(rustWidgetSettings) From bb87e7a7b826fd656e6b88708ed945b2ba38f530 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 21 May 2025 17:43:25 +0200 Subject: [PATCH 2/9] Setting version for the release 25.05.4 --- plugins/src/main/kotlin/Versions.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/src/main/kotlin/Versions.kt b/plugins/src/main/kotlin/Versions.kt index e9b7975810..9c79b70426 100644 --- a/plugins/src/main/kotlin/Versions.kt +++ b/plugins/src/main/kotlin/Versions.kt @@ -32,7 +32,7 @@ private const val versionYear = 25 private const val versionMonth = 5 // Note: must be in [0,99] -private const val versionReleaseNumber = 3 +private const val versionReleaseNumber = 4 object Versions { const val VERSION_CODE = (2000 + versionYear) * 10_000 + versionMonth * 100 + versionReleaseNumber From 20008625c6cc146337a1352eb9257e09f636fb09 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 21 May 2025 17:44:55 +0200 Subject: [PATCH 3/9] Adding fastlane file for version 25.05.4 --- fastlane/metadata/android/en-US/changelogs/202505040.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 fastlane/metadata/android/en-US/changelogs/202505040.txt diff --git a/fastlane/metadata/android/en-US/changelogs/202505040.txt b/fastlane/metadata/android/en-US/changelogs/202505040.txt new file mode 100644 index 0000000000..8955ade680 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/202505040.txt @@ -0,0 +1,2 @@ +Main changes in this version: bug fixes and improvements. +Full changelog: https://github.com/element-hq/element-x-android/releases From 538a8441cdd96cab064d2da5e9e7b79106fe1f90 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 21 May 2025 18:18:42 +0200 Subject: [PATCH 4/9] Changelog for version 25.05.4 --- CHANGES.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 04a7fa528e..b06cdd6603 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,50 @@ + + +Changes in Element X v25.05.4 +============================= + +Rust SDK: https://github.com/matrix-org/matrix-rust-sdk/releases/tag/matrix-sdk-ffi%2F20250521 + +## What's Changed +### πŸ™Œ Improvements +* Change (report room) : check if server supports the report room api by @ganfra in https://github.com/element-hq/element-x-android/pull/4718 +### πŸ› Bugfixes +* Improve audio focus management by @bmarty in https://github.com/element-hq/element-x-android/pull/4707 +* When transcoding a video fails, send it as a file by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4257 +* Disable mutliple click (parallel or serial) on a room by @bmarty in https://github.com/element-hq/element-x-android/pull/4683 +* Fix generic mime type used when externally sharing several files by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4715 +* Fix issues on JoinedRoom / BaseRoom by @bmarty in https://github.com/element-hq/element-x-android/pull/4724 +* Use the right live timeline instance in `RustRoomFactory` by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4745 +### πŸ—£ Translations +* Sync Strings by @ElementBot in https://github.com/element-hq/element-x-android/pull/4739 +### 🧱 Build +* 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 +* Trigger pipeline build when a release tag is pushed by @bmarty in https://github.com/element-hq/element-x-android/pull/4741 +* Fix compilation issues. by @bmarty in https://github.com/element-hq/element-x-android/pull/4750 +### πŸ“„ Documentation +* README.md: fix broken link by @richvdh in https://github.com/element-hq/element-x-android/pull/4728 +### Dependency upgrades +* chore(config): migrate renovate config by @renovate in https://github.com/element-hq/element-x-android/pull/4688 +* 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 +* 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 +* chore(deps): update plugin sonarqube to v6.2.0.5505 by @renovate in https://github.com/element-hq/element-x-android/pull/4725 +* 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 +* 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 +* chore(deps): update codecov/codecov-action action to v5.4.3 by @renovate in https://github.com/element-hq/element-x-android/pull/4730 +* fix(deps): update kotlin by @renovate in https://github.com/element-hq/element-x-android/pull/4713 +* fix(deps): update dependency com.squareup.retrofit2:retrofit-bom to v3 by @renovate in https://github.com/element-hq/element-x-android/pull/4729 +* fix(deps): update kotlinpoet to v2.2.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4732 +* 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 +### Others +* Remove event cache feature flag by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4719 +* Check homeserver when login using qr code by @bmarty in https://github.com/element-hq/element-x-android/pull/4708 +* Merge on boarding module to login module by @bmarty in https://github.com/element-hq/element-x-android/pull/4746 +* Allow configuration to provide multiple account providers. by @bmarty in https://github.com/element-hq/element-x-android/pull/4742 +* 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 + + +**Full Changelog**: https://github.com/element-hq/element-x-android/compare/v25.05.3...v25.05.4 + Changes in Element X v25.05.3 ============================= From 60c41551084698f6947ba33d8ace727dcc0e2dcd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 21 May 2025 18:19:24 +0200 Subject: [PATCH 5/9] fix(deps): update datastore to v1.1.7 (#4754) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e55a7baf07..fbd8ac9e68 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -11,7 +11,7 @@ firebaseAppDistribution = "5.1.1" # AndroidX core = "1.16.0" -datastore = "1.1.6" +datastore = "1.1.7" constraintlayout = "2.2.1" constraintlayout_compose = "1.1.1" lifecycle = "2.9.0" From 5a2aeac6b6e87807c9cd91585f6fe36ed5255207 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 21 May 2025 18:19:42 +0200 Subject: [PATCH 6/9] Add support for login link (#4752) * Add support for login link https://mobile.element.io/element?account_provider=example.org&login_hint=mxid:@alice:example.org * Update screenshots * Reduce code duplication * Add test on OnBoardingPresenter * Fix tool * Ignore login parameter if user is not allowed to connect to the provided server. * Improve tests. * Cleanup * Revert change on Project.xml. * Add documentation * Improve LoginHelper * Rename LoginFlow to LoginMode Move LoginFlow to package io.element.android.features.login.impl.login Rename some implementation of LoginMode Rename LoginFlowView to LoginModeView * Change launchMode of MainActivity from `singleTop` to `singleTask` Using launchMode singleTask to avoid multiple instances of the Activity when the app is already open. This is important for incoming share and for opening the application from a mobile.element.io link. Closes #4074 --------- Co-authored-by: ElementBot --- app/src/main/AndroidManifest.xml | 26 ++- appnav/build.gradle.kts | 1 + .../android/appnav/NotLoggedInFlowNode.kt | 15 ++ .../io/element/android/appnav/RootFlowNode.kt | 43 ++++- .../android/appnav/intent/IntentResolver.kt | 15 +- .../appnav/intent/IntentResolverTest.kt | 29 +++- .../features/login/api/LoginEntryPoint.kt | 6 + .../features/login/api/LoginIntentResolver.kt | 12 ++ .../android/features/login/api/LoginParams.kt | 21 +++ features/login/impl/build.gradle.kts | 1 + .../login/impl/DefaultLoginEntryPoint.kt | 8 + .../login/impl/DefaultLoginIntentResolver.kt | 30 ++++ .../features/login/impl/LoginFlowNode.kt | 52 ++++-- .../features/login/impl/login/LoginHelper.kt | 119 ++++++++++++++ .../features/login/impl/login/LoginMode.kt | 16 ++ .../login/impl/login/LoginModeView.kt | 87 ++++++++++ .../impl/onboarding/OnBoardingPresenter.kt | 44 ------ .../login/impl/onboarding/OnBoardingState.kt | 15 -- .../ConfirmAccountProviderPresenter.kt | 104 ++---------- .../ConfirmAccountProviderState.kt | 12 +- .../ConfirmAccountProviderStateProvider.kt | 7 +- .../ConfirmAccountProviderView.kt | 61 ++----- .../screens/onboarding/OnBoardingEvents.kt | 16 ++ .../onboarding/OnBoardingNode.kt | 40 ++++- .../screens/onboarding/OnBoardingPresenter.kt | 77 +++++++++ .../screens/onboarding/OnBoardingState.kt | 24 +++ .../onboarding/OnBoardingStateProvider.kt | 11 +- .../onboarding/OnBoardingView.kt | 60 ++++++- .../impl/DefaultLoginIntentResolverTest.kt | 81 ++++++++++ .../onboarding/OnBoardingPresenterTest.kt | 68 -------- .../ConfirmAccountProviderPresenterTest.kt | 83 +++++----- .../onboarding/OnBoardingPresenterTest.kt | 149 ++++++++++++++++++ .../onboarding/OnboardingViewTest.kt | 44 +++++- features/login/test/build.gradle.kts | 19 +++ .../login/test/FakeLoginIntentResolver.kt | 20 +++ .../api/auth/MatrixAuthenticationService.kt | 5 +- .../auth/RustMatrixAuthenticationService.kt | 7 +- .../android/libraries/matrix/test/TestData.kt | 4 +- .../auth/FakeMatrixAuthenticationService.kt | 5 +- ...ns.onboarding_OnBoardingView_Day_0_en.png} | 0 ...ns.onboarding_OnBoardingView_Day_1_en.png} | 0 ...ns.onboarding_OnBoardingView_Day_2_en.png} | 0 ...ns.onboarding_OnBoardingView_Day_3_en.png} | 0 ...ns.onboarding_OnBoardingView_Day_4_en.png} | 0 ...ens.onboarding_OnBoardingView_Day_5_en.png | 3 + ....onboarding_OnBoardingView_Night_0_en.png} | 0 ....onboarding_OnBoardingView_Night_1_en.png} | 0 ....onboarding_OnBoardingView_Night_2_en.png} | 0 ....onboarding_OnBoardingView_Night_3_en.png} | 0 ....onboarding_OnBoardingView_Night_4_en.png} | 0 ...s.onboarding_OnBoardingView_Night_5_en.png | 3 + tools/adb/deeplink_mobile.sh | 12 ++ 52 files changed, 1092 insertions(+), 363 deletions(-) create mode 100644 features/login/api/src/main/kotlin/io/element/android/features/login/api/LoginIntentResolver.kt create mode 100644 features/login/api/src/main/kotlin/io/element/android/features/login/api/LoginParams.kt create mode 100644 features/login/impl/src/main/kotlin/io/element/android/features/login/impl/DefaultLoginIntentResolver.kt create mode 100644 features/login/impl/src/main/kotlin/io/element/android/features/login/impl/login/LoginHelper.kt create mode 100644 features/login/impl/src/main/kotlin/io/element/android/features/login/impl/login/LoginMode.kt create mode 100644 features/login/impl/src/main/kotlin/io/element/android/features/login/impl/login/LoginModeView.kt delete mode 100644 features/login/impl/src/main/kotlin/io/element/android/features/login/impl/onboarding/OnBoardingPresenter.kt delete mode 100644 features/login/impl/src/main/kotlin/io/element/android/features/login/impl/onboarding/OnBoardingState.kt create mode 100644 features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/onboarding/OnBoardingEvents.kt rename features/login/impl/src/main/kotlin/io/element/android/features/login/impl/{ => screens}/onboarding/OnBoardingNode.kt (55%) create mode 100644 features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/onboarding/OnBoardingPresenter.kt create mode 100644 features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/onboarding/OnBoardingState.kt rename features/login/impl/src/main/kotlin/io/element/android/features/login/impl/{ => screens}/onboarding/OnBoardingStateProvider.kt (67%) rename features/login/impl/src/main/kotlin/io/element/android/features/login/impl/{ => screens}/onboarding/OnBoardingView.kt (75%) create mode 100644 features/login/impl/src/test/kotlin/io/element/android/features/login/impl/DefaultLoginIntentResolverTest.kt delete mode 100644 features/login/impl/src/test/kotlin/io/element/android/features/login/impl/onboarding/OnBoardingPresenterTest.kt create mode 100644 features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/onboarding/OnBoardingPresenterTest.kt rename features/login/impl/src/test/kotlin/io/element/android/features/login/impl/{ => screens}/onboarding/OnboardingViewTest.kt (67%) create mode 100644 features/login/test/build.gradle.kts create mode 100644 features/login/test/src/main/kotlin/io/element/android/features/login/test/FakeLoginIntentResolver.kt rename tests/uitests/src/test/snapshots/images/{features.login.impl.onboarding_OnBoardingView_Day_0_en.png => features.login.impl.screens.onboarding_OnBoardingView_Day_0_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.login.impl.onboarding_OnBoardingView_Day_1_en.png => features.login.impl.screens.onboarding_OnBoardingView_Day_1_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.login.impl.onboarding_OnBoardingView_Day_2_en.png => features.login.impl.screens.onboarding_OnBoardingView_Day_2_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.login.impl.onboarding_OnBoardingView_Day_3_en.png => features.login.impl.screens.onboarding_OnBoardingView_Day_3_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.login.impl.onboarding_OnBoardingView_Day_4_en.png => features.login.impl.screens.onboarding_OnBoardingView_Day_4_en.png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/features.login.impl.screens.onboarding_OnBoardingView_Day_5_en.png rename tests/uitests/src/test/snapshots/images/{features.login.impl.onboarding_OnBoardingView_Night_0_en.png => features.login.impl.screens.onboarding_OnBoardingView_Night_0_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.login.impl.onboarding_OnBoardingView_Night_1_en.png => features.login.impl.screens.onboarding_OnBoardingView_Night_1_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.login.impl.onboarding_OnBoardingView_Night_2_en.png => features.login.impl.screens.onboarding_OnBoardingView_Night_2_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.login.impl.onboarding_OnBoardingView_Night_3_en.png => features.login.impl.screens.onboarding_OnBoardingView_Night_3_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.login.impl.onboarding_OnBoardingView_Night_4_en.png => features.login.impl.screens.onboarding_OnBoardingView_Night_4_en.png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/features.login.impl.screens.onboarding_OnBoardingView_Night_5_en.png create mode 100755 tools/adb/deeplink_mobile.sh diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c26c9a5a51..6619603f93 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -34,11 +34,17 @@ android:value='androidx.startup' /> + @@ -54,6 +60,9 @@ android:host="open" android:scheme="elementx" /> + @@ -80,6 +89,21 @@ + + + + + + + + + + + +