From 8a0509b966847becc94c569ee871927facd01895 Mon Sep 17 00:00:00 2001
From: Taras Smakula <tarassmakula@gmail.com>
Date: Mon, 3 Oct 2022 13:58:43 +0300
Subject: [PATCH] Create public extension for findStageForType

---
 .../android/sdk/internal/auth/StageExtension.kt    | 14 ++++++++++++++
 .../auth/registration/DefaultRegistrationWizard.kt | 11 +----------
 2 files changed, 15 insertions(+), 10 deletions(-)
 create mode 100644 matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/StageExtension.kt

diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/StageExtension.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/StageExtension.kt
new file mode 100644
index 00000000..4f34a37f
--- /dev/null
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/StageExtension.kt
@@ -0,0 +1,14 @@
+package org.matrix.android.sdk.internal.auth
+
+import org.matrix.android.sdk.api.auth.data.LoginFlowTypes
+import org.matrix.android.sdk.api.auth.registration.Stage
+
+//Added to support few registration flows
+fun List<Stage>.findStageForType(type: String): Stage? = when (type) {
+    LoginFlowTypes.RECAPTCHA      -> firstOrNull { it is Stage.ReCaptcha }
+    LoginFlowTypes.DUMMY          -> firstOrNull { it is Stage.Dummy }
+    LoginFlowTypes.TERMS          -> firstOrNull { it is Stage.Terms }
+    LoginFlowTypes.EMAIL_IDENTITY -> firstOrNull { it is Stage.Email }
+    LoginFlowTypes.MSISDN         -> firstOrNull { it is Stage.Msisdn }
+    else                          -> firstOrNull { (it as? Stage.Other)?.type == type }
+}
\ 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 63bf1b0a..8401db7f 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
@@ -33,6 +33,7 @@ import org.matrix.android.sdk.internal.auth.AuthAPI
 import org.matrix.android.sdk.internal.auth.PendingSessionStore
 import org.matrix.android.sdk.internal.auth.SessionCreator
 import org.matrix.android.sdk.internal.auth.db.PendingSessionData
+import org.matrix.android.sdk.internal.auth.findStageForType
 
 /**
  * This class execute the registration request and is responsible to keep the session of interactive authentication.
@@ -295,16 +296,6 @@ internal class DefaultRegistrationWizard(
         return emptyList()
     }
 
-    //Added to support few registration flows
-    private fun List<Stage>.findStageForType(type: String): Stage? = when (type) {
-        LoginFlowTypes.RECAPTCHA      -> firstOrNull { it is Stage.ReCaptcha }
-        LoginFlowTypes.DUMMY          -> firstOrNull { it is Stage.Dummy }
-        LoginFlowTypes.TERMS          -> firstOrNull { it is Stage.Terms }
-        LoginFlowTypes.EMAIL_IDENTITY -> firstOrNull { it is Stage.Email }
-        LoginFlowTypes.MSISDN         -> firstOrNull { it is Stage.Msisdn }
-        else                          -> firstOrNull { (it as? Stage.Other)?.type == type }
-    }
-
     override suspend fun registrationSwiclops(
             authParams: JsonDict,
             userName: String?,
-- 
GitLab