|
|
@ -17,6 +17,7 @@ |
|
|
|
package io.element.android.libraries.matrix.impl.auth |
|
|
|
package io.element.android.libraries.matrix.impl.auth |
|
|
|
|
|
|
|
|
|
|
|
import com.squareup.anvil.annotations.ContributesBinding |
|
|
|
import com.squareup.anvil.annotations.ContributesBinding |
|
|
|
|
|
|
|
import io.element.android.appconfig.AuthenticationConfig |
|
|
|
import io.element.android.libraries.core.coroutine.CoroutineDispatchers |
|
|
|
import io.element.android.libraries.core.coroutine.CoroutineDispatchers |
|
|
|
import io.element.android.libraries.core.extensions.mapFailure |
|
|
|
import io.element.android.libraries.core.extensions.mapFailure |
|
|
|
import io.element.android.libraries.di.AppScope |
|
|
|
import io.element.android.libraries.di.AppScope |
|
|
@ -205,7 +206,11 @@ class RustMatrixAuthenticationService @Inject constructor( |
|
|
|
override suspend fun loginWithQrCode(qrCodeData: MatrixQrCodeLoginData, progress: (QrCodeLoginStep) -> Unit) = |
|
|
|
override suspend fun loginWithQrCode(qrCodeData: MatrixQrCodeLoginData, progress: (QrCodeLoginStep) -> Unit) = |
|
|
|
withContext(coroutineDispatchers.io) { |
|
|
|
withContext(coroutineDispatchers.io) { |
|
|
|
runCatching { |
|
|
|
runCatching { |
|
|
|
val client = rustMatrixClientFactory.getBaseClientBuilder(sessionPath, pendingPassphrase) |
|
|
|
val client = rustMatrixClientFactory.getBaseClientBuilder( |
|
|
|
|
|
|
|
sessionPath = sessionPath, |
|
|
|
|
|
|
|
passphrase = pendingPassphrase, |
|
|
|
|
|
|
|
slidingSyncProxy = AuthenticationConfig.SLIDING_SYNC_PROXY_URL, |
|
|
|
|
|
|
|
) |
|
|
|
.buildWithQrCode( |
|
|
|
.buildWithQrCode( |
|
|
|
qrCodeData = (qrCodeData as SdkQrCodeLoginData).rustQrCodeData, |
|
|
|
qrCodeData = (qrCodeData as SdkQrCodeLoginData).rustQrCodeData, |
|
|
|
oidcConfiguration = oidcConfigurationProvider.get(), |
|
|
|
oidcConfiguration = oidcConfigurationProvider.get(), |
|
|
@ -242,7 +247,11 @@ class RustMatrixAuthenticationService @Inject constructor( |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private fun getBaseClientBuilder() = rustMatrixClientFactory |
|
|
|
private fun getBaseClientBuilder() = rustMatrixClientFactory |
|
|
|
.getBaseClientBuilder(sessionPath, pendingPassphrase) |
|
|
|
.getBaseClientBuilder( |
|
|
|
|
|
|
|
sessionPath = sessionPath, |
|
|
|
|
|
|
|
passphrase = pendingPassphrase, |
|
|
|
|
|
|
|
slidingSyncProxy = AuthenticationConfig.SLIDING_SYNC_PROXY_URL, |
|
|
|
|
|
|
|
) |
|
|
|
.requiresSlidingSync() |
|
|
|
.requiresSlidingSync() |
|
|
|
|
|
|
|
|
|
|
|
private fun clear() { |
|
|
|
private fun clear() { |
|
|
|