diff --git a/app/src/main/java/org/futo/circles/App.kt b/app/src/main/java/org/futo/circles/App.kt index f427cf6af6fd1b8c754ab5304eba37682516ce62..3bad960c7dde5cf95b1671c82975230b9cfa899c 100644 --- a/app/src/main/java/org/futo/circles/App.kt +++ b/app/src/main/java/org/futo/circles/App.kt @@ -44,9 +44,6 @@ class App : Application() { .appName(getString(R.string.app_name)) .euDomain(getString(if (BuildConfig.DEBUG) R.string.debug_eu_domain else R.string.release_eu_domain)) .usDomain(getString(if (BuildConfig.DEBUG) R.string.debug_us_domain else R.string.release_us_domain)) - .isSubscriptionEnabled(false) - .isMediaBackupEnabled(false) - .isRageshakeEnabled(false) .init() MatrixSessionProvider.initSession( diff --git a/auth/src/main/java/org/futo/circles/auth/feature/log_in/stages/LogInStagesFragment.kt b/auth/src/main/java/org/futo/circles/auth/feature/log_in/stages/LogInStagesFragment.kt index cf49514dd8afe27d5c485ee9685e450021781f71..cc01debb82025e1e1e139f956c8603c0a8a4d15a 100644 --- a/auth/src/main/java/org/futo/circles/auth/feature/log_in/stages/LogInStagesFragment.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/log_in/stages/LogInStagesFragment.kt @@ -17,6 +17,7 @@ import org.futo.circles.auth.base.LoginStageNavigationEvent import org.futo.circles.auth.databinding.FragmentLoginStagesBinding import org.futo.circles.auth.feature.log_in.EnterPassPhraseDialog import org.futo.circles.auth.feature.log_in.EnterPassPhraseDialogListener +import org.futo.circles.core.CirclesAppConfig import org.futo.circles.core.extensions.observeData import org.futo.circles.core.extensions.observeResponse import org.futo.circles.core.extensions.onBackPressed @@ -83,7 +84,7 @@ class LogInStagesFragment : Fragment(R.layout.fragment_login_stages), viewModel.loginNavigationLiveData.observeData(this) { event -> when (event) { LoginNavigationEvent.Main -> navigateToBottomMenuFragment() - LoginNavigationEvent.SetupCircles -> navigateToSetupCircles() + LoginNavigationEvent.SetupCircles -> navigateToSetupCirclesOrHome() LoginNavigationEvent.PassPhrase -> showPassPhraseDialog() else -> navigateToBottomMenuFragment() } @@ -121,8 +122,13 @@ class LogInStagesFragment : Fragment(R.layout.fragment_login_stages), findNavController().navigate(LogInStagesFragmentDirections.toHomeFragment()) } - private fun navigateToSetupCircles() { - findNavController().navigate(LogInStagesFragmentDirections.toSetupCirclesFragment()) + private fun navigateToSetupCirclesOrHome() { + findNavController().navigate( + if (CirclesAppConfig.isSetupCirclesEnabled) + LogInStagesFragmentDirections.toSetupCirclesFragment() + else + LogInStagesFragmentDirections.toHomeFragment() + ) } private fun showDiscardDialog() { diff --git a/auth/src/main/java/org/futo/circles/auth/feature/sign_up/setup_profile/SetupProfileFragment.kt b/auth/src/main/java/org/futo/circles/auth/feature/sign_up/setup_profile/SetupProfileFragment.kt index b2f63bfe543ec2d15169dddb6c0095a488f63b96..56101787572adbded6db040e63aebeefbe44ef26 100644 --- a/auth/src/main/java/org/futo/circles/auth/feature/sign_up/setup_profile/SetupProfileFragment.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/sign_up/setup_profile/SetupProfileFragment.kt @@ -10,6 +10,7 @@ import by.kirich1409.viewbindingdelegate.viewBinding import dagger.hilt.android.AndroidEntryPoint import org.futo.circles.auth.R import org.futo.circles.auth.databinding.FragmentSetupProfileBinding +import org.futo.circles.core.CirclesAppConfig import org.futo.circles.core.extensions.getText import org.futo.circles.core.extensions.observeData import org.futo.circles.core.extensions.observeResponse @@ -33,7 +34,7 @@ class SetupProfileFragment : Fragment(R.layout.fragment_setup_profile), HasLoadi private fun setupViews() { with(binding) { - btnSkip.setOnClickListener { navigateToSetupCircles() } + btnSkip.setOnClickListener { navigateToSetupCirclesOrHome() } btnSave.setOnClickListener { startLoading(btnSave) viewModel.saveProfileInfo(tilDisplayName.getText()) @@ -60,12 +61,17 @@ class SetupProfileFragment : Fragment(R.layout.fragment_setup_profile), HasLoadi } viewModel.saveProfileResponseLiveData.observeResponse( this, - success = { navigateToSetupCircles() } + success = { navigateToSetupCirclesOrHome() } ) } - private fun navigateToSetupCircles() { - findNavController().navigate(SetupProfileFragmentDirections.toSetupCirclesFragment()) + private fun navigateToSetupCirclesOrHome() { + findNavController().navigate( + if (CirclesAppConfig.isSetupCirclesEnabled) + SetupProfileFragmentDirections.toSetupCirclesFragment() + else + SetupProfileFragmentDirections.toHomeFragment() + ) } private fun setSaveButtonEnabled() { diff --git a/auth/src/main/res/navigation/nav_graph_auth.xml b/auth/src/main/res/navigation/nav_graph_auth.xml index 9555053249e0be37a36b757ab558d68eb36447ad..f3ca8a36100babb9542c5f8213f47bd6ca3e9178 100644 --- a/auth/src/main/res/navigation/nav_graph_auth.xml +++ b/auth/src/main/res/navigation/nav_graph_auth.xml @@ -59,5 +59,10 @@ app:destination="@id/setupCirclesFragment" app:popUpTo="@id/setupProfileFragment" app:popUpToInclusive="true" /> + <action + android:id="@+id/to_homeFragment" + app:destination="@id/homeFragment" + app:popUpTo="@id/setupProfileFragment" + app:popUpToInclusive="true" /> </fragment> </navigation> diff --git a/core/src/main/java/org/futo/circles/core/CirclesAppConfig.kt b/core/src/main/java/org/futo/circles/core/CirclesAppConfig.kt index bf1374912521b805a8d5993c3b75a2822886526a..9e3cc66bccf97de53dc1418dc4c2f88953080ac8 100644 --- a/core/src/main/java/org/futo/circles/core/CirclesAppConfig.kt +++ b/core/src/main/java/org/futo/circles/core/CirclesAppConfig.kt @@ -28,6 +28,9 @@ object CirclesAppConfig { var isRageshakeEnabled = false private set + var isSetupCirclesEnabled = true + private set + data class Initializer( private var appId: String? = null, private var version: String? = null, @@ -37,7 +40,8 @@ object CirclesAppConfig { private var euDomain: String? = null, private var subscriptionEnabled: Boolean = false, private var mediaBackupEnabled: Boolean = false, - private var rageshakeEnabled: Boolean = false + private var rageshakeEnabled: Boolean = false, + private var setupCirclesEnabled: Boolean = true ) { fun buildConfigInfo(appId: String, version: String, flavour: String = "empty") = @@ -60,6 +64,9 @@ object CirclesAppConfig { fun isRageshakeEnabled(isEnabled: Boolean) = apply { this.rageshakeEnabled = isEnabled } + fun isSetupCirclesEnabled(isEnabled: Boolean) = + apply { this.setupCirclesEnabled = isEnabled } + fun init() { CirclesAppConfig.appId = appId?.takeIf { it.isNotEmpty() } ?: throw IllegalArgumentException("Illegal appId $appId") @@ -82,6 +89,7 @@ object CirclesAppConfig { isSubscriptionsEnabled = subscriptionEnabled isMediaBackupEnabled = mediaBackupEnabled isRageshakeEnabled = rageshakeEnabled + isSetupCirclesEnabled = setupCirclesEnabled } }