Skip to content

Commit 64a7de5

Browse files
committed
Ensure Boolean io.element.disable_network_constraint is explicitly set in the .well-known file.
1 parent 7884b9d commit 64a7de5

File tree

4 files changed

+10
-4
lines changed

4 files changed

+10
-4
lines changed

matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/homeserver/HomeServerCapabilities.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ data class HomeServerCapabilities(
9494
/**
9595
* If set to true, the SDK will not use the network constraint when configuring Worker for the WorkManager, provided in Wellknown.
9696
*/
97-
val disableNetworkConstraint: Boolean = false,
97+
val disableNetworkConstraint: Boolean? = null,
9898
) {
9999

100100
enum class RoomCapabilitySupport {

matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/migration/MigrateSessionTo054.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ internal class MigrateSessionTo054(realm: DynamicRealm) : RealmMigrator(realm, 5
2525
override fun doMigrate(realm: DynamicRealm) {
2626
realm.schema.get("HomeServerCapabilitiesEntity")
2727
?.addField(HomeServerCapabilitiesEntityFields.DISABLE_NETWORK_CONSTRAINT, Boolean::class.java)
28+
?.setNullable(HomeServerCapabilitiesEntityFields.DISABLE_NETWORK_CONSTRAINT, true)
2829
?.forceRefreshOfHomeServerCapabilities()
2930
}
3031
}

matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/HomeServerCapabilitiesEntity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ internal open class HomeServerCapabilitiesEntity(
3737
var canRedactEventWithRelations: Boolean = false,
3838
var externalAccountManagementUrl: String? = null,
3939
var authenticationIssuer: String? = null,
40-
var disableNetworkConstraint: Boolean = false,
40+
var disableNetworkConstraint: Boolean? = null,
4141
) : RealmObject() {
4242

4343
companion object

matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/workmanager/DefaultWorkManagerConfig.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,24 @@
1717
package org.matrix.android.sdk.internal.session.workmanager
1818

1919
import org.matrix.android.sdk.api.auth.data.Credentials
20-
import org.matrix.android.sdk.api.extensions.orFalse
2120
import org.matrix.android.sdk.internal.session.homeserver.HomeServerCapabilitiesDataSource
2221
import javax.inject.Inject
2322

23+
@Suppress("RedundantIf")
2424
internal class DefaultWorkManagerConfig @Inject constructor(
2525
private val credentials: Credentials,
2626
private val homeServerCapabilitiesDataSource: HomeServerCapabilitiesDataSource,
2727
) : WorkManagerConfig {
2828
override fun withNetworkConstraint(): Boolean {
2929
return if (credentials.discoveryInformation?.disableNetworkConstraint == true) {
30+
// Boolean `io.element.disable_network_constraint` explicitly set to `true` in the login response
31+
false
32+
} else if (homeServerCapabilitiesDataSource.getHomeServerCapabilities()?.disableNetworkConstraint == true) {
33+
// Boolean `io.element.disable_network_constraint` explicitly set to `true` in the .well-known file
3034
false
3135
} else {
32-
homeServerCapabilitiesDataSource.getHomeServerCapabilities()?.disableNetworkConstraint.orFalse().not()
36+
// Default, use the Network constraint
37+
true
3338
}
3439
}
3540
}

0 commit comments

Comments
 (0)