mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2025-03-17 19:58:57 +03:00
Code cleanup, restore comment, and fix regression on delay
This commit is contained in:
parent
9d0188cbf1
commit
f84ec08847
4 changed files with 21 additions and 15 deletions
|
@ -31,11 +31,11 @@ import im.vector.matrix.android.internal.auth.data.LoginFlowResponse
|
|||
import im.vector.matrix.android.internal.auth.login.DefaultLoginWizard
|
||||
import im.vector.matrix.android.internal.auth.registration.DefaultRegistrationWizard
|
||||
import im.vector.matrix.android.internal.di.Unauthenticated
|
||||
import im.vector.matrix.android.internal.extensions.foldToCallback
|
||||
import im.vector.matrix.android.internal.network.RetrofitFactory
|
||||
import im.vector.matrix.android.internal.network.executeRequest
|
||||
import im.vector.matrix.android.internal.util.CancelableCoroutine
|
||||
import im.vector.matrix.android.internal.task.launchToCallback
|
||||
import im.vector.matrix.android.internal.util.MatrixCoroutineDispatchers
|
||||
import im.vector.matrix.android.internal.util.toCancelable
|
||||
import kotlinx.coroutines.GlobalScope
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
|
@ -70,7 +70,7 @@ internal class DefaultAuthenticationService @Inject constructor(@Unauthenticated
|
|||
override fun getLoginFlow(homeServerConnectionConfig: HomeServerConnectionConfig, callback: MatrixCallback<LoginFlowResponse>): Cancelable {
|
||||
currentHomeServerConnectionConfig = null
|
||||
|
||||
val job = GlobalScope.launch(coroutineDispatchers.main) {
|
||||
return GlobalScope.launch(coroutineDispatchers.main) {
|
||||
val result = runCatching {
|
||||
getLoginFlowInternal(homeServerConnectionConfig)
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ internal class DefaultAuthenticationService @Inject constructor(@Unauthenticated
|
|||
}
|
||||
)
|
||||
}
|
||||
return CancelableCoroutine(job)
|
||||
.toCancelable()
|
||||
}
|
||||
|
||||
private suspend fun getLoginFlowInternal(homeServerConnectionConfig: HomeServerConnectionConfig) = withContext(coroutineDispatchers.io) {
|
||||
|
@ -126,13 +126,9 @@ internal class DefaultAuthenticationService @Inject constructor(@Unauthenticated
|
|||
override fun createSessionFromSso(homeServerConnectionConfig: HomeServerConnectionConfig,
|
||||
credentials: Credentials,
|
||||
callback: MatrixCallback<Session>): Cancelable {
|
||||
val job = GlobalScope.launch(coroutineDispatchers.main) {
|
||||
val sessionOrFailure = runCatching {
|
||||
createSessionFromSso(credentials, homeServerConnectionConfig)
|
||||
}
|
||||
sessionOrFailure.foldToCallback(callback)
|
||||
return GlobalScope.launchToCallback(coroutineDispatchers.main, callback) {
|
||||
createSessionFromSso(credentials, homeServerConnectionConfig)
|
||||
}
|
||||
return CancelableCoroutine(job)
|
||||
}
|
||||
|
||||
private suspend fun createSessionFromSso(credentials: Credentials,
|
||||
|
|
|
@ -34,7 +34,8 @@ import im.vector.matrix.android.internal.auth.data.LoginFlowTypes
|
|||
import im.vector.matrix.android.internal.network.RetrofitFactory
|
||||
import im.vector.matrix.android.internal.task.launchToCallback
|
||||
import im.vector.matrix.android.internal.util.MatrixCoroutineDispatchers
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.GlobalScope
|
||||
import kotlinx.coroutines.delay
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.*
|
||||
|
||||
|
@ -160,6 +161,7 @@ internal class DefaultRegistrationWizard(private val homeServerConnectionConfig:
|
|||
)
|
||||
// Store data
|
||||
currentThreePidData = ThreePidData(threePid, response, params)
|
||||
// and send the sid a first time
|
||||
return performRegistrationRequest(params)
|
||||
}
|
||||
|
||||
|
@ -169,7 +171,7 @@ internal class DefaultRegistrationWizard(private val homeServerConnectionConfig:
|
|||
return NoOpCancellable
|
||||
}
|
||||
return GlobalScope.launchToCallback(coroutineDispatchers.main, callback) {
|
||||
performRegistrationRequest(safeParam)
|
||||
performRegistrationRequest(safeParam, delayMillis)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -190,9 +192,12 @@ internal class DefaultRegistrationWizard(private val homeServerConnectionConfig:
|
|||
)
|
||||
val validationResponse = validateCodeTask.execute(ValidateCodeTask.Params(url, validationBody))
|
||||
if (validationResponse.success == true) {
|
||||
// The entered code is correct
|
||||
// Same than validate email
|
||||
return performRegistrationRequest(registrationParams, 3_000)
|
||||
} else {
|
||||
throw Failure.SuccessError
|
||||
// The code is not correct
|
||||
throw Failure.SuccessError
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -20,7 +20,9 @@ import im.vector.matrix.android.api.MatrixCallback
|
|||
import im.vector.matrix.android.api.util.Cancelable
|
||||
import im.vector.matrix.android.internal.extensions.foldToCallback
|
||||
import im.vector.matrix.android.internal.util.toCancelable
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.CoroutineStart
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlin.coroutines.CoroutineContext
|
||||
import kotlin.coroutines.EmptyCoroutineContext
|
||||
|
||||
|
|
|
@ -23,7 +23,10 @@ internal fun Job.toCancelable(): Cancelable {
|
|||
return CancelableCoroutine(this)
|
||||
}
|
||||
|
||||
internal class CancelableCoroutine(private val job: Job) : Cancelable {
|
||||
/**
|
||||
* Private, use the extension above
|
||||
*/
|
||||
private class CancelableCoroutine(private val job: Job) : Cancelable {
|
||||
|
||||
override fun cancel() {
|
||||
if (!job.isCancelled) {
|
||||
|
|
Loading…
Add table
Reference in a new issue