Skip to content

Commit 8b4b321

Browse files
committed
Merge branch 'release/25.08.2'
2 parents 499a99a + 4ef4dec commit 8b4b321

File tree

86 files changed

+1221
-223
lines changed

Some content is hidden

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

86 files changed

+1221
-223
lines changed

.github/workflows/maestro-local.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ jobs:
6969
# https://github.com/actions/checkout/issues/881
7070
ref: ${{ github.ref }}
7171
- name: Download APK artifact from previous job
72-
uses: actions/download-artifact@v4
72+
uses: actions/download-artifact@v5
7373
with:
7474
name: elementx-apk-maestro
7575
- name: Enable KVM group perms

.github/workflows/quality.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ jobs:
284284
# https://github.com/actions/checkout/issues/881
285285
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.ref }}
286286
- name: Download reports from previous jobs
287-
uses: actions/download-artifact@v4
287+
uses: actions/download-artifact@v5
288288
- name: Prepare Danger
289289
if: always()
290290
run: |

CHANGES.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,22 @@
1+
Changes in Element X v25.08.1
2+
=============================
3+
4+
<!-- Release notes generated using configuration in .github/release.yml at v25.08.1 -->
5+
6+
## What's Changed
7+
### 🙌 Improvements
8+
* Force last owner of a room to pass ownership when leaving by @jmartinesp in https://github.com/element-hq/element-x-android/pull/5094
9+
### 🐛 Bugfixes
10+
* Reload room member list when active members count changes by @jmartinesp in https://github.com/element-hq/element-x-android/pull/5129
11+
* Delegate call notifications to Element Call, upgrade SDK and EC embedded by @jmartinesp in https://github.com/element-hq/element-x-android/pull/5119
12+
### 🗣 Translations
13+
* Sync Strings by @ElementBot in https://github.com/element-hq/element-x-android/pull/5112
14+
### Dependency upgrades
15+
* Update media3 to v1.8.0 by @renovate[bot] in https://github.com/element-hq/element-x-android/pull/5101
16+
17+
18+
**Full Changelog**: https://github.com/element-hq/element-x-android/compare/v25.08.0...v25.08.1
19+
120
Changes in Element X v25.08.0
221
=============================
322

app/src/main/kotlin/io/element/android/x/initializer/PlatformInitializer.kt

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,10 @@ package io.element.android.x.initializer
1010
import android.content.Context
1111
import android.system.Os
1212
import androidx.startup.Initializer
13-
import io.element.android.features.rageshake.api.reporter.BugReporter
13+
import io.element.android.features.rageshake.api.logs.createWriteToFilesConfiguration
1414
import io.element.android.libraries.architecture.bindings
1515
import io.element.android.libraries.featureflag.api.FeatureFlags
1616
import io.element.android.libraries.matrix.api.tracing.TracingConfiguration
17-
import io.element.android.libraries.matrix.api.tracing.WriteToFilesConfiguration
1817
import io.element.android.x.di.AppBindings
1918
import kotlinx.coroutines.flow.first
2019
import kotlinx.coroutines.runBlocking
@@ -34,7 +33,7 @@ class PlatformInitializer : Initializer<Unit> {
3433
val logLevel = runBlocking { preferencesStore.getTracingLogLevelFlow().first() }
3534
val tracingConfiguration = TracingConfiguration(
3635
writesToLogcat = runBlocking { featureFlagService.isFeatureEnabled(FeatureFlags.PrintLogsToLogcat) },
37-
writesToFilesConfiguration = defaultWriteToDiskConfiguration(bugReporter),
36+
writesToFilesConfiguration = bugReporter.createWriteToFilesConfiguration(),
3837
logLevel = logLevel,
3938
extraTargets = listOf(ELEMENT_X_TARGET),
4039
traceLogPacks = runBlocking { preferencesStore.getTracingLogPacksFlow().first() },
@@ -45,14 +44,5 @@ class PlatformInitializer : Initializer<Unit> {
4544
Os.setenv("RUST_BACKTRACE", "1", true)
4645
}
4746

48-
private fun defaultWriteToDiskConfiguration(bugReporter: BugReporter): WriteToFilesConfiguration.Enabled {
49-
return WriteToFilesConfiguration.Enabled(
50-
directory = bugReporter.logDirectory().absolutePath,
51-
filenamePrefix = "logs",
52-
// Keep a maximum of 1 week of log files.
53-
numberOfFiles = 7 * 24,
54-
)
55-
}
56-
5747
override fun dependencies(): List<Class<out Initializer<*>>> = mutableListOf()
5848
}

appnav/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ dependencies {
3636
implementation(projects.libraries.designsystem)
3737
implementation(projects.libraries.matrixui)
3838
implementation(projects.libraries.uiStrings)
39+
implementation(projects.features.login.api)
3940

4041
implementation(libs.coil)
4142

appnav/src/main/kotlin/io/element/android/appnav/RootFlowNode.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,10 @@ import io.element.android.appnav.intent.ResolvedIntent
3333
import io.element.android.appnav.root.RootNavStateFlowFactory
3434
import io.element.android.appnav.root.RootPresenter
3535
import io.element.android.appnav.root.RootView
36-
import io.element.android.features.enterprise.api.EnterpriseService
3736
import io.element.android.features.login.api.LoginParams
37+
import io.element.android.features.login.api.accesscontrol.AccountProviderAccessControl
3838
import io.element.android.features.rageshake.api.bugreport.BugReportEntryPoint
39+
import io.element.android.features.rageshake.api.reporter.BugReporter
3940
import io.element.android.features.signedout.api.SignedOutEntryPoint
4041
import io.element.android.features.viewfolder.api.ViewFolderEntryPoint
4142
import io.element.android.libraries.architecture.BackstackView
@@ -64,7 +65,7 @@ class RootFlowNode @AssistedInject constructor(
6465
@Assisted val buildContext: BuildContext,
6566
@Assisted plugins: List<Plugin>,
6667
private val authenticationService: MatrixAuthenticationService,
67-
private val enterpriseService: EnterpriseService,
68+
private val accountProviderAccessControl: AccountProviderAccessControl,
6869
private val navStateFlowFactory: RootNavStateFlowFactory,
6970
private val matrixSessionCache: MatrixSessionCache,
7071
private val presenter: RootPresenter,
@@ -73,6 +74,7 @@ class RootFlowNode @AssistedInject constructor(
7374
private val signedOutEntryPoint: SignedOutEntryPoint,
7475
private val intentResolver: IntentResolver,
7576
private val oidcActionFlow: OidcActionFlow,
77+
private val bugReporter: BugReporter,
7678
) : BaseFlowNode<RootFlowNode.NavTarget>(
7779
backstack = BackStack(
7880
initialElement = NavTarget.SplashScreen,
@@ -123,6 +125,7 @@ class RootFlowNode @AssistedInject constructor(
123125

124126
private fun switchToNotLoggedInFlow(params: LoginParams?) {
125127
matrixSessionCache.removeAll()
128+
bugReporter.setLogDirectorySubfolder(null)
126129
backstack.safeRoot(NavTarget.NotLoggedInFlow(params))
127130
}
128131

@@ -293,7 +296,7 @@ class RootFlowNode @AssistedInject constructor(
293296
val latestSessionId = authenticationService.getLatestSessionId()
294297
if (latestSessionId == null) {
295298
// No session, open login
296-
if (enterpriseService.isAllowedToConnectToHomeserver(params.accountProvider.ensureProtocol())) {
299+
if (accountProviderAccessControl.isAllowedToConnectToAccountProvider(params.accountProvider.ensureProtocol())) {
297300
switchToNotLoggedInFlow(params)
298301
} else {
299302
Timber.w("Login link ignored, we are not allowed to connect to the homeserver")

appnav/src/main/kotlin/io/element/android/appnav/di/MatrixSessionCache.kt

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,7 @@ class MatrixSessionCache @Inject constructor(
4242

4343
init {
4444
authenticationService.listenToNewMatrixClients { matrixClient ->
45-
val syncOrchestrator = syncOrchestratorFactory.create(matrixClient)
46-
sessionIdsToMatrixSession[matrixClient.sessionId] = InMemoryMatrixSession(
47-
matrixClient = matrixClient,
48-
syncOrchestrator = syncOrchestrator,
49-
)
50-
syncOrchestrator.start()
45+
onNewMatrixClient(matrixClient)
5146
}
5247
}
5348

@@ -105,17 +100,21 @@ class MatrixSessionCache @Inject constructor(
105100
Timber.d("Restore matrix session: $sessionId")
106101
return authenticationService.restoreSession(sessionId)
107102
.onSuccess { matrixClient ->
108-
val syncOrchestrator = syncOrchestratorFactory.create(matrixClient)
109-
sessionIdsToMatrixSession[matrixClient.sessionId] = InMemoryMatrixSession(
110-
matrixClient = matrixClient,
111-
syncOrchestrator = syncOrchestrator,
112-
)
113-
syncOrchestrator.start()
103+
onNewMatrixClient(matrixClient)
114104
}
115105
.onFailure {
116106
Timber.e(it, "Fail to restore session")
117107
}
118108
}
109+
110+
private fun onNewMatrixClient(matrixClient: MatrixClient) {
111+
val syncOrchestrator = syncOrchestratorFactory.create(matrixClient)
112+
sessionIdsToMatrixSession[matrixClient.sessionId] = InMemoryMatrixSession(
113+
matrixClient = matrixClient,
114+
syncOrchestrator = syncOrchestrator,
115+
)
116+
syncOrchestrator.start()
117+
}
119118
}
120119

121120
private data class InMemoryMatrixSession(

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ allprojects {
4949
config.from(files("$rootDir/tools/detekt/detekt.yml"))
5050
}
5151
dependencies {
52-
detektPlugins("io.nlopez.compose.rules:detekt:0.4.26")
52+
detektPlugins("io.nlopez.compose.rules:detekt:0.4.27")
5353
detektPlugins(project(":tests:detekt-rules"))
5454
}
5555

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Main changes in this version:
2+
- Fix a bug with notifications being incorrectly dropped.
3+
Full changelog: https://github.com/element-hq/element-x-android/releases

features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomPresenterArgs.kt

Lines changed: 0 additions & 14 deletions
This file was deleted.

0 commit comments

Comments
 (0)