From 9193c6e31e2dedb82c2308a7c7411c6388d40f5e Mon Sep 17 00:00:00 2001
From: Taras Smakula <tarassmakula@gmail.com>
Date: Wed, 28 Feb 2024 12:55:47 +0200
Subject: [PATCH] Remove signup fragment and stages mode arguments

---
 app/proguard-rules.pro                        |   2 -
 .../auth/feature/sign_up/SignUpFragment.kt    | 103 ------------------
 .../auth/feature/sign_up/SignUpViewModel.kt   |  17 ---
 .../sign_up/password/PasswordFragment.kt      |   1 -
 .../flow/SignUpStagesDataSource.kt}           |   0
 .../circles/auth/model/PasswordModeArg.kt     |  12 --
 .../futo/circles/auth/model/TermsModeArg.kt   |   4 -
 auth/src/main/res/layout/fragment_sign_up.xml |  42 -------
 .../main/res/navigation/nav_graph_auth.xml    |  12 +-
 auth/src/main/res/values/strings.xml          |   1 -
 10 files changed, 1 insertion(+), 193 deletions(-)
 delete mode 100644 auth/src/main/java/org/futo/circles/auth/feature/sign_up/SignUpFragment.kt
 delete mode 100644 auth/src/main/java/org/futo/circles/auth/feature/sign_up/SignUpViewModel.kt
 rename auth/src/main/java/org/futo/circles/auth/feature/{sign_up/SignUpDataSource.kt => uia/flow/SignUpStagesDataSource.kt} (100%)
 delete mode 100644 auth/src/main/java/org/futo/circles/auth/model/PasswordModeArg.kt
 delete mode 100644 auth/src/main/java/org/futo/circles/auth/model/TermsModeArg.kt
 delete mode 100644 auth/src/main/res/layout/fragment_sign_up.xml

diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index 07ebfa45e..85c804c45 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -70,8 +70,6 @@ native <methods>;
 
 -keep class org.futo.circles.core.model.CircleRoomTypeArg
 -keep class org.futo.circles.core.model.InviteTypeArg
--keep class org.futo.circles.auth.model.PasswordModeArg
--keep class org.futo.circles.auth.model.TermsModeArg
 -keep class org.futo.circles.core.model.ShareUrlTypeArg
 -keep class org.futo.circles.model.PeopleCategoryTypeArg
 
diff --git a/auth/src/main/java/org/futo/circles/auth/feature/sign_up/SignUpFragment.kt b/auth/src/main/java/org/futo/circles/auth/feature/sign_up/SignUpFragment.kt
deleted file mode 100644
index 109d41325..000000000
--- a/auth/src/main/java/org/futo/circles/auth/feature/sign_up/SignUpFragment.kt
+++ /dev/null
@@ -1,103 +0,0 @@
-package org.futo.circles.auth.feature.sign_up
-
-import android.os.Bundle
-import android.view.View
-import androidx.activity.OnBackPressedCallback
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.viewModels
-import androidx.navigation.findNavController
-import androidx.navigation.fragment.NavHostFragment
-import androidx.navigation.fragment.findNavController
-import by.kirich1409.viewbindingdelegate.viewBinding
-import dagger.hilt.android.AndroidEntryPoint
-import org.futo.circles.auth.R
-import org.futo.circles.auth.databinding.FragmentSignUpBinding
-import org.futo.circles.core.base.NetworkObserver
-import org.futo.circles.core.extensions.navigateSafe
-import org.futo.circles.core.extensions.observeData
-import org.futo.circles.core.extensions.observeResponse
-import org.futo.circles.core.extensions.onBackPressed
-import org.futo.circles.core.extensions.setEnabledViews
-import org.futo.circles.core.extensions.showDialog
-import org.futo.circles.core.extensions.showError
-import org.futo.circles.core.base.fragment.BackPressOwner
-import org.futo.circles.core.view.LoadingDialog
-
-@AndroidEntryPoint
-class SignUpFragment : Fragment(R.layout.fragment_sign_up),
-    BackPressOwner {
-
-    private val viewModel by viewModels<SignUpViewModel>()
-    private val binding by viewBinding(FragmentSignUpBinding::bind)
-    private val loadingDialog by lazy { LoadingDialog(requireContext()) }
-
-    private val childNavHostFragment by lazy {
-        childFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
-    }
-
-    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
-        super.onViewCreated(view, savedInstanceState)
-        binding.toolbar.setNavigationOnClickListener { onBackPressed() }
-        setupObservers()
-    }
-
-    private fun setupObservers() {
-        NetworkObserver.observe(this){ setEnabledViews(it) }
-        viewModel.subtitleLiveData.observeData(this) {
-            binding.toolbar.subtitle = it
-        }
-        viewModel.navigationLiveData.observeData(this) {
-            handleNavigation(it)
-        }
-        viewModel.finishRegistrationLiveData.observeResponse(this,
-            success = { navigateToConfigureWorkspace() },
-            error = { message ->
-                showError(message)
-                loadingDialog.dismiss()
-            }
-        )
-        viewModel.passPhraseLoadingLiveData.observeData(this) {
-            loadingDialog.handleLoading(it)
-        }
-    }
-
-
-    private fun handleNavigation(event: SignUpNavigationEvents) {
-        val directionId = when (event) {
-            SignUpNavigationEvents.TokenValidation -> R.id.to_validateToken
-            SignUpNavigationEvents.Subscription -> R.id.to_subscriptions
-            SignUpNavigationEvents.AcceptTerm -> R.id.to_acceptTerms
-            SignUpNavigationEvents.ValidateEmail -> R.id.to_validateEmail
-            SignUpNavigationEvents.Password -> R.id.to_password
-            SignUpNavigationEvents.BSspeke -> R.id.to_bsspeke
-            SignUpNavigationEvents.Username -> R.id.to_username
-        }
-        binding.navHostFragment.findNavController().navigateSafe(directionId)
-    }
-
-    private fun showDiscardDialog() {
-        showDialog(
-            titleResIdRes = R.string.discard_current_registration_progress,
-            negativeButtonVisible = true,
-            positiveAction = {
-                childNavHostFragment.navController.popBackStack(
-                    R.id.selectSignUpTypeFragment, false
-                )
-            })
-    }
-
-    override fun onChildBackPress(callback: OnBackPressedCallback) {
-        val includedFragmentsManager = childNavHostFragment.childFragmentManager
-        if (includedFragmentsManager.backStackEntryCount == 1) {
-            callback.remove()
-            onBackPressed()
-        } else {
-            showDiscardDialog()
-        }
-    }
-
-    private fun navigateToConfigureWorkspace() {
-        findNavController().navigateSafe(SignUpFragmentDirections.toConfigureWorkspace())
-    }
-
-}
\ No newline at end of file
diff --git a/auth/src/main/java/org/futo/circles/auth/feature/sign_up/SignUpViewModel.kt b/auth/src/main/java/org/futo/circles/auth/feature/sign_up/SignUpViewModel.kt
deleted file mode 100644
index 039bc2140..000000000
--- a/auth/src/main/java/org/futo/circles/auth/feature/sign_up/SignUpViewModel.kt
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.futo.circles.auth.feature.sign_up
-
-import androidx.lifecycle.ViewModel
-import dagger.hilt.android.lifecycle.HiltViewModel
-import javax.inject.Inject
-
-@HiltViewModel
-class SignUpViewModel @Inject constructor(
-    datasource: SignUpDataSource
-) : ViewModel() {
-
-    val subtitleLiveData = datasource.subtitleLiveData
-    val passPhraseLoadingLiveData = datasource.passPhraseLoadingLiveData
-    val finishRegistrationLiveData = datasource.finishRegistrationLiveData
-    val navigationLiveData = datasource.navigationLiveData
-
-}
\ No newline at end of file
diff --git a/auth/src/main/java/org/futo/circles/auth/feature/sign_up/password/PasswordFragment.kt b/auth/src/main/java/org/futo/circles/auth/feature/sign_up/password/PasswordFragment.kt
index 58b8ad261..b17fc1308 100644
--- a/auth/src/main/java/org/futo/circles/auth/feature/sign_up/password/PasswordFragment.kt
+++ b/auth/src/main/java/org/futo/circles/auth/feature/sign_up/password/PasswordFragment.kt
@@ -12,7 +12,6 @@ import dagger.hilt.android.AndroidEntryPoint
 import org.futo.circles.auth.R
 import org.futo.circles.auth.databinding.FragmentPasswordBinding
 import org.futo.circles.auth.feature.sign_up.password.confirmation.SetupPasswordWarningDialog
-import org.futo.circles.auth.model.PasswordModeArg
 import org.futo.circles.core.base.fragment.HasLoadingState
 import org.futo.circles.core.base.fragment.ParentBackPressOwnerFragment
 import org.futo.circles.core.extensions.getText
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/uia/flow/SignUpStagesDataSource.kt
similarity index 100%
rename from auth/src/main/java/org/futo/circles/auth/feature/sign_up/SignUpDataSource.kt
rename to auth/src/main/java/org/futo/circles/auth/feature/uia/flow/SignUpStagesDataSource.kt
diff --git a/auth/src/main/java/org/futo/circles/auth/model/PasswordModeArg.kt b/auth/src/main/java/org/futo/circles/auth/model/PasswordModeArg.kt
deleted file mode 100644
index b3c401020..000000000
--- a/auth/src/main/java/org/futo/circles/auth/model/PasswordModeArg.kt
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.futo.circles.auth.model
-
-enum class PasswordModeArg {
-    LoginPasswordStage,
-    LoginDirect,
-    LoginBsSpekeStage,
-    ReAuthPassword,
-    ReAuthBsSpekeLogin,
-    ReAuthBsSpekeSignup,
-    SignupPasswordStage,
-    SignupBsSpekeStage
-}
\ No newline at end of file
diff --git a/auth/src/main/java/org/futo/circles/auth/model/TermsModeArg.kt b/auth/src/main/java/org/futo/circles/auth/model/TermsModeArg.kt
deleted file mode 100644
index 40b08bb4f..000000000
--- a/auth/src/main/java/org/futo/circles/auth/model/TermsModeArg.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package org.futo.circles.auth.model
-
-
-enum class TermsModeArg { Login, Signup, ReAuth }
\ No newline at end of file
diff --git a/auth/src/main/res/layout/fragment_sign_up.xml b/auth/src/main/res/layout/fragment_sign_up.xml
deleted file mode 100644
index 22f65cecc..000000000
--- a/auth/src/main/res/layout/fragment_sign_up.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <com.google.android.material.appbar.MaterialToolbar
-        android:id="@+id/toolbar"
-        android:layout_width="0dp"
-        android:layout_height="?attr/actionBarSize"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        app:navigationContentDescription="@string/back"
-        app:navigationIcon="?attr/homeAsUpIndicator"
-        app:subtitleCentered="true"
-        app:title="@string/sign_up"
-        app:titleCentered="true" />
-
-    <View
-        android:id="@+id/toolbarDivider"
-        android:layout_width="0dp"
-        android:layout_height="@dimen/divider_height"
-        android:background="@color/divider_color"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/toolbar" />
-
-    <androidx.fragment.app.FragmentContainerView
-        android:id="@+id/nav_host_fragment"
-        android:name="androidx.navigation.fragment.NavHostFragment"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        app:defaultNavHost="true"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/toolbarDivider"
-        app:navGraph="@navigation/sign_up_nav_graph" />
-
-
-</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/auth/src/main/res/navigation/nav_graph_auth.xml b/auth/src/main/res/navigation/nav_graph_auth.xml
index 7bded3301..3843488d6 100644
--- a/auth/src/main/res/navigation/nav_graph_auth.xml
+++ b/auth/src/main/res/navigation/nav_graph_auth.xml
@@ -10,9 +10,6 @@
         android:name="org.futo.circles.auth.feature.log_in.LogInFragment"
         android:label="Log In"
         tools:layout="@layout/fragment_log_in">
-        <action
-            android:id="@+id/to_signUpFragment"
-            app:destination="@id/signUpFragment" />
         <action
             android:id="@+id/to_uiaFragment"
             app:destination="@id/uiaFragment" />
@@ -33,20 +30,13 @@
             app:destination="@id/homeFragment"
             app:popUpTo="@id/logInFragment"
             app:popUpToInclusive="true" />
-    </dialog>
-
 
-    <fragment
-        android:id="@+id/signUpFragment"
-        android:name="org.futo.circles.auth.feature.sign_up.SignUpFragment"
-        android:label="Sign up"
-        tools:layout="@layout/fragment_sign_up">
         <action
             android:id="@+id/to_ConfigureWorkspace"
             app:destination="@id/configureWorkspaceFragment"
             app:popUpTo="@id/logInFragment"
             app:popUpToInclusive="true" />
-    </fragment>
+    </dialog>
     <fragment
         android:id="@+id/setupProfileFragment"
         android:name="org.futo.circles.auth.feature.profile.setup.SetupProfileFragment"
diff --git a/auth/src/main/res/values/strings.xml b/auth/src/main/res/values/strings.xml
index b3f8982a9..08d911989 100644
--- a/auth/src/main/res/values/strings.xml
+++ b/auth/src/main/res/values/strings.xml
@@ -49,7 +49,6 @@
     <string name="importing_keys">Importing keys.</string>
     <string name="decrypting_key">Decrypting key.</string>
     <string name="failed_to_get_restore_keys_version">Failed to get latest restore keys version.</string>
-    <string name="discard_current_registration_progress">Discard current registration progress?</string>
     <string name="domain">Domain</string>
     <string name="accept_terms_to_continue">Accept terms to continue</string>
     <string name="username">username</string>
-- 
GitLab