Fix api breaks:

- `ComposerDraft` now takes a list of media attachments.
- `HumanQrLoginException` has a couple of new cases.
- `Client.loginWithQrCode` now returns a `LoginWithQrCodeHandle`, which we need to call using `scan` to have the same behaviour as before.
This commit is contained in:
Jorge Martín
2025-10-28 17:12:40 +01:00
parent 63d4f7322e
commit 003af22c31
5 changed files with 20 additions and 10 deletions

View File

@@ -17,4 +17,6 @@ sealed class QrLoginException : Exception() {
data object SlidingSyncNotAvailable : QrLoginException()
data object OtherDeviceNotSignedIn : QrLoginException()
data object Unknown : QrLoginException()
data object CheckCodeAlreadySent : QrLoginException()
data object CheckCodeCannotBeSent : QrLoginException()
}

View File

@@ -289,10 +289,13 @@ class RustMatrixAuthenticationService(
qrCodeData = sdkQrCodeLoginData,
)
client.loginWithQrCode(
qrCodeData = qrCodeData.rustQrCodeData,
oidcConfiguration = oidcConfiguration,
progressListener = progressListener,
)
).use {
it.scan(
qrCodeData = qrCodeData.rustQrCodeData,
progressListener = progressListener,
)
}
// Ensure that the user is not already logged in with the same account
ensureNotAlreadyLoggedIn(client)
val sessionData = client.session()

View File

@@ -42,5 +42,7 @@ object QrErrorMapper {
is RustHumanQrLoginException.Unknown -> QrLoginException.Unknown
is RustHumanQrLoginException.OidcMetadataInvalid -> QrLoginException.OidcMetadataInvalid
is RustHumanQrLoginException.SlidingSyncNotAvailable -> QrLoginException.SlidingSyncNotAvailable
is RustHumanQrLoginException.CheckCodeAlreadySent -> QrLoginException.CheckCodeAlreadySent
is RustHumanQrLoginException.CheckCodeCannotBeSent -> QrLoginException.CheckCodeCannotBeSent
}
}

View File

@@ -17,7 +17,9 @@ internal fun ComposerDraft.into(): RustComposerDraft {
return RustComposerDraft(
plainText = plainText,
htmlText = htmlText,
draftType = draftType.into()
draftType = draftType.into(),
// TODO add media attachments to the draft
attachments = emptyList(),
)
}

View File

@@ -5,11 +5,9 @@
* Please see LICENSE files in the repository root for full details.
*/
import java.net.URI
pluginManagement {
repositories {
includeBuild("plugins")
includeBuild("plugins")
gradlePluginPortal()
google()
mavenCentral()
@@ -18,14 +16,17 @@ pluginManagement {
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven {
url = URI("https://www.jitpack.io")
url = uri("https://www.jitpack.io")
content {
includeModule("com.github.matrix-org", "matrix-analytics-events")
}
}
google()
mavenCentral()
maven {
url = uri("https://repo1.maven.org/maven2/")
}
flatDir {
dirs("libraries/matrix/libs")
}