Skip to content

Commit acbf988

Browse files
committed
Merge branch 'release/25.10.1'
2 parents a2ad98c + 8b27662 commit acbf988

File tree

3,116 files changed

+9836
-8175
lines changed

Some content is hidden

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

3,116 files changed

+9836
-8175
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ jobs:
6969
retention-days: 5
7070
overwrite: true
7171
if-no-files-found: error
72-
- uses: rnkdsh/action-upload-diawi@26292a7b424bdc9f4ab4ccea6202fc513f571370 # v1.5.11
72+
- uses: rnkdsh/action-upload-diawi@4e1421305be7cfc510d05f47850262eeaf345108 # v1.5.12
7373
id: diawi
7474
# Do not fail the whole build if Diawi upload fails
7575
continue-on-error: true

.github/workflows/generate_github_pages.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
- name: Set up Python 3.12
2626
uses: actions/setup-python@v6
2727
with:
28-
python-version: 3.13
28+
python-version: 3.14
2929
- name: Run World screenshots generation script
3030
run: |
3131
./tools/test/generateWorldScreenshots.py

.github/workflows/quality.yml

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
- name: Set up Python 3.12
3838
uses: actions/setup-python@v6
3939
with:
40-
python-version: 3.13
40+
python-version: 3.14
4141
- name: Search for invalid screenshot files
4242
run: ./tools/test/checkInvalidScreenshots.py
4343

@@ -58,7 +58,7 @@ jobs:
5858
- name: Set up Python 3.12
5959
uses: actions/setup-python@v6
6060
with:
61-
python-version: 3.13
61+
python-version: 3.14
6262
- name: Search for invalid dependencies
6363
run: ./tools/dependencies/checkDependencies.py
6464

@@ -103,6 +103,39 @@ jobs:
103103
path: |
104104
**/build/reports/**/*.*
105105
106+
compose:
107+
name: Compose tests
108+
runs-on: ubuntu-latest
109+
# Allow all jobs on main and develop. Just one per PR.
110+
concurrency:
111+
group: ${{ github.ref == 'refs/heads/main' && format('check-compose-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('check-compose-develop-{0}', github.sha) || format('check-compose-{0}', github.ref) }}
112+
cancel-in-progress: true
113+
steps:
114+
- uses: actions/checkout@v5
115+
with:
116+
# Ensure we are building the branch and not the branch after being merged on develop
117+
# https://github.com/actions/checkout/issues/881
118+
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.ref }}
119+
- name: Add SSH private keys for submodule repositories
120+
uses: webfactory/ssh-agent@a6f90b1f127823b31d4d4a8d96047790581349bd # v0.9.1
121+
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == 'element-hq/element-x-android' }}
122+
with:
123+
ssh-private-key: ${{ secrets.ELEMENT_ENTERPRISE_DEPLOY_KEY }}
124+
- name: Clone submodules
125+
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == 'element-hq/element-x-android' }}
126+
run: git submodule update --init --recursive
127+
- name: Use JDK 21
128+
uses: actions/setup-java@v5
129+
with:
130+
distribution: 'temurin' # See 'Supported distributions' for available options
131+
java-version: '21'
132+
- name: Configure gradle
133+
uses: gradle/actions/setup-gradle@v5
134+
with:
135+
cache-read-only: ${{ github.ref != 'refs/heads/develop' }}
136+
- name: Run compose tests
137+
run: ./tools/compose/check_stability.sh
138+
106139
lint:
107140
name: Android lint check
108141
runs-on: ubuntu-latest

.github/workflows/sync-localazy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
- name: Set up Python 3.12
2525
uses: actions/setup-python@v6
2626
with:
27-
python-version: 3.13
27+
python-version: 3.14
2828
- name: Setup Localazy
2929
run: |
3030
curl -sS https://dist.localazy.com/debian/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/localazy.gpg

.github/workflows/sync-sas-strings.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
- name: Set up Python 3.12
1717
uses: actions/setup-python@v6
1818
with:
19-
python-version: 3.13
19+
python-version: 3.14
2020
- name: Install Prerequisite dependencies
2121
run: |
2222
pip install requests

CHANGES.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,83 @@
1+
Changes in Element X v25.10.0
2+
=============================
3+
4+
<!-- Release notes generated using configuration in .github/release.yml at v25.10.0 -->
5+
6+
## What's Changed
7+
### ✨ Features
8+
* Use shared recent emoji reactions from account data by @jmartinesp in https://github.com/element-hq/element-x-android/pull/5402
9+
* Follow permalinks to and from threads by @jmartinesp in https://github.com/element-hq/element-x-android/pull/5414
10+
* Add support for Spaces by @bmarty in https://github.com/element-hq/element-x-android/pull/5462
11+
* Add Labs screen for beta testing of public features by @jmartinesp in https://github.com/element-hq/element-x-android/pull/5465
12+
### 🙌 Improvements
13+
* Update the strings for the device verification flow by @andybalaam in https://github.com/element-hq/element-x-android/pull/5419
14+
* Set a notification sound by @bmarty in https://github.com/element-hq/element-x-android/pull/5469
15+
* Improve current push provider test: give info about the distributor. by @bmarty in https://github.com/element-hq/element-x-android/pull/5471
16+
* Improve AnnouncementService. by @bmarty in https://github.com/element-hq/element-x-android/pull/5482
17+
### 🐛 Bugfixes
18+
* Improvement and bugfix on incoming verification request screen by @bmarty in https://github.com/element-hq/element-x-android/pull/5426
19+
* Space : makes sure to use room heroes for avatar by @ganfra in https://github.com/element-hq/element-x-android/pull/5488
20+
* Filter out direct room in the leave space screen. by @bmarty in https://github.com/element-hq/element-x-android/pull/5498
21+
### 🗣 Translations
22+
* Sync Strings by @ElementBot in https://github.com/element-hq/element-x-android/pull/5427
23+
* Sync Strings by @ElementBot in https://github.com/element-hq/element-x-android/pull/5460
24+
* Sync Strings by @ElementBot in https://github.com/element-hq/element-x-android/pull/5486
25+
### 🧱 Build
26+
* Remove unused dependency on `javax.inject:javax.inject` by @bmarty in https://github.com/element-hq/element-x-android/pull/5445
27+
* Internalize compound-android by @bmarty in https://github.com/element-hq/element-x-android/pull/5457
28+
### 🚧 In development 🚧
29+
* Sdk : use latest apis for space by @ganfra in https://github.com/element-hq/element-x-android/pull/5404
30+
* Multi accounts - experimental first implementation by @bmarty in https://github.com/element-hq/element-x-android/pull/5285
31+
* Leave space - UI by @bmarty in https://github.com/element-hq/element-x-android/pull/5354
32+
* Leave spave: iteration on string value. by @bmarty in https://github.com/element-hq/element-x-android/pull/5425
33+
* Feature : space list join action by @ganfra in https://github.com/element-hq/element-x-android/pull/5431
34+
* Room list space invite by @ganfra in https://github.com/element-hq/element-x-android/pull/5449
35+
* Leave space: use SDK API. by @bmarty in https://github.com/element-hq/element-x-android/pull/5432
36+
* Space annoucement by @bmarty in https://github.com/element-hq/element-x-android/pull/5451
37+
* feature(space) : keep space children in the presenter by @ganfra in https://github.com/element-hq/element-x-android/pull/5456
38+
* Spaces : some tweaks around ui by @ganfra in https://github.com/element-hq/element-x-android/pull/5468
39+
* Use "BETA" word from Localazy and ensure layout is correct by @bmarty in https://github.com/element-hq/element-x-android/pull/5470
40+
* Disable avatar cluster for now by @bmarty in https://github.com/element-hq/element-x-android/pull/5492
41+
### Dependency upgrades
42+
* Update dependency com.posthog:posthog-android to v3.21.3 by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5360
43+
* Update dependency io.element.android:element-call-embedded to v0.16.0 by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5408
44+
* Update dependency net.java.dev.jna:jna to v5.18.0 by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5398
45+
* Update plugin dependencycheck to v12.1.6 by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5405
46+
* Update dependency org.matrix.rustcomponents:sdk-android to v25.9.25 by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5412
47+
* Update dependency androidx.sqlite:sqlite-ktx to v2.6.1 by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5409
48+
* Update kotlin by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5317
49+
* Update metro to v0.6.7 by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5416
50+
* Update dependency app.cash.molecule:molecule-runtime to v2.2.0 by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5413
51+
* Update dependency com.posthog:posthog-android to v3.22.0 by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5415
52+
* Update metro to v0.6.8 by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5422
53+
* fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.10.1 by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5438
54+
* fix(deps): update dependency net.java.dev.jna:jna to v5.18.1 by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5437
55+
* fix(deps): update dependency io.mockk:mockk to v1.14.6 by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5441
56+
* Update gradle/actions action to v5 by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5444
57+
* fix(deps): update dependency io.sentry:sentry-android to v8.23.0 by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5442
58+
* fix(deps): update dependency org.maplibre.gl:android-sdk to v12 by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5455
59+
* fix(deps): update dependency com.posthog:posthog-android to v3.23.0 by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5463
60+
* fix(deps): update roborazzi to v1.50.0 by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5464
61+
* fix(deps): update telephoto to v0.18.0 by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5459
62+
### Others
63+
* Ensure Metro `@AssistedInject` is used. by @bmarty in https://github.com/element-hq/element-x-android/pull/5420
64+
* Misc : destroy SpaceRoomList by @ganfra in https://github.com/element-hq/element-x-android/pull/5436
65+
* Remove CurrentSessionIdHolder and inject SessionId instead. by @bmarty in https://github.com/element-hq/element-x-android/pull/5440
66+
* Only offer to verify if a cross-signed device is available by @uhoreg in https://github.com/element-hq/element-x-android/pull/5433
67+
* Replace fun by val in MatrixClient by @bmarty in https://github.com/element-hq/element-x-android/pull/5466
68+
* Space : makes sure to use SpaceRoom.displayName from sdk by @ganfra in https://github.com/element-hq/element-x-android/pull/5476
69+
* Add preview with all icons in the Showkase browser by @bmarty in https://github.com/element-hq/element-x-android/pull/5485
70+
* Ensure that we are using Immutable instead of Persistent by @bmarty in https://github.com/element-hq/element-x-android/pull/5490
71+
* Reduce number of Previews for Avatar. by @bmarty in https://github.com/element-hq/element-x-android/pull/5495
72+
* Fix error when attempting to verify with recovery key with missing backup key by @uhoreg in https://github.com/element-hq/element-x-android/pull/5314
73+
* Sync strings by @bmarty in https://github.com/element-hq/element-x-android/pull/5499
74+
* feature(space): make sure to handle topic properly by @ganfra in https://github.com/element-hq/element-x-android/pull/5493
75+
76+
## New Contributors
77+
* @uhoreg made their first contribution in https://github.com/element-hq/element-x-android/pull/5433
78+
79+
**Full Changelog**: https://github.com/element-hq/element-x-android/compare/v25.09.2...v25.10.0
80+
181
Changes in Element X v25.09.2
282
=============================
383

app/build.gradle.kts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,12 @@ android {
197197
buildConfigFieldStr("FLAVOR_DESCRIPTION", "FDroid")
198198
}
199199
}
200+
201+
packaging {
202+
resources.pickFirsts += setOf(
203+
"META-INF/versions/9/OSGI-INF/MANIFEST.MF",
204+
)
205+
}
200206
}
201207

202208
androidComponents {
@@ -318,6 +324,7 @@ licensee {
318324
allowUrl("https://jsoup.org/license")
319325
allowUrl("https://asm.ow2.io/license.html")
320326
allowUrl("https://www.gnu.org/licenses/agpl-3.0.txt")
327+
allowUrl("https://github.com/mhssn95/compose-color-picker/blob/main/LICENSE")
321328
ignoreDependencies("com.github.matrix-org", "matrix-analytics-events")
322329
// Ignore dependency that are not third-party licenses to us.
323330
ignoreDependencies(groupId = "io.element.android")

app/src/main/AndroidManifest.xml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,17 @@
3434
<provider
3535
android:name="androidx.startup.InitializationProvider"
3636
android:authorities="${applicationId}.androidx-startup"
37-
android:exported="false">
37+
android:exported="false"
38+
tools:node="merge">
3839
<meta-data
3940
android:name='androidx.lifecycle.ProcessLifecycleInitializer'
4041
android:value='androidx.startup' />
42+
43+
<!-- Remove to use Application workManagerConfiguration -->
44+
<meta-data
45+
android:name="androidx.work.WorkManagerInitializer"
46+
android:value="androidx.startup"
47+
tools:node="remove" />
4148
</provider>
4249

4350
<!--
@@ -175,7 +182,6 @@
175182
android:name="android.support.FILE_PROVIDER_PATHS"
176183
android:resource="@xml/file_providers" />
177184
</provider>
178-
179185
</application>
180186

181187
</manifest>

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,31 @@ package io.element.android.x
99

1010
import android.app.Application
1111
import androidx.startup.AppInitializer
12+
import androidx.work.Configuration
1213
import dev.zacsweers.metro.createGraphFactory
1314
import io.element.android.features.cachecleaner.api.CacheCleanerInitializer
1415
import io.element.android.libraries.di.DependencyInjectionGraphOwner
16+
import io.element.android.libraries.workmanager.api.di.MetroWorkerFactory
1517
import io.element.android.x.di.AppGraph
1618
import io.element.android.x.info.logApplicationInfo
1719
import io.element.android.x.initializer.CrashInitializer
1820
import io.element.android.x.initializer.PlatformInitializer
1921

20-
class ElementXApplication : Application(), DependencyInjectionGraphOwner {
22+
class ElementXApplication : Application(), DependencyInjectionGraphOwner, Configuration.Provider {
2123
override val graph: AppGraph = createGraphFactory<AppGraph.Factory>().create(this)
2224

25+
override val workManagerConfiguration: Configuration = Configuration.Builder()
26+
.setWorkerFactory(MetroWorkerFactory(graph.workerProviders))
27+
.build()
28+
2329
override fun onCreate() {
2430
super.onCreate()
2531
AppInitializer.getInstance(this).apply {
2632
initializeComponent(CrashInitializer::class.java)
2733
initializeComponent(PlatformInitializer::class.java)
2834
initializeComponent(CacheCleanerInitializer::class.java)
2935
}
36+
3037
logApplicationInfo(this)
3138
}
3239
}

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,24 @@
88
package io.element.android.x.di
99

1010
import android.content.Context
11+
import androidx.work.ListenableWorker
1112
import dev.zacsweers.metro.AppScope
1213
import dev.zacsweers.metro.DependencyGraph
14+
import dev.zacsweers.metro.Multibinds
1315
import dev.zacsweers.metro.Provides
1416
import io.element.android.libraries.architecture.NodeFactoriesBindings
1517
import io.element.android.libraries.di.annotations.ApplicationContext
18+
import io.element.android.libraries.workmanager.api.di.MetroWorkerFactory
19+
import kotlin.reflect.KClass
1620

1721
@DependencyGraph(AppScope::class)
1822
interface AppGraph : NodeFactoriesBindings {
1923
val sessionGraphFactory: SessionGraph.Factory
2024

25+
@Multibinds
26+
val workerProviders:
27+
Map<KClass<out ListenableWorker>, MetroWorkerFactory.WorkerInstanceFactory<*>>
28+
2129
@DependencyGraph.Factory
2230
interface Factory {
2331
fun create(

0 commit comments

Comments
 (0)