diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/registration/RegistrationWizard.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/registration/RegistrationWizard.kt index 85600e279f128d336c77c39ae8bc499d4621a340..1d67bdd2ce5f27405a468967b9cd42839058902f 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/registration/RegistrationWizard.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/registration/RegistrationWizard.kt @@ -82,7 +82,7 @@ interface RegistrationWizard { * Current registration "session" param will be included into authParams by default. * The authParams should contain at least one entry "type" with a String value. */ - suspend fun registrationCustom(authParams: JsonDict, initialDeviceDisplayName: String? = null): RegistrationResult + suspend fun registrationCustom(authParams: JsonDict, initialDeviceDisplayName: String? = null, useRefreshToken: Boolean = false): RegistrationResult /** * Perform the "m.login.email.identity" or "m.login.msisdn" stage. diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/registration/DefaultRegistrationWizard.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/registration/DefaultRegistrationWizard.kt index ec0f01f335e9cea12211ce14173d3d29e8358791..63e560a351db49c2fe842cdcacb5b1b3f0e2c071 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/registration/DefaultRegistrationWizard.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/registration/DefaultRegistrationWizard.kt @@ -54,12 +54,13 @@ internal class DefaultRegistrationWizard( override fun getCurrentThreePid(): String? { return when (val threePid = pendingSessionData.currentThreePidData?.threePid) { - is RegisterThreePid.Email -> threePid.email + is RegisterThreePid.Email -> threePid.email is RegisterThreePid.Msisdn -> { // Take formatted msisdn if provided by the server pendingSessionData.currentThreePidData?.addThreePidRegistrationResponse?.formattedMsisdn?.takeIf { it.isNotBlank() } ?: threePid.msisdn } - null -> null + + null -> null } } @@ -199,7 +200,8 @@ internal class DefaultRegistrationWizard( override suspend fun registrationCustom( authParams: JsonDict, - initialDeviceDisplayName: String? + initialDeviceDisplayName: String?, + useRefreshToken: Boolean ): RegistrationResult { val safeSession = pendingSessionData.currentSession ?: throw IllegalStateException("developer error, call createAccount() method first") @@ -207,7 +209,7 @@ internal class DefaultRegistrationWizard( val mutableParams = authParams.toMutableMap() mutableParams["session"] = safeSession - val params = RegistrationCustomParams(auth = mutableParams, initialDeviceDisplayName = initialDeviceDisplayName) + val params = RegistrationCustomParams(auth = mutableParams, initialDeviceDisplayName = initialDeviceDisplayName, refreshToken = useRefreshToken) return performRegistrationOtherRequest(LoginType.CUSTOM, params) } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/registration/RegistrationCustomParams.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/registration/RegistrationCustomParams.kt index c4dbdf262fd3a5b8adc0cf0ef3a406ceae7fbfda..036a77283463ea1b04742f22eb049af9e3c2bc41 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/registration/RegistrationCustomParams.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/registration/RegistrationCustomParams.kt @@ -31,5 +31,8 @@ internal data class RegistrationCustomParams( // device name @Json(name = "initial_device_display_name") - val initialDeviceDisplayName: String? = null + val initialDeviceDisplayName: String? = null, + + @Json(name = "refresh_token") + val refreshToken: Boolean = false )