Skip to content

Commit 18b9593

Browse files
committed
Merge branch 'release/25.03.0' into main
2 parents c87cc4c + bdff332 commit 18b9593

File tree

1,898 files changed

+11783
-6028
lines changed

Some content is hidden

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

1,898 files changed

+11783
-6028
lines changed

.github/workflows/danger.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
- run: |
2121
npm install --save-dev @babel/plugin-transform-flow-strip-types
2222
- name: Danger
23-
uses: danger/[email protected].3
23+
uses: danger/[email protected].4
2424
with:
2525
args: "--dangerfile ./tools/danger/dangerfile.js"
2626
env:

.github/workflows/quality.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ jobs:
138138
- name: Build Fdroid Debug
139139
run: ./gradlew :app:compileFdroidDebugKotlin $CI_GRADLE_ARG_PROPERTIES
140140
- name: Run lint
141-
run: ./gradlew :app:lintGplayDebug :app:lintFdroidDebug $CI_GRADLE_ARG_PROPERTIES
141+
run: ./gradlew :app:lintGplayDebug :app:lintFdroidDebug lintDebug $CI_GRADLE_ARG_PROPERTIES --continue
142142
- name: Upload reports
143143
if: always()
144144
uses: actions/upload-artifact@v4
@@ -294,7 +294,7 @@ jobs:
294294
yarn add danger-plugin-lint-report --dev
295295
- name: Danger lint
296296
if: always()
297-
uses: danger/[email protected].3
297+
uses: danger/[email protected].4
298298
with:
299299
args: "--dangerfile ./tools/danger/dangerfile-lint.js"
300300
env:

CHANGES.md

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,104 @@
1+
<!-- Release notes generated using configuration in .github/release.yml at v25.02.0 -->
2+
3+
## What's Changed
4+
### ✨ Features
5+
* Media navigation with swipe gesture by @bmarty in https://github.com/element-hq/element-x-android/pull/4161
6+
* Add ability to swipe between media when opened from the timeline. by @bmarty in https://github.com/element-hq/element-x-android/pull/4205
7+
### 🙌 Improvements
8+
* change(design) : use ElementTheme.typography.fontBodyLgMedium by @ganfra in https://github.com/element-hq/element-x-android/pull/4145
9+
* change(design) : New component Announcement by @ganfra in https://github.com/element-hq/element-x-android/pull/4140
10+
* update rust sdk 0.2.75 by @ganfra in https://github.com/element-hq/element-x-android/pull/4158
11+
### 🐛 Bugfixes
12+
* Fix dm avatar rtl by @bmarty in https://github.com/element-hq/element-x-android/pull/4103
13+
* Unified push gateway resolver improvement by @bmarty in https://github.com/element-hq/element-x-android/pull/4101
14+
* Close the media preview screen ASAP with sending queue enabled by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4089
15+
* fix(coroutine) : make sure to switch coroutine context by @ganfra in https://github.com/element-hq/element-x-android/pull/4146
16+
* Fix snack bar not displayed in MediaViewer by @bmarty in https://github.com/element-hq/element-x-android/pull/4195
17+
* Let the SDK provide the "network is available information" by @bmarty in https://github.com/element-hq/element-x-android/pull/4215
18+
### 🗣 Translations
19+
* Sync Strings by @ElementBot in https://github.com/element-hq/element-x-android/pull/4088
20+
* Sync Strings by @ElementBot in https://github.com/element-hq/element-x-android/pull/4100
21+
* Sync Strings by @ElementBot in https://github.com/element-hq/element-x-android/pull/4114
22+
* Fix import of en-US translations. by @bmarty in https://github.com/element-hq/element-x-android/pull/4135
23+
* Sync Strings by @ElementBot in https://github.com/element-hq/element-x-android/pull/4139
24+
* Sync Strings by @ElementBot in https://github.com/element-hq/element-x-android/pull/4172
25+
* Sync Strings by @ElementBot in https://github.com/element-hq/element-x-android/pull/4199
26+
* Sync Strings - new (partial) language: Norwegian by @ElementBot in https://github.com/element-hq/element-x-android/pull/4227
27+
### 🧱 Build
28+
* Update Gradle Wrapper from 8.11.1 to 8.12 by @ElementBot in https://github.com/element-hq/element-x-android/pull/4085
29+
* Test using Maestro CLI + emulator instead of Cloud by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4092
30+
* Make Maestro run for each PR push by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4121
31+
* Migrate to CalVer like versioning by @bmarty in https://github.com/element-hq/element-x-android/pull/4187
32+
* Kover: include back :libraries:matrix:impl module. by @bmarty in https://github.com/element-hq/element-x-android/pull/4193
33+
* Update Gradle Wrapper from 8.12 to 8.12.1 by @ElementBot in https://github.com/element-hq/element-x-android/pull/4196
34+
* Use secret Sentry DSN value by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4210
35+
* Use Sentry breadcrumbs instead of logging new events by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4223
36+
### 🚧 In development 🚧
37+
* Media Viewer: show snackbar when reaching end of timeline. by @bmarty in https://github.com/element-hq/element-x-android/pull/4201
38+
* Feature : room settings - security and privacy by @ganfra in https://github.com/element-hq/element-x-android/pull/4212
39+
### Dependency upgrades
40+
* Update dependency io.mockk:mockk to v1.13.14 by @renovate in https://github.com/element-hq/element-x-android/pull/4083
41+
* Update dependency net.java.dev.jna:jna to v5.16.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4087
42+
* Update kotlin to v1.10.1 by @renovate in https://github.com/element-hq/element-x-android/pull/4073
43+
* Update dagger to v2.54 by @renovate in https://github.com/element-hq/element-x-android/pull/4084
44+
* Update dependency io.sentry:sentry-android to v7.19.1 by @renovate in https://github.com/element-hq/element-x-android/pull/4090
45+
* Update dependency com.android.tools:desugar_jdk_libs to v2.1.4 by @renovate in https://github.com/element-hq/element-x-android/pull/4077
46+
* Update dependency com.posthog:posthog-android to v3.10.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4120
47+
* Update appyx to v1.6.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4129
48+
* Update dagger to v2.55 by @renovate in https://github.com/element-hq/element-x-android/pull/4131
49+
* Update android.gradle.plugin to v8.8.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4130
50+
* Update dependency org.maplibre.gl:android-sdk to v11.8.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4132
51+
* Update dependency io.mockk:mockk to v1.13.16 by @renovate in https://github.com/element-hq/element-x-android/pull/4134
52+
* Update dependencyAnalysis to v2.7.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4136
53+
* Update anvil to v0.4.1 by @renovate in https://github.com/element-hq/element-x-android/pull/4144
54+
* Update kotlin by @renovate in https://github.com/element-hq/element-x-android/pull/4117
55+
* Update plugin dependencycheck to v12 by @renovate in https://github.com/element-hq/element-x-android/pull/4137
56+
* Update dependency io.sentry:sentry-android to v7.20.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4107
57+
* Update wysiwyg to v2.38.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4104
58+
* Update dependency androidx.recyclerview:recyclerview to v1.4.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4154
59+
* Update activity to v1.10.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4152
60+
* Update firebaseAppDistribution to v5.1.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4159
61+
* Update dependency com.google.firebase:firebase-bom to v33.8.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4160
62+
* Update dependency androidx.compose:compose-bom to v2025 by @renovate in https://github.com/element-hq/element-x-android/pull/4155
63+
* Update dependency io.sentry:sentry-android to v7.20.1 by @renovate in https://github.com/element-hq/element-x-android/pull/4178
64+
* Update dependency io.sentry:sentry-android to v8 by @renovate in https://github.com/element-hq/element-x-android/pull/4180
65+
* Update wysiwyg to v2.38.1 by @renovate in https://github.com/element-hq/element-x-android/pull/4177
66+
* Update dependency org.matrix.rustcomponents:sdk-android to v0.2.76 by @renovate in https://github.com/element-hq/element-x-android/pull/4183
67+
* Update wysiwyg to v2.38.2 by @renovate in https://github.com/element-hq/element-x-android/pull/4186
68+
* Update dependency com.posthog:posthog-android to v3.11.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4204
69+
* Update kotlin by @renovate in https://github.com/element-hq/element-x-android/pull/4200
70+
* Update dependency org.matrix.rustcomponents:sdk-android to v0.2.77 by @renovate in https://github.com/element-hq/element-x-android/pull/4228
71+
* Update dependency com.posthog:posthog-android to v3.11.1 by @renovate in https://github.com/element-hq/element-x-android/pull/4222
72+
* Update dependency io.element.android:emojibase-bindings to v1.3.4 by @renovate in https://github.com/element-hq/element-x-android/pull/4213
73+
* Update dependencyAnalysis to v2.8.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4218
74+
* Update dependency androidx.compose:compose-bom to v2025.01.01 by @renovate in https://github.com/element-hq/element-x-android/pull/4217
75+
* Update dependency io.sentry:sentry-android to v8.1.0 by @renovate in https://github.com/element-hq/element-x-android/pull/4221
76+
* Update rnkdsh/action-upload-diawi action to v1.5.6 by @renovate in https://github.com/element-hq/element-x-android/pull/4173
77+
* Update plugin dependencycheck to v12.0.2 by @renovate in https://github.com/element-hq/element-x-android/pull/4170
78+
### Others
79+
* Improve gallery loading state by @bmarty in https://github.com/element-hq/element-x-android/pull/4080
80+
* Show more detail about the error when pusher registration fails. by @bmarty in https://github.com/element-hq/element-x-android/pull/4081
81+
* Update pull request template and CI automation by @bmarty in https://github.com/element-hq/element-x-android/pull/4037
82+
* Add a log function for handling complex values to the WebView client. by @Half-Shot in https://github.com/element-hq/element-x-android/pull/4098
83+
* design : CounterAtom by @ganfra in https://github.com/element-hq/element-x-android/pull/4108
84+
* Change sticker mimetype fallback to image by @surakin in https://github.com/element-hq/element-x-android/pull/4111
85+
* Dual licensing: AGPL + Element Commercial by @bmarty in https://github.com/element-hq/element-x-android/pull/4118
86+
* Replace the InfoListOrganism default bg color by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4091
87+
* Ignore dependency that are not third-party licenses to us. by @bmarty in https://github.com/element-hq/element-x-android/pull/4122
88+
* misc(send queue) : do not disable send queue when Network is Offline by @ganfra in https://github.com/element-hq/element-x-android/pull/4105
89+
* Remove or replace unnecessary `BackHandler` calls by @jmartinesp in https://github.com/element-hq/element-x-android/pull/4148
90+
* Replace our firstIfSingle extension with singleOrNull from the Kotlin library by @bmarty in https://github.com/element-hq/element-x-android/pull/4184
91+
* Remove log. by @bmarty in https://github.com/element-hq/element-x-android/pull/4203
92+
* Remove unused types / code. by @bmarty in https://github.com/element-hq/element-x-android/pull/4185
93+
* Consider that the topic of a room has been removed when it's blank. by @bmarty in https://github.com/element-hq/element-x-android/pull/4209
94+
* CalVer: use 2 digits for the year and 2 digits for the month. by @bmarty in https://github.com/element-hq/element-x-android/pull/4192
95+
* Always display encryption badge by @bmarty in https://github.com/element-hq/element-x-android/pull/4219
96+
97+
## New Contributors
98+
* @Half-Shot made their first contribution in https://github.com/element-hq/element-x-android/pull/4098
99+
100+
**Full Changelog**: https://github.com/element-hq/element-x-android/compare/v0.7.6...v25.02.0
101+
1102
Changes in Element X v0.7.6 (2024-12-20)
2103
========================================
3104

app/build.gradle.kts

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.android.build.api.variant.FilterConfiguration.FilterType.ABI
1111
import com.android.build.gradle.internal.tasks.factory.dependsOn
1212
import com.android.build.gradle.tasks.GenerateBuildConfig
13+
import config.BuildTimeConfig
1314
import extension.AssetCopyTask
1415
import extension.ComponentMergingStrategy
1516
import extension.GitBranchNameValueSource
@@ -43,11 +44,7 @@ android {
4344
namespace = "io.element.android.x"
4445

4546
defaultConfig {
46-
applicationId = if (isEnterpriseBuild) {
47-
"io.element.enterprise"
48-
} else {
49-
"io.element.android.x"
50-
}
47+
applicationId = BuildTimeConfig.APPLICATION_ID
5148
targetSdk = Versions.TARGET_SDK
5249
versionCode = Versions.VERSION_CODE
5350
versionName = Versions.VERSION_NAME
@@ -97,11 +94,7 @@ android {
9794
}
9895
}
9996

100-
val baseAppName = if (isEnterpriseBuild) {
101-
"Element Enterprise"
102-
} else {
103-
"Element X"
104-
}
97+
val baseAppName = BuildTimeConfig.APPLICATION_NAME
10598
logger.warnInBox("Building $baseAppName")
10699

107100
buildTypes {

app/src/main/kotlin/io/element/android/x/MainActivity.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import androidx.activity.enableEdgeToEdge
1414
import androidx.compose.foundation.background
1515
import androidx.compose.foundation.layout.Box
1616
import androidx.compose.foundation.layout.fillMaxSize
17-
import androidx.compose.material3.MaterialTheme
1817
import androidx.compose.runtime.Composable
1918
import androidx.compose.runtime.CompositionLocalProvider
2019
import androidx.compose.ui.Modifier
@@ -26,6 +25,7 @@ import androidx.lifecycle.repeatOnLifecycle
2625
import com.bumble.appyx.core.integration.NodeHost
2726
import com.bumble.appyx.core.integrationpoint.NodeActivity
2827
import com.bumble.appyx.core.plugin.NodeReadyObserver
28+
import io.element.android.compound.theme.ElementTheme
2929
import io.element.android.features.lockscreen.api.LockScreenEntryPoint
3030
import io.element.android.features.lockscreen.api.LockScreenLockState
3131
import io.element.android.features.lockscreen.api.LockScreenService
@@ -61,16 +61,19 @@ class MainActivity : NodeActivity() {
6161
@Composable
6262
private fun MainContent(appBindings: AppBindings) {
6363
val migrationState = appBindings.migrationEntryPoint().present()
64-
ElementThemeApp(appBindings.preferencesStore()) {
64+
ElementThemeApp(
65+
appPreferencesStore = appBindings.preferencesStore(),
66+
enterpriseService = appBindings.enterpriseService(),
67+
) {
6568
CompositionLocalProvider(
6669
LocalSnackbarDispatcher provides appBindings.snackbarDispatcher(),
6770
LocalUriHandler provides SafeUriHandler(this),
6871
LocalAnalyticsService provides appBindings.analyticsService(),
6972
) {
7073
Box(
7174
modifier = Modifier
72-
.fillMaxSize()
73-
.background(MaterialTheme.colorScheme.background),
75+
.fillMaxSize()
76+
.background(ElementTheme.colors.bgCanvasDefault),
7477
) {
7578
if (migrationState.migrationAction.isSuccess()) {
7679
MainNodeHost()

app/src/main/kotlin/io/element/android/x/di/AppBindings.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ package io.element.android.x.di
99

1010
import com.squareup.anvil.annotations.ContributesTo
1111
import io.element.android.features.api.MigrationEntryPoint
12+
import io.element.android.features.enterprise.api.EnterpriseService
1213
import io.element.android.features.lockscreen.api.LockScreenEntryPoint
1314
import io.element.android.features.lockscreen.api.LockScreenService
1415
import io.element.android.features.rageshake.api.reporter.BugReporter
@@ -35,4 +36,6 @@ interface AppBindings {
3536
fun lockScreenEntryPoint(): LockScreenEntryPoint
3637

3738
fun analyticsService(): AnalyticsService
39+
40+
fun enterpriseService(): EnterpriseService
3841
}

app/src/main/kotlin/io/element/android/x/di/AppModule.kt

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -73,23 +73,26 @@ object AppModule {
7373
@ApplicationContext context: Context,
7474
buildType: BuildType,
7575
enterpriseService: EnterpriseService,
76-
) = BuildMeta(
77-
isDebuggable = BuildConfig.DEBUG,
78-
buildType = buildType,
79-
applicationName = ApplicationConfig.APPLICATION_NAME.takeIf { it.isNotEmpty() } ?: context.getString(R.string.app_name),
80-
productionApplicationName = ApplicationConfig.PRODUCTION_APPLICATION_NAME,
81-
desktopApplicationName = ApplicationConfig.DESKTOP_APPLICATION_NAME,
82-
applicationId = BuildConfig.APPLICATION_ID,
83-
isEnterpriseBuild = enterpriseService.isEnterpriseBuild,
84-
// TODO EAx Config.LOW_PRIVACY_LOG_ENABLE,
85-
lowPrivacyLoggingEnabled = false,
86-
versionName = BuildConfig.VERSION_NAME,
87-
versionCode = context.getVersionCodeFromManifest(),
88-
gitRevision = BuildConfig.GIT_REVISION,
89-
gitBranchName = BuildConfig.GIT_BRANCH_NAME,
90-
flavorDescription = BuildConfig.FLAVOR_DESCRIPTION,
91-
flavorShortDescription = BuildConfig.SHORT_FLAVOR_DESCRIPTION,
92-
)
76+
): BuildMeta {
77+
val applicationName = ApplicationConfig.APPLICATION_NAME.takeIf { it.isNotEmpty() } ?: context.getString(R.string.app_name)
78+
return BuildMeta(
79+
isDebuggable = BuildConfig.DEBUG,
80+
buildType = buildType,
81+
applicationName = applicationName,
82+
productionApplicationName = if (enterpriseService.isEnterpriseBuild) applicationName else ApplicationConfig.PRODUCTION_APPLICATION_NAME,
83+
desktopApplicationName = if (enterpriseService.isEnterpriseBuild) applicationName else ApplicationConfig.DESKTOP_APPLICATION_NAME,
84+
applicationId = BuildConfig.APPLICATION_ID,
85+
isEnterpriseBuild = enterpriseService.isEnterpriseBuild,
86+
// TODO EAx Config.LOW_PRIVACY_LOG_ENABLE,
87+
lowPrivacyLoggingEnabled = false,
88+
versionName = BuildConfig.VERSION_NAME,
89+
versionCode = context.getVersionCodeFromManifest(),
90+
gitRevision = BuildConfig.GIT_REVISION,
91+
gitBranchName = BuildConfig.GIT_BRANCH_NAME,
92+
flavorDescription = BuildConfig.FLAVOR_DESCRIPTION,
93+
flavorShortDescription = BuildConfig.SHORT_FLAVOR_DESCRIPTION,
94+
)
95+
}
9396

9497
@Provides
9598
@SingleIn(AppScope::class)

app/src/main/res/xml/locales_config.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
<locale android:name="ru"/>
2626
<locale android:name="sk"/>
2727
<locale android:name="sv"/>
28+
<locale android:name="tr"/>
2829
<locale android:name="uk"/>
2930
<locale android:name="uz"/>
3031
<locale android:name="zh-CN"/>

app/src/main/res/xml/network_security_config.xml

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<network-security-config>
2+
<network-security-config xmlns:tools="http://schemas.android.com/tools">
33
<!-- Ref: https://developer.android.com/training/articles/security-config.html -->
44
<!-- By default, do not allow clearText traffic -->
5-
<base-config cleartextTrafficPermitted="false" />
5+
<base-config cleartextTrafficPermitted="false">
6+
<trust-anchors>
7+
<certificates src="system" />
8+
<certificates
9+
src="user"
10+
tools:ignore="AcceptsUserCertificates" />
11+
</trust-anchors>
12+
</base-config>
613

714
<!-- Allow clearText traffic on some specified host -->
815
<domain-config cleartextTrafficPermitted="true">
@@ -24,12 +31,4 @@
2431
<domain includeSubdomains="true">lan</domain>
2532
<domain includeSubdomains="true">localdomain</domain>
2633
</domain-config>
27-
28-
<debug-overrides>
29-
<trust-anchors>
30-
<certificates src="system" />
31-
<certificates src="user" />
32-
</trust-anchors>
33-
</debug-overrides>
34-
3534
</network-security-config>

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

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,6 @@ package io.element.android.appconfig
1010
object AuthenticationConfig {
1111
const val MATRIX_ORG_URL = "https://matrix.org"
1212

13-
/**
14-
* Default homeserver url to sign in with, unless the user selects a different one.
15-
*/
16-
const val DEFAULT_HOMESERVER_URL = MATRIX_ORG_URL
17-
1813
/**
1914
* URL with some docs that explain what's sliding sync and how to add it to your home server.
2015
*/

0 commit comments

Comments
 (0)