From 156bb28d94f286bab9bae96211985deb32272fc0 Mon Sep 17 00:00:00 2001
From: Taras Smakula <tarassmakula@gmail.com>
Date: Wed, 5 Oct 2022 11:42:00 +0300
Subject: [PATCH] Add identifier as separate login stage param

---
 .idea/misc.xml                                         |  2 +-
 .../matrix/android/sdk/api/auth/login/LoginWizard.kt   |  2 +-
 .../sdk/internal/auth/login/DefaultLoginWizard.kt      | 10 +++-------
 .../android/sdk/internal/auth/login/LoginFlowParams.kt |  5 ++++-
 4 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/.idea/misc.xml b/.idea/misc.xml
index 5c9f89fe..54d5acd7 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ExternalStorageConfigurationManager" enabled="true" />
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
   <component name="ProjectType">
diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/login/LoginWizard.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/login/LoginWizard.kt
index 07d748b9..b8851f0a 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/login/LoginWizard.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/login/LoginWizard.kt
@@ -88,5 +88,5 @@ interface LoginWizard {
      * Current login "session" param will be included into authParams by default.
      * The authParams should contain at least one entry "type" with a String value.
      */
-    suspend fun loginStageCustom(authParams: JsonDict): RegistrationResult
+    suspend fun loginStageCustom(authParams: JsonDict, identifierParams: JsonDict? = null): RegistrationResult
 }
diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/login/DefaultLoginWizard.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/login/DefaultLoginWizard.kt
index e1b212f2..a1282f9e 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/login/DefaultLoginWizard.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/login/DefaultLoginWizard.kt
@@ -17,7 +17,6 @@
 package org.matrix.android.sdk.internal.auth.login
 
 import android.util.Patterns
-import kotlinx.coroutines.delay
 import org.matrix.android.sdk.api.auth.LoginType
 import org.matrix.android.sdk.api.auth.data.Credentials
 import org.matrix.android.sdk.api.auth.login.LoginProfileInfo
@@ -38,11 +37,7 @@ import org.matrix.android.sdk.internal.auth.data.TokenLoginParams
 import org.matrix.android.sdk.internal.auth.db.PendingSessionData
 import org.matrix.android.sdk.internal.auth.findStageForType
 import org.matrix.android.sdk.internal.auth.registration.AddThreePidRegistrationParams
-import org.matrix.android.sdk.internal.auth.registration.DefaultRegisterTask
 import org.matrix.android.sdk.internal.auth.registration.RegisterAddThreePidTask
-import org.matrix.android.sdk.internal.auth.registration.RegisterTask
-import org.matrix.android.sdk.internal.auth.registration.RegistrationCustomParams
-import org.matrix.android.sdk.internal.auth.registration.RegistrationParams
 import org.matrix.android.sdk.internal.network.executeRequest
 import org.matrix.android.sdk.internal.session.content.DefaultContentUrlResolver
 import org.matrix.android.sdk.internal.session.contentscanner.DisabledContentScannerService
@@ -178,7 +173,8 @@ internal class DefaultLoginWizard(
 
     //Added to support few login flows
     override suspend fun loginStageCustom(
-            authParams: JsonDict
+            authParams: JsonDict,
+            identifierParams: JsonDict?
     ): RegistrationResult {
         val safeSession = pendingSessionData.currentSession
                 ?: throw IllegalStateException("developer error, call createAccount() method first")
@@ -186,7 +182,7 @@ internal class DefaultLoginWizard(
         val mutableParams = authParams.toMutableMap()
         mutableParams["session"] = safeSession
 
-        val params = LoginFlowParams(auth = mutableParams)
+        val params = LoginFlowParams(auth = mutableParams, identifier = identifierParams)
         return performRegistrationRequest(LoginType.CUSTOM, params)
     }
 
diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/login/LoginFlowParams.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/login/LoginFlowParams.kt
index 3515b56e..9d0136ba 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/login/LoginFlowParams.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/login/LoginFlowParams.kt
@@ -27,5 +27,8 @@ import org.matrix.android.sdk.api.util.JsonDict
 internal data class LoginFlowParams(
         // authentication parameters
         @Json(name = "auth")
-        val auth: JsonDict? = null
+        val auth: JsonDict? = null,
+
+        @Json(name = "identifier")
+        val identifier: JsonDict? = null
 )
-- 
GitLab