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 SlidingSyncNotAvailable : QrLoginException()
data object OtherDeviceNotSignedIn : QrLoginException() data object OtherDeviceNotSignedIn : QrLoginException()
data object Unknown : QrLoginException() data object Unknown : QrLoginException()
data object CheckCodeAlreadySent : QrLoginException()
data object CheckCodeCannotBeSent : QrLoginException()
} }

View file

@ -289,10 +289,13 @@ class RustMatrixAuthenticationService(
qrCodeData = sdkQrCodeLoginData, qrCodeData = sdkQrCodeLoginData,
) )
client.loginWithQrCode( client.loginWithQrCode(
qrCodeData = qrCodeData.rustQrCodeData,
oidcConfiguration = oidcConfiguration, 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 // Ensure that the user is not already logged in with the same account
ensureNotAlreadyLoggedIn(client) ensureNotAlreadyLoggedIn(client)
val sessionData = client.session() val sessionData = client.session()

View file

@ -42,5 +42,7 @@ object QrErrorMapper {
is RustHumanQrLoginException.Unknown -> QrLoginException.Unknown is RustHumanQrLoginException.Unknown -> QrLoginException.Unknown
is RustHumanQrLoginException.OidcMetadataInvalid -> QrLoginException.OidcMetadataInvalid is RustHumanQrLoginException.OidcMetadataInvalid -> QrLoginException.OidcMetadataInvalid
is RustHumanQrLoginException.SlidingSyncNotAvailable -> QrLoginException.SlidingSyncNotAvailable 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( return RustComposerDraft(
plainText = plainText, plainText = plainText,
htmlText = htmlText, 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. * Please see LICENSE files in the repository root for full details.
*/ */
import java.net.URI
pluginManagement { pluginManagement {
repositories { repositories {
includeBuild("plugins") includeBuild("plugins")
gradlePluginPortal() gradlePluginPortal()
google() google()
mavenCentral() mavenCentral()
@ -18,14 +16,17 @@ pluginManagement {
dependencyResolutionManagement { dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories { repositories {
google()
mavenCentral()
maven { maven {
url = URI("https://www.jitpack.io") url = uri("https://www.jitpack.io")
content { content {
includeModule("com.github.matrix-org", "matrix-analytics-events") includeModule("com.github.matrix-org", "matrix-analytics-events")
} }
} }
google()
mavenCentral()
maven {
url = uri("https://repo1.maven.org/maven2/")
}
flatDir { flatDir {
dirs("libraries/matrix/libs") dirs("libraries/matrix/libs")
} }