From 14f54c0042d8287f0e65ad42b2cff51295ad098d Mon Sep 17 00:00:00 2001
From: Taras Smakula <tarassmakula@gmail.com>
Date: Thu, 4 Jan 2024 17:26:40 +0200
Subject: [PATCH] Auto skip free signup dummy stage

---
 .../circles/auth/feature/sign_up/SignUpDataSource.kt | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/auth/src/main/java/org/futo/circles/auth/feature/sign_up/SignUpDataSource.kt b/auth/src/main/java/org/futo/circles/auth/feature/sign_up/SignUpDataSource.kt
index fc3ea29dd..a7f1fbc00 100644
--- a/auth/src/main/java/org/futo/circles/auth/feature/sign_up/SignUpDataSource.kt
+++ b/auth/src/main/java/org/futo/circles/auth/feature/sign_up/SignUpDataSource.kt
@@ -4,6 +4,7 @@ import android.content.Context
 import androidx.lifecycle.MutableLiveData
 import dagger.hilt.android.qualifiers.ApplicationContext
 import org.futo.circles.auth.R
+import org.futo.circles.auth.base.BaseLoginStagesDataSource
 import org.futo.circles.auth.bsspeke.BSSpekeClientProvider
 import org.futo.circles.auth.feature.pass_phrase.create.CreatePassPhraseDataSource
 import org.futo.circles.core.base.SingleEventLiveData
@@ -43,7 +44,7 @@ class SignUpDataSource @Inject constructor(
     var domain: String = ""
         private set
 
-    fun startSignUpStages(
+    suspend fun startSignUpStages(
         stages: List<Stage>,
         serverDomain: String
     ) {
@@ -51,7 +52,14 @@ class SignUpDataSource @Inject constructor(
         stagesToComplete.clear()
         domain = serverDomain
         stagesToComplete.addAll(stages)
-        navigateToNextStage()
+        if ((stages.firstOrNull() as? Stage.Other)?.type == REGISTRATION_FREE_TYPE)
+            skipFreeSubscriptionDummyStage()
+        else navigateToNextStage()
+    }
+
+    private suspend fun skipFreeSubscriptionDummyStage() {
+        setNextStage()
+        performRegistrationStage(mapOf(BaseLoginStagesDataSource.TYPE_PARAM_KEY to REGISTRATION_FREE_TYPE))
     }
 
     suspend fun performRegistrationStage(
-- 
GitLab