From 722977878cac769733e64a3d5731591a896bb38e Mon Sep 17 00:00:00 2001
From: Taras <tarassmakula@gmail.com>
Date: Mon, 21 Mar 2022 15:02:24 +0200
Subject: [PATCH] Create view model and data source

---
 .../sign_up/data_source/SignUpDataSource.kt    | 11 ++---------
 .../validate_email/ValidateEmailViewModel.kt   | 11 +++++++++++
 .../data_source/ValidateEmailDataSource.kt     | 18 ++++++++++++++++++
 3 files changed, 31 insertions(+), 9 deletions(-)
 create mode 100644 app/src/main/java/com/futo/circles/feature/validate_email/ValidateEmailViewModel.kt
 create mode 100644 app/src/main/java/com/futo/circles/feature/validate_email/data_source/ValidateEmailDataSource.kt

diff --git a/app/src/main/java/com/futo/circles/feature/sign_up/data_source/SignUpDataSource.kt b/app/src/main/java/com/futo/circles/feature/sign_up/data_source/SignUpDataSource.kt
index d4fb22771..f204af572 100644
--- a/app/src/main/java/com/futo/circles/feature/sign_up/data_source/SignUpDataSource.kt
+++ b/app/src/main/java/com/futo/circles/feature/sign_up/data_source/SignUpDataSource.kt
@@ -9,9 +9,7 @@ import org.matrix.android.sdk.api.auth.registration.RegistrationResult
 import org.matrix.android.sdk.api.auth.registration.Stage
 import org.matrix.android.sdk.api.session.Session
 
-enum class ExtraSignUpStages { Avatar, Circles }
-
-enum class NavigationEvents { TokenValidation, AcceptTerm, VerifyEmail, SetupAvatar, SetupCircles, FinishSignUp }
+enum class NavigationEvents { TokenValidation, AcceptTerm, ValidateEmail, SetupAvatar, SetupCircles, FinishSignUp }
 
 class SignUpDataSource(
     private val context: Context
@@ -31,9 +29,6 @@ class SignUpDataSource(
         stagesToComplete.clear()
 
         stagesToComplete.addAll(stages)
-        ExtraSignUpStages.values().forEach {
-            stagesToComplete.add(Stage.Other(false, it.name, null))
-        }
         navigateToNextStage()
     }
 
@@ -62,7 +57,7 @@ class SignUpDataSource(
         currentStage = stage
 
         val event = when (stage) {
-            is Stage.Email -> NavigationEvents.VerifyEmail
+            is Stage.Email -> NavigationEvents.ValidateEmail
             is Stage.Terms -> NavigationEvents.AcceptTerm
             is Stage.Other -> handleStageOther(stage.type)
             else -> throw IllegalArgumentException("Not supported stage $stage")
@@ -76,8 +71,6 @@ class SignUpDataSource(
     private fun handleStageOther(type: String): NavigationEvents =
         when (type) {
             REGISTRATION_TOKEN_KEY -> NavigationEvents.TokenValidation
-            ExtraSignUpStages.Avatar.name -> NavigationEvents.SetupAvatar
-            ExtraSignUpStages.Circles.name -> NavigationEvents.SetupCircles
             else -> throw IllegalArgumentException("Not supported stage $type")
         }
 
diff --git a/app/src/main/java/com/futo/circles/feature/validate_email/ValidateEmailViewModel.kt b/app/src/main/java/com/futo/circles/feature/validate_email/ValidateEmailViewModel.kt
new file mode 100644
index 000000000..8832b2e8b
--- /dev/null
+++ b/app/src/main/java/com/futo/circles/feature/validate_email/ValidateEmailViewModel.kt
@@ -0,0 +1,11 @@
+package com.futo.circles.feature.validate_email
+
+import androidx.lifecycle.ViewModel
+import com.futo.circles.feature.validate_email.data_source.ValidateEmailDataSource
+
+class ValidateEmailViewModel(
+    private val dataSource: ValidateEmailDataSource
+) : ViewModel() {
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/futo/circles/feature/validate_email/data_source/ValidateEmailDataSource.kt b/app/src/main/java/com/futo/circles/feature/validate_email/data_source/ValidateEmailDataSource.kt
new file mode 100644
index 000000000..d7dd03554
--- /dev/null
+++ b/app/src/main/java/com/futo/circles/feature/validate_email/data_source/ValidateEmailDataSource.kt
@@ -0,0 +1,18 @@
+package com.futo.circles.feature.validate_email.data_source
+
+import com.futo.circles.feature.sign_up.data_source.SignUpDataSource
+import com.futo.circles.provider.MatrixInstanceProvider
+
+class ValidateEmailDataSource(
+    private val signUpDataSource: SignUpDataSource
+) {
+
+    private val wizard by lazy {
+        MatrixInstanceProvider.matrix.authenticationService().getRegistrationWizard()
+    }
+
+    suspend fun sendValidationCode(email: String) {}
+
+    suspend fun validateEmail(code:String){}
+
+}
\ No newline at end of file
-- 
GitLab