Skip to content
Snippets Groups Projects
Commit a7460c6e authored by Taras's avatar Taras
Browse files

Make navigation to setup circles optional

parent 29fe19bc
No related branches found
No related tags found
No related merge requests found
......@@ -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(
......
......@@ -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() {
......
......@@ -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() {
......
......@@ -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>
......@@ -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
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment