Merge branch 'develop' into valere/rtc/voice_call

This commit is contained in:
Valere
2026-03-06 12:22:28 +01:00
9 changed files with 20 additions and 17 deletions

View File

@@ -167,6 +167,6 @@ class LoggedInPresenter(
private fun CoroutineScope.preloadAccountManagementUrl() = launch {
matrixClient.getAccountManagementUrl(AccountManagementAction.Profile)
matrixClient.getAccountManagementUrl(AccountManagementAction.SessionsList)
matrixClient.getAccountManagementUrl(AccountManagementAction.DevicesList)
}
}

View File

@@ -81,7 +81,7 @@ class LoggedInPresenterTest {
accountManagementUrlResult.assertions().isCalledExactly(2)
.withSequence(
listOf(value(AccountManagementAction.Profile)),
listOf(value(AccountManagementAction.SessionsList)),
listOf(value(AccountManagementAction.DevicesList)),
)
}
}

View File

@@ -165,6 +165,6 @@ class PreferencesRootPresenter(
devicesManagementUrl: MutableState<String?>,
) = launch {
accountManagementUrl.value = matrixClient.getAccountManagementUrl(AccountManagementAction.Profile).getOrNull()
devicesManagementUrl.value = matrixClient.getAccountManagementUrl(AccountManagementAction.SessionsList).getOrNull()
devicesManagementUrl.value = matrixClient.getAccountManagementUrl(AccountManagementAction.DevicesList).getOrNull()
}
}

View File

@@ -98,10 +98,10 @@ class PreferencesRootPresenterTest {
accountManagementUrlResult.assertions().isCalledExactly(2)
.withSequence(
listOf(value(AccountManagementAction.Profile)),
listOf(value(AccountManagementAction.SessionsList)),
listOf(value(AccountManagementAction.DevicesList)),
)
assertThat(finalState.accountManagementUrl).isEqualTo("Profile url")
assertThat(finalState.devicesManagementUrl).isEqualTo("SessionsList url")
assertThat(finalState.devicesManagementUrl).isEqualTo("DevicesList url")
}
}

View File

@@ -178,7 +178,7 @@ test_detekt_test = { module = "io.gitlab.arturbosch.detekt:detekt-test", version
# https://github.com/matrix-org/matrix-rust-components-kotlin/commits/main/sdk/sdk-android/src/main/kotlin/org/matrix/rustcomponents/sdk/matrix_sdk_ffi.kt
# All new features should not be implemented in the pull request that upgrades the version, developers should
# only fix API breaks and may add some TODOs.
matrix_sdk = "org.matrix.rustcomponents:sdk-android:26.03.4"
matrix_sdk = "org.matrix.rustcomponents:sdk-android:26.03.05"
# Others
coil = { module = "io.coil-kt.coil3:coil", version.ref = "coil" }
@@ -202,7 +202,7 @@ sqldelight-driver-jvm = { module = "app.cash.sqldelight:sqlite-driver", version.
sqldelight-coroutines = { module = "app.cash.sqldelight:coroutines-extensions", version.ref = "sqldelight" }
sqlcipher = "net.zetetic:sqlcipher-android:4.13.0"
sqlite = "androidx.sqlite:sqlite-ktx:2.6.2"
unifiedpush = "org.unifiedpush.android:connector:3.3.1"
unifiedpush = "org.unifiedpush.android:connector:3.3.2"
vanniktech_blurhash = "com.vanniktech:blurhash:0.3.0"
telephoto_zoomableimage = { module = "me.saket.telephoto:zoomable-image-coil", version.ref = "telephoto" }
telephoto_flick = { module = "me.saket.telephoto:flick-android", version.ref = "telephoto" }
@@ -258,7 +258,7 @@ ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
# Note: used in DependencyInjectionExtensions.kt
metro = { id = "dev.zacsweers.metro", version.ref = "metro" }
detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }
ktlint = "org.jlleitschuh.gradle.ktlint:14.0.1"
ktlint = "org.jlleitschuh.gradle.ktlint:14.1.0"
dependencygraph = "com.savvasdalkitsis.module-dependency-graph:0.12"
dependencycheck = "org.owasp.dependencycheck:12.2.0"
dependencyanalysis = { id = "com.autonomousapps.dependency-analysis", version.ref = "dependencyAnalysis" }

View File

@@ -12,7 +12,7 @@ import io.element.android.libraries.matrix.api.core.DeviceId
sealed interface AccountManagementAction {
data object Profile : AccountManagementAction
data object SessionsList : AccountManagementAction
data class SessionView(val deviceId: DeviceId) : AccountManagementAction
data class SessionEnd(val deviceId: DeviceId) : AccountManagementAction
data object DevicesList : AccountManagementAction
data class DeviceView(val deviceId: DeviceId) : AccountManagementAction
data class DeviceDelete(val deviceId: DeviceId) : AccountManagementAction
}

View File

@@ -14,8 +14,8 @@ import org.matrix.rustcomponents.sdk.AccountManagementAction as RustAccountManag
fun AccountManagementAction.toRustAction(): RustAccountManagementAction {
return when (this) {
AccountManagementAction.Profile -> RustAccountManagementAction.Profile
is AccountManagementAction.SessionEnd -> RustAccountManagementAction.DeviceDelete(deviceId.value)
is AccountManagementAction.SessionView -> RustAccountManagementAction.DeviceView(deviceId.value)
AccountManagementAction.SessionsList -> RustAccountManagementAction.DevicesList
is AccountManagementAction.DeviceDelete -> RustAccountManagementAction.DeviceDelete(deviceId.value)
is AccountManagementAction.DeviceView -> RustAccountManagementAction.DeviceView(deviceId.value)
AccountManagementAction.DevicesList -> RustAccountManagementAction.DevicesList
}
}

View File

@@ -19,11 +19,11 @@ class AccountManagementActionKtTest {
fun `test AccountManagementAction to RustAccountManagementAction`() {
assertThat(AccountManagementAction.Profile.toRustAction())
.isEqualTo(RustAccountManagementAction.Profile)
assertThat(AccountManagementAction.SessionEnd(A_DEVICE_ID).toRustAction())
assertThat(AccountManagementAction.DeviceDelete(A_DEVICE_ID).toRustAction())
.isEqualTo(RustAccountManagementAction.DeviceDelete(A_DEVICE_ID.value))
assertThat(AccountManagementAction.SessionView(A_DEVICE_ID).toRustAction())
assertThat(AccountManagementAction.DeviceView(A_DEVICE_ID).toRustAction())
.isEqualTo(RustAccountManagementAction.DeviceView(A_DEVICE_ID.value))
assertThat(AccountManagementAction.SessionsList.toRustAction())
assertThat(AccountManagementAction.DevicesList.toRustAction())
.isEqualTo(RustAccountManagementAction.DevicesList)
}
}

View File

@@ -103,6 +103,9 @@ fun MarkdownTextInput(
}
addTextChangedListener { editable ->
onTyping(!editable.isNullOrEmpty())
if (state.lineCount != lineCount) {
post { bringPointIntoView(selectionStart) }
}
state.text.update(editable, false)
state.lineCount = lineCount