Soft Logout - issue with device display name

This commit is contained in:
Benoit Marty 2019-12-11 18:49:44 +01:00
parent 7699560458
commit 205fc0d9d6
4 changed files with 6 additions and 12 deletions

View File

@ -29,7 +29,6 @@ interface SignOutService {
* The same deviceId will be used * The same deviceId will be used
*/ */
fun signInAgain(password: String, fun signInAgain(password: String,
deviceName: String,
callback: MatrixCallback<Unit>): Cancelable callback: MatrixCallback<Unit>): Cancelable
/** /**

View File

@ -28,10 +28,9 @@ internal class DefaultSignOutService @Inject constructor(private val signOutTask
private val taskExecutor: TaskExecutor) : SignOutService { private val taskExecutor: TaskExecutor) : SignOutService {
override fun signInAgain(password: String, override fun signInAgain(password: String,
deviceName: String,
callback: MatrixCallback<Unit>): Cancelable { callback: MatrixCallback<Unit>): Cancelable {
return signInAgainTask return signInAgainTask
.configureWith(SignInAgainTask.Params(password, deviceName)) { .configureWith(SignInAgainTask.Params(password)) {
this.callback = callback this.callback = callback
} }
.executeBy(taskExecutor) .executeBy(taskExecutor)

View File

@ -26,8 +26,7 @@ import javax.inject.Inject
internal interface SignInAgainTask : Task<SignInAgainTask.Params, Unit> { internal interface SignInAgainTask : Task<SignInAgainTask.Params, Unit> {
data class Params( data class Params(
val password: String, val password: String
val deviceName: String
) )
} }
@ -43,9 +42,11 @@ internal class DefaultSignInAgainTask @Inject constructor(
// Reuse the same userId // Reuse the same userId
sessionParams.credentials.userId, sessionParams.credentials.userId,
params.password, params.password,
params.deviceName, // The spec says it will be ignored
// https://matrix.org/docs/spec/client_server/latest#post-matrix-client-r0-login
// but https://github.com/matrix-org/synapse/issues/6525
// Reuse the same deviceId // Reuse the same deviceId
sessionParams.credentials.deviceId deviceId = sessionParams.credentials.deviceId
) )
) )
} }

View File

@ -22,11 +22,9 @@ import com.squareup.inject.assisted.AssistedInject
import im.vector.matrix.android.api.MatrixCallback import im.vector.matrix.android.api.MatrixCallback
import im.vector.matrix.android.api.session.Session import im.vector.matrix.android.api.session.Session
import im.vector.matrix.android.api.util.Cancelable import im.vector.matrix.android.api.util.Cancelable
import im.vector.riotx.R
import im.vector.riotx.core.di.ActiveSessionHolder import im.vector.riotx.core.di.ActiveSessionHolder
import im.vector.riotx.core.extensions.toReducedUrl import im.vector.riotx.core.extensions.toReducedUrl
import im.vector.riotx.core.platform.VectorViewModel import im.vector.riotx.core.platform.VectorViewModel
import im.vector.riotx.core.resources.StringProvider
/** /**
* *
@ -34,7 +32,6 @@ import im.vector.riotx.core.resources.StringProvider
class SoftLogoutViewModel @AssistedInject constructor( class SoftLogoutViewModel @AssistedInject constructor(
@Assisted initialState: SoftLogoutViewState, @Assisted initialState: SoftLogoutViewState,
private val session: Session, private val session: Session,
private val stringProvider: StringProvider,
private val activeSessionHolder: ActiveSessionHolder) private val activeSessionHolder: ActiveSessionHolder)
: VectorViewModel<SoftLogoutViewState, SoftLogoutAction>(initialState) { : VectorViewModel<SoftLogoutViewState, SoftLogoutAction>(initialState) {
@ -77,8 +74,6 @@ class SoftLogoutViewModel @AssistedInject constructor(
private fun handleSignInAgain(action: SoftLogoutAction.SignInAgain) { private fun handleSignInAgain(action: SoftLogoutAction.SignInAgain) {
setState { copy(asyncLoginAction = Loading()) } setState { copy(asyncLoginAction = Loading()) }
currentTask = session.signInAgain(action.password, currentTask = session.signInAgain(action.password,
// TODO We should use the previous device name (we have to provide it for the homeserver
stringProvider.getString(R.string.login_mobile_device),
object : MatrixCallback<Unit> { object : MatrixCallback<Unit> {
override fun onFailure(failure: Throwable) { override fun onFailure(failure: Throwable) {
setState { setState {