From 8dc64facaa49b19a4d3e2f0e1e6f8d66e3d3a65c Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Wed, 15 Nov 2023 17:35:08 +0200 Subject: [PATCH] Add refresh token to register --- .../sdk/api/auth/registration/RegistrationWizard.kt | 2 +- .../auth/registration/DefaultRegistrationWizard.kt | 10 ++++++---- .../auth/registration/RegistrationCustomParams.kt | 5 ++++- 3 files changed, 11 insertions(+), 6 deletions(-) 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 85600e27..1d67bdd2 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 ec0f01f3..63e560a3 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 c4dbdf26..036a7728 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 ) -- GitLab