Skip to content

Commit 490e76c

Browse files
committed
Merge branch 'release/25.03.3'
2 parents bee248e + ae16c91 commit 490e76c

File tree

285 files changed

+2650
-1428
lines changed

Some content is hidden

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

285 files changed

+2650
-1428
lines changed

.github/workflows/build.yml

+5-1
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ jobs:
4646
ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }}
4747
ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID: ${{ secrets.MAPTILER_DARK_MAP_ID }}
4848
ELEMENT_ANDROID_SENTRY_DSN: ${{ secrets.ELEMENT_ANDROID_SENTRY_DSN }}
49+
ELEMENT_CALL_SENTRY_DSN: ${{ secrets.ELEMENT_CALL_SENTRY_DSN }}
50+
ELEMENT_CALL_POSTHOG_API_HOST: ${{ secrets.ELEMENT_CALL_POSTHOG_API_HOST }}
51+
ELEMENT_CALL_POSTHOG_API_KEY: ${{ secrets.ELEMENT_CALL_POSTHOG_API_KEY }}
52+
ELEMENT_CALL_RAGESHAKE_URL: ${{ secrets.ELEMENT_CALL_RAGESHAKE_URL }}
4953
run: ./gradlew :app:assembleGplayDebug app:assembleFDroidDebug -PallWarningsAsErrors=true $CI_GRADLE_ARG_PROPERTIES
5054
- name: Upload debug APKs
5155
if: ${{ matrix.variant == 'debug' }}
@@ -65,7 +69,7 @@ jobs:
6569
retention-days: 5
6670
overwrite: true
6771
if-no-files-found: error
68-
- uses: rnkdsh/[email protected].7
72+
- uses: rnkdsh/[email protected].8
6973
id: diawi
7074
# Do not fail the whole build if Diawi upload fails
7175
continue-on-error: true

.github/workflows/build_enterprise.yml

+4
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ jobs:
5454
ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }}
5555
ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID: ${{ secrets.MAPTILER_DARK_MAP_ID }}
5656
ELEMENT_ANDROID_SENTRY_DSN: ${{ secrets.ELEMENT_ANDROID_SENTRY_DSN }}
57+
ELEMENT_CALL_SENTRY_DSN: ${{ secrets.ELEMENT_CALL_SENTRY_DSN }}
58+
ELEMENT_CALL_POSTHOG_API_HOST: ${{ secrets.ELEMENT_CALL_POSTHOG_API_HOST }}
59+
ELEMENT_CALL_POSTHOG_API_KEY: ${{ secrets.ELEMENT_CALL_POSTHOG_API_KEY }}
60+
ELEMENT_CALL_RAGESHAKE_URL: ${{ secrets.ELEMENT_CALL_RAGESHAKE_URL }}
5761
run: ./gradlew :app:assembleGplayDebug -PallWarningsAsErrors=true $CI_GRADLE_ARG_PROPERTIES
5862
- name: Upload debug Enterprise APKs
5963
if: ${{ matrix.variant == 'debug' }}

.github/workflows/nightly.yml

+4
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ jobs:
3030
ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }}
3131
ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID: ${{ secrets.MAPTILER_DARK_MAP_ID }}
3232
ELEMENT_ANDROID_SENTRY_DSN: ${{ secrets.ELEMENT_ANDROID_SENTRY_DSN }}
33+
ELEMENT_CALL_SENTRY_DSN: ${{ secrets.ELEMENT_CALL_SENTRY_DSN }}
34+
ELEMENT_CALL_POSTHOG_API_HOST: ${{ secrets.ELEMENT_CALL_POSTHOG_API_HOST }}
35+
ELEMENT_CALL_POSTHOG_API_KEY: ${{ secrets.ELEMENT_CALL_POSTHOG_API_KEY }}
36+
ELEMENT_CALL_RAGESHAKE_URL: ${{ secrets.ELEMENT_CALL_RAGESHAKE_URL }}
3337
ELEMENT_ANDROID_NIGHTLY_KEYID: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_KEYID }}
3438
ELEMENT_ANDROID_NIGHTLY_KEYPASSWORD: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_KEYPASSWORD }}
3539
ELEMENT_ANDROID_NIGHTLY_STOREPASSWORD: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_STOREPASSWORD }}

.github/workflows/nightly_enterprise.yml

+4
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ jobs:
3636
ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }}
3737
ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID: ${{ secrets.MAPTILER_DARK_MAP_ID }}
3838
ELEMENT_ANDROID_SENTRY_DSN: ${{ secrets.ELEMENT_ANDROID_SENTRY_DSN }}
39+
ELEMENT_CALL_SENTRY_DSN: ${{ secrets.ELEMENT_CALL_SENTRY_DSN }}
40+
ELEMENT_CALL_POSTHOG_API_HOST: ${{ secrets.ELEMENT_CALL_POSTHOG_API_HOST }}
41+
ELEMENT_CALL_POSTHOG_API_KEY: ${{ secrets.ELEMENT_CALL_POSTHOG_API_KEY }}
42+
ELEMENT_CALL_RAGESHAKE_URL: ${{ secrets.ELEMENT_CALL_RAGESHAKE_URL }}
3943
ELEMENT_ANDROID_NIGHTLY_KEYID: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_KEYID }}
4044
ELEMENT_ANDROID_NIGHTLY_KEYPASSWORD: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_KEYPASSWORD }}
4145
ELEMENT_ANDROID_NIGHTLY_STOREPASSWORD: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_STOREPASSWORD }}

.github/workflows/release.yml

+4
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ jobs:
3232
ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }}
3333
ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID: ${{ secrets.MAPTILER_DARK_MAP_ID }}
3434
ELEMENT_ANDROID_SENTRY_DSN: ${{ secrets.ELEMENT_ANDROID_SENTRY_DSN }}
35+
ELEMENT_CALL_SENTRY_DSN: ${{ secrets.ELEMENT_CALL_SENTRY_DSN }}
36+
ELEMENT_CALL_POSTHOG_API_HOST: ${{ secrets.ELEMENT_CALL_POSTHOG_API_HOST }}
37+
ELEMENT_CALL_POSTHOG_API_KEY: ${{ secrets.ELEMENT_CALL_POSTHOG_API_KEY }}
38+
ELEMENT_CALL_RAGESHAKE_URL: ${{ secrets.ELEMENT_CALL_RAGESHAKE_URL }}
3539
run: ./gradlew bundleGplayRelease $CI_GRADLE_ARG_PROPERTIES
3640
- name: Upload bundle as artifact
3741
uses: actions/upload-artifact@v4

CHANGES.md

+65
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,68 @@
1+
Changes in Element X v25.03.2
2+
=============================
3+
4+
<!-- Release notes generated using configuration in .github/release.yml at v25.03.2 -->
5+
6+
## What's Changed
7+
### ✨ Features
8+
* Implement user verification by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4294
9+
* Add user verification and verification state violation badges by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4392
10+
* Open txt document inside the application by @bmarty in https://github.com/element-hq/element-x-android/pull/4414
11+
* Add timeline item prefetching by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4399
12+
### 🐛 Bugfixes
13+
* fix(read receipt): track read receipts for focused timeline by @ganfra in https://github.com/element-hq/element-x-android/pull/4374
14+
* Discard timed out verification requests by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4385
15+
* Ensure the snackbar "No more media to show" is not rendered when opening the media viewer. by @bmarty in https://github.com/element-hq/element-x-android/pull/4397
16+
* Disable click effect on Stickers by @bmarty in https://github.com/element-hq/element-x-android/pull/4401
17+
* Ensure that a click on a media open the correct media. by @bmarty in https://github.com/element-hq/element-x-android/pull/4413
18+
* Display user verification violation icon in DM rooms too by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4423
19+
* Add a filter to avoid stack overflow when pressing the back button several times. by @bmarty in https://github.com/element-hq/element-x-android/pull/4430
20+
* Make verification screens scrollable and emoji labels multiline by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4449
21+
### 🗣 Translations
22+
* Sync Strings - New translations in Basque by @ElementBot in https://github.com/element-hq/element-x-android/pull/4381
23+
* Sync Strings by @ElementBot in https://github.com/element-hq/element-x-android/pull/4421
24+
### 🧱 Build
25+
* More PR checks by @bmarty in https://github.com/element-hq/element-x-android/pull/4384
26+
* "Core Team" is a team of matrix-org. Use team "Vector Core" instead. by @bmarty in https://github.com/element-hq/element-x-android/pull/4393
27+
* Fix warnings in tests for push provider modules by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4398
28+
* Update Gradle Wrapper from 8.12.1 to 8.13 by @ElementBot in https://github.com/element-hq/element-x-android/pull/4308
29+
* Revert agp to 8.8.1 by @bmarty in https://github.com/element-hq/element-x-android/pull/4451
30+
### Dependency upgrades
31+
* Update rnkdsh/action-upload-diawi action to v1.5.7 by @renovate in https://github.com/element-hq/element-x-android/pull/4354
32+
* fix(deps): update dependency com.posthog:posthog-android to v3.12.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4387
33+
* fix(deps): update dependencyanalysis to v2.11.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4395
34+
* fix(deps): update dependency androidx.compose:compose-bom to v2025.03.00 by @renovate in https://github.com/element-hq/element-x-android/pull/4407
35+
* fix(deps): update dependency androidx.webkit:webkit to v1.13.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4408
36+
* fix(deps): update dependency net.java.dev.jna:jna to v5.17.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4419
37+
* fix(deps): update dependencyanalysis to v2.12.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4409
38+
* Add Google Tink dependency, replacing `androidx.security.crypto` by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4405
39+
* fix(deps): update dependency io.sentry:sentry-android to v8.4.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4411
40+
* fix(deps): update dependency org.maplibre.gl:android-sdk to v11.8.3 by @renovate in https://github.com/element-hq/element-x-android/pull/4427
41+
* chore(deps): update webfactory/ssh-agent action to v0.9.1 by @renovate in https://github.com/element-hq/element-x-android/pull/4426
42+
* fix(deps): update android.gradle.plugin to v8.9.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4320
43+
* Update SDK version to `25.03.13` and fix breaking changes by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4406
44+
* Update dagger to v2.56 by @renovate in https://github.com/element-hq/element-x-android/pull/4440
45+
* Update dependency io.sentry:sentry-android to v8.5.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4433
46+
* Update dependencyAnalysis to v2.13.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4442
47+
* Update dependency com.google.crypto.tink:tink-android to v1.17.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4422
48+
* deps(rust sdk) : update to 25.03.20 and fix api change by @ganfra in https://github.com/element-hq/element-x-android/pull/4452
49+
### Others
50+
* Migrate some icons to Compound icon by @bmarty in https://github.com/element-hq/element-x-android/pull/4375
51+
* Long press link to copy URL to clipboard by @ShadowRZ in https://github.com/element-hq/element-x-android/pull/4376
52+
* Use public icon from Compound by @bmarty in https://github.com/element-hq/element-x-android/pull/4386
53+
* Be able to correctly render the UI with other colors. by @bmarty in https://github.com/element-hq/element-x-android/pull/4378
54+
* Let EnterpriseService provides push gateways by @bmarty in https://github.com/element-hq/element-x-android/pull/4400
55+
* Add feature flag to let the application prints logs to logcat in release builds. by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4402
56+
* Hide "unencrypted" lock for redacted messages by @Xant3s in https://github.com/element-hq/element-x-android/pull/4410
57+
* Hide unencrypted lock for redacted msgs by @bmarty in https://github.com/element-hq/element-x-android/pull/4429
58+
* Clear SDK cache properly by @bmarty in https://github.com/element-hq/element-x-android/pull/4396
59+
60+
## New Contributors
61+
* @ShadowRZ made their first contribution in https://github.com/element-hq/element-x-android/pull/4376
62+
* @Xant3s made their first contribution in https://github.com/element-hq/element-x-android/pull/4410
63+
64+
**Full Changelog**: https://github.com/element-hq/element-x-android/compare/v25.03.1...v25.03.2
65+
166
Changes in Element X v25.03.1
267
=============================
368

anvilcodegen/src/main/kotlin/io/element/android/anvilcodegen/ContributesNodeProcessorProvider.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import com.google.devtools.ksp.processing.SymbolProcessorProvider
1313

1414
class ContributesNodeProcessorProvider : SymbolProcessorProvider {
1515
override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor {
16-
val enableLogging = environment.options["enableLogging"]?.toBoolean() ?: false
16+
val enableLogging = environment.options["enableLogging"]?.toBoolean() == true
1717
return ContributesNodeProcessor(
1818
logger = environment.logger,
1919
codeGenerator = environment.codeGenerator,

app/build.gradle.kts

+14-8
Original file line numberDiff line numberDiff line change
@@ -59,21 +59,27 @@ android {
5959
splits {
6060
// Configures multiple APKs based on ABI.
6161
abi {
62-
// Enables building multiple APKs per ABI.
63-
isEnable = true
62+
val buildingAppBundle = gradle.startParameter.taskNames.any { it.contains("bundle") }
63+
64+
// Enables building multiple APKs per ABI. This should be disabled when building an AAB.
65+
isEnable = !buildingAppBundle
66+
6467
// By default all ABIs are included, so use reset() and include to specify that we only
6568
// want APKs for armeabi-v7a, x86, arm64-v8a and x86_64.
6669
// Resets the list of ABIs that Gradle should create APKs for to none.
6770
reset()
68-
// Specifies a list of ABIs that Gradle should create APKs for.
69-
include("armeabi-v7a", "x86", "arm64-v8a", "x86_64")
70-
// Generate a universal APK that includes all ABIs, so user who installs from CI tool can use this one by default.
71-
isUniversalApk = true
71+
72+
if (!buildingAppBundle) {
73+
// Specifies a list of ABIs that Gradle should create APKs for.
74+
include("armeabi-v7a", "x86", "arm64-v8a", "x86_64")
75+
// Generate a universal APK that includes all ABIs, so user who installs from CI tool can use this one by default.
76+
isUniversalApk = true
77+
}
7278
}
7379
}
7480

75-
defaultConfig {
76-
resourceConfigurations += locales
81+
androidResources {
82+
localeFilters += locales
7783
}
7884
}
7985

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

-5
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,6 @@
88
package io.element.android.appconfig
99

1010
object ElementCallConfig {
11-
/**
12-
* The default base URL for the Element Call service.
13-
*/
14-
const val DEFAULT_BASE_URL = "https://call.element.io"
15-
1611
/**
1712
* The default duration of a ringing call in seconds before it's automatically dismissed.
1813
*/
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
3+
<string name="banner_migrate_to_native_sliding_sync_action">"Amaitu saioa eta bertsio-berritu"</string>
34
<string name="banner_migrate_to_native_sliding_sync_force_logout_title">"Zure zerbitzaria ez da bateragarria protokolo zaharrarekin. Amaitu saioa eta hasi berriro aplikazioa erabiltzen jarraitzeko."</string>
45
</resources>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Main changes in this version: improvements to the event cache, Element Call now uses an embedded implementation, several bugfixes.
2+
Full changelog: https://github.com/element-hq/element-x-android/releases

features/call/impl/build.gradle.kts

+45
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import extension.readLocalProperty
12
import extension.setupAnvil
23

34
/*
@@ -23,6 +24,49 @@ android {
2324
testOptions {
2425
unitTests.isIncludeAndroidResources = true
2526
}
27+
28+
defaultConfig {
29+
buildConfigField(
30+
type = "String",
31+
name = "SENTRY_DSN",
32+
value = (System.getenv("ELEMENT_CALL_SENTRY_DSN")
33+
?: readLocalProperty("features.call.sentry.dsn")
34+
?: ""
35+
).let { "\"$it\"" }
36+
)
37+
buildConfigField(
38+
type = "String",
39+
name = "POSTHOG_USER_ID",
40+
value = (System.getenv("ELEMENT_CALL_POSTHOG_USER_ID")
41+
?: readLocalProperty("features.call.posthog.userid")
42+
?: ""
43+
).let { "\"$it\"" }
44+
)
45+
buildConfigField(
46+
type = "String",
47+
name = "POSTHOG_API_HOST",
48+
value = (System.getenv("ELEMENT_CALL_POSTHOG_API_HOST")
49+
?: readLocalProperty("features.call.posthog.api.host")
50+
?: ""
51+
).let { "\"$it\"" }
52+
)
53+
buildConfigField(
54+
type = "String",
55+
name = "POSTHOG_API_KEY",
56+
value = (System.getenv("ELEMENT_CALL_POSTHOG_API_KEY")
57+
?: readLocalProperty("features.call.posthog.api.key")
58+
?: ""
59+
).let { "\"$it\"" }
60+
)
61+
buildConfigField(
62+
type = "String",
63+
name = "RAGESHAKE_URL",
64+
value = (System.getenv("ELEMENT_CALL_RAGESHAKE_URL")
65+
?: readLocalProperty("features.call.regeshake.url")
66+
?: ""
67+
).let { "\"$it\"" }
68+
)
69+
}
2670
}
2771

2872
setupAnvil()
@@ -47,6 +91,7 @@ dependencies {
4791
implementation(libs.coil.compose)
4892
implementation(libs.network.retrofit)
4993
implementation(libs.serialization.json)
94+
implementation(libs.element.call.embedded)
5095
api(projects.features.call.api)
5196

5297
testImplementation(libs.coroutines.test)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/*
2+
* Copyright 2025 New Vector Ltd.
3+
*
4+
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
5+
* Please see LICENSE files in the repository root for full details.
6+
*/
7+
8+
package io.element.android.features.call.impl.utils
9+
10+
import com.squareup.anvil.annotations.ContributesBinding
11+
import io.element.android.features.call.impl.BuildConfig
12+
import io.element.android.libraries.di.AppScope
13+
import io.element.android.libraries.matrix.api.widget.CallAnalyticCredentialsProvider
14+
import javax.inject.Inject
15+
16+
@ContributesBinding(AppScope::class)
17+
class DefaultCallAnalyticCredentialsProvider @Inject constructor() : CallAnalyticCredentialsProvider {
18+
override val posthogUserId: String? = BuildConfig.POSTHOG_USER_ID.takeIf { it.isNotBlank() }
19+
override val posthogApiHost: String? = BuildConfig.POSTHOG_API_HOST.takeIf { it.isNotBlank() }
20+
override val posthogApiKey: String? = BuildConfig.POSTHOG_API_KEY.takeIf { it.isNotBlank() }
21+
override val rageshakeSubmitUrl: String? = BuildConfig.RAGESHAKE_URL.takeIf { it.isNotBlank() }
22+
override val sentryDsn: String? = BuildConfig.SENTRY_DSN.takeIf { it.isNotBlank() }
23+
}

features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/DefaultCallWidgetProvider.kt

+8-7
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,22 @@
88
package io.element.android.features.call.impl.utils
99

1010
import com.squareup.anvil.annotations.ContributesBinding
11-
import io.element.android.appconfig.ElementCallConfig
1211
import io.element.android.libraries.di.AppScope
1312
import io.element.android.libraries.matrix.api.MatrixClientProvider
14-
import io.element.android.libraries.matrix.api.call.ElementCallBaseUrlProvider
1513
import io.element.android.libraries.matrix.api.core.RoomId
1614
import io.element.android.libraries.matrix.api.core.SessionId
1715
import io.element.android.libraries.matrix.api.widget.CallWidgetSettingsProvider
1816
import io.element.android.libraries.preferences.api.store.AppPreferencesStore
1917
import kotlinx.coroutines.flow.firstOrNull
2018
import javax.inject.Inject
2119

20+
private const val EMBEDDED_CALL_WIDGET_BASE_URL = "https://appassets.androidplatform.net/element-call/index.html"
21+
2222
@ContributesBinding(AppScope::class)
2323
class DefaultCallWidgetProvider @Inject constructor(
2424
private val matrixClientsProvider: MatrixClientProvider,
2525
private val appPreferencesStore: AppPreferencesStore,
2626
private val callWidgetSettingsProvider: CallWidgetSettingsProvider,
27-
private val elementCallBaseUrlProvider: ElementCallBaseUrlProvider,
2827
) : CallWidgetProvider {
2928
override suspend fun getWidget(
3029
sessionId: SessionId,
@@ -35,9 +34,10 @@ class DefaultCallWidgetProvider @Inject constructor(
3534
): Result<CallWidgetProvider.GetWidgetResult> = runCatching {
3635
val matrixClient = matrixClientsProvider.getOrRestore(sessionId).getOrThrow()
3736
val room = matrixClient.getRoom(roomId) ?: error("Room not found")
38-
val baseUrl = appPreferencesStore.getCustomElementCallBaseUrlFlow().firstOrNull()
39-
?: elementCallBaseUrlProvider.provides(matrixClient)
40-
?: ElementCallConfig.DEFAULT_BASE_URL
37+
38+
val customBaseUrl = appPreferencesStore.getCustomElementCallBaseUrlFlow().firstOrNull()
39+
val baseUrl = customBaseUrl ?: EMBEDDED_CALL_WIDGET_BASE_URL
40+
4141
val isEncrypted = room.info().isEncrypted ?: room.getUpdatedIsEncrypted().getOrThrow()
4242
val widgetSettings = callWidgetSettingsProvider.provide(baseUrl, encrypted = isEncrypted)
4343
val callUrl = room.generateWidgetWebViewUrl(
@@ -46,9 +46,10 @@ class DefaultCallWidgetProvider @Inject constructor(
4646
languageTag = languageTag,
4747
theme = theme,
4848
).getOrThrow()
49+
4950
CallWidgetProvider.GetWidgetResult(
5051
driver = room.getWidgetDriver(widgetSettings).getOrThrow(),
51-
url = callUrl
52+
url = callUrl,
5253
)
5354
}
5455
}

0 commit comments

Comments
 (0)