From da4bf24598d0cdf19d565bb7019b39f527fc89eb Mon Sep 17 00:00:00 2001 From: Taras <tarassmakula@gmail.com> Date: Thu, 29 Sep 2022 19:51:18 +0300 Subject: [PATCH] Add registrationSwiclops --- .../auth/registration/RegistrationWizard.kt | 6 ++++++ .../registration/DefaultRegistrationWizard.kt | 18 ++++++++++++++++++ .../registration/RegistrationCustomParams.kt | 8 ++++++++ 3 files changed, 32 insertions(+) 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 30ef23fa..a8111915 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 @@ -128,4 +128,10 @@ interface RegistrationWizard { //Added to support few registration flows suspend fun getAllRegistrationFlows(): List<List<Stage>> + + //Added to support custom Swiclops registration + suspend fun registrationSwiclops( + authParams: JsonDict, + userName: String?, + initialDeviceDisplayName: String?): RegistrationResult } \ No newline at end of file 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 3077f895..63bf1b0a 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 @@ -304,4 +304,22 @@ internal class DefaultRegistrationWizard( LoginFlowTypes.MSISDN -> firstOrNull { it is Stage.Msisdn } else -> firstOrNull { (it as? Stage.Other)?.type == type } } + + override suspend fun registrationSwiclops( + authParams: JsonDict, + userName: String?, + initialDeviceDisplayName: String?): RegistrationResult { + val safeSession = pendingSessionData.currentSession + ?: throw IllegalStateException("developer error, call createAccount() method first") + + val mutableParams = authParams.toMutableMap() + mutableParams["session"] = safeSession + + val params = RegistrationCustomParams( + auth = mutableParams, + username = userName, + initialDeviceDisplayName = initialDeviceDisplayName + ) + return performRegistrationOtherRequest(LoginType.CUSTOM, params) + } } \ No newline at end of file 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 45adac6c..21aea43e 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 @@ -28,4 +28,12 @@ internal data class RegistrationCustomParams( // authentication parameters @Json(name = "auth") val auth: JsonDict? = null, + + // the account username + @Json(name = "username") + val username: String? = null, + + // device name + @Json(name = "initial_device_display_name") + val initialDeviceDisplayName: String? = null, ) -- GitLab