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

Integrate auth navigation

parent 618c5411
No related branches found
No related tags found
No related merge requests found
Showing with 79 additions and 114 deletions
......@@ -13,7 +13,7 @@
<action
android:id="@+id/to_logInFragment"
app:destination="@id/logInFragment"
app:destination="@id/nav_graph_auth"
app:popUpTo="@id/splashFragment"
app:popUpToInclusive="true" />
<action
......@@ -23,51 +23,11 @@
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/logInFragment"
android:name="org.futo.circles.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_loginStagesFragment"
app:destination="@id/loginStagesFragment" />
<action
android:id="@+id/to_bottomNavigationFragment"
app:destination="@id/bottomNavigationFragment"
app:popUpTo="@id/logInFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/signUpFragment"
android:name="org.futo.circles.feature.sign_up.SignUpFragment"
android:label="Sign up"
tools:layout="@layout/fragment_sign_up">
<action
android:id="@+id/to_setupProfileFragment"
app:destination="@id/setupProfileFragment"
app:popUpTo="@id/logInFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/bottomNavigationFragment"
android:name="org.futo.circles.feature.home.HomeFragment"
tools:layout="@layout/fragment_bottom_navigation" />
<fragment
android:id="@+id/setupProfileFragment"
android:name="org.futo.circles.feature.sign_up.setup_profile.SetupProfileFragment"
android:label="SetupProfileFragment"
tools:layout="@layout/fragment_setup_profile">
<action
android:id="@+id/to_setupCirclesFragment"
app:destination="@id/setupCirclesFragment"
app:popUpTo="@id/setupProfileFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/setupCirclesFragment"
android:name="org.futo.circles.feature.circles.setup.SetupCirclesFragment"
......@@ -79,21 +39,7 @@
app:popUpTo="@id/setupCirclesFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/loginStagesFragment"
android:name="org.futo.circles.feature.log_in.stages.LogInStagesFragment"
tools:layout="@layout/fragment_login_stages">
<action
android:id="@+id/to_bottomNavigationFragment"
app:destination="@id/bottomNavigationFragment"
app:popUpTo="@id/logInFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/to_setupCirclesFragment"
app:destination="@id/setupCirclesFragment"
app:popUpTo="@id/logInFragment"
app:popUpToInclusive="true" />
</fragment>
<include app:graph="@navigation/nav_graph_auth" />
</navigation>
\ No newline at end of file
......@@ -110,7 +110,7 @@
<dialog
android:id="@+id/reAuthStagesDialogFragment"
android:name="org.futo.circles.feature.reauth.ReAuthStagesDialogFragment"
android:name="org.futo.circles.auth.feature.reauth.ReAuthStagesDialogFragment"
tools:layout="@layout/fragment_login_stages" />
<dialog
......
package org.futo.circles.auth.base
import android.content.Context
import androidx.core.net.toUri
import androidx.navigation.NavController
import androidx.navigation.NavDeepLinkRequest
import org.futo.circles.auth.R
import org.futo.circles.core.CirclesAppConfig
object AuthNavigator {
fun navigateToBottomMenu(context: Context, navController: NavController) {
navController.navigateWithUri(context, R.string.navigate_to_bottom_menu_uri)
}
fun navigateToSetupCircles(context: Context, navController: NavController) {
navController.navigateWithUri(context, R.string.navigate_to_setup_circles_uri)
}
fun navigateToLoginStages(context: Context, navController: NavController) {
navController.navigateWithUri(context, R.string.navigate_to_login_stages_uri)
}
fun navigateToSignUp(context: Context, navController: NavController) {
navController.navigateWithUri(context, R.string.navigate_to_signup_uri)
}
fun navigateToSetupProfile(context: Context, navController: NavController) {
navController.navigateWithUri(context, R.string.navigate_to_setup_profile_uri)
}
private fun NavController.navigateWithUri(context: Context, uriResId: Int) {
val request = NavDeepLinkRequest.Builder
.fromUri(context.getString(uriResId, CirclesAppConfig.appId).toUri())
.build()
navigate(request)
}
}
\ No newline at end of file
......@@ -8,7 +8,6 @@ import androidx.fragment.app.Fragment
import androidx.navigation.fragment.findNavController
import by.kirich1409.viewbindingdelegate.viewBinding
import org.futo.circles.auth.R
import org.futo.circles.auth.base.AuthNavigator
import org.futo.circles.auth.databinding.FragmentLogInBinding
import org.futo.circles.auth.feature.log_in.switch_user.list.SwitchUsersAdapter
import org.futo.circles.auth.feature.log_in.switch_user.list.SwitchUsersViewHolder
......@@ -84,7 +83,7 @@ class LogInFragment : Fragment(R.layout.fragment_log_in), HasLoadingState {
private fun setupObservers() {
viewModel.loginResultLiveData.observeResponse(this,
success = {
AuthNavigator.navigateToLoginStages(requireContext(), findNavController())
findNavController().navigate(LogInFragmentDirections.toLoginStagesFragment())
}
)
viewModel.switchUsersLiveData.observeData(this) {
......@@ -92,14 +91,14 @@ class LogInFragment : Fragment(R.layout.fragment_log_in), HasLoadingState {
switchUsersAdapter.submitList(it)
}
viewModel.navigateToBottomMenuScreenLiveData.observeData(this) {
AuthNavigator.navigateToBottomMenu(requireContext(), findNavController())
findNavController().navigate(LogInFragmentDirections.toBottomNavigationFragment())
}
}
private fun setOnClickActions() {
with(binding) {
btnSignUp.setOnClickListener {
AuthNavigator.navigateToSignUp(requireContext(), findNavController())
findNavController().navigate(LogInFragmentDirections.toSignUpFragment())
}
btnLogin.setOnClickListener {
val userName = binding.tilUserName.getText()
......
......@@ -11,7 +11,6 @@ import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.fragment.findNavController
import by.kirich1409.viewbindingdelegate.viewBinding
import org.futo.circles.auth.R
import org.futo.circles.auth.base.AuthNavigator
import org.futo.circles.auth.base.LoginStageNavigationEvent
import org.futo.circles.auth.databinding.FragmentLoginStagesBinding
import org.futo.circles.auth.feature.log_in.EnterPassPhraseDialog
......@@ -117,11 +116,11 @@ class LogInStagesFragment : Fragment(R.layout.fragment_login_stages),
}
private fun navigateToBottomMenuFragment() {
AuthNavigator.navigateToBottomMenu(requireContext(), findNavController())
findNavController().navigate(LogInStagesFragmentDirections.toBottomNavigationFragment())
}
private fun navigateToSetupCircles() {
AuthNavigator.navigateToSetupCircles(requireContext(), findNavController())
findNavController().navigate(LogInStagesFragmentDirections.toSetupCirclesFragment())
}
private fun showDiscardDialog() {
......
......@@ -9,7 +9,6 @@ import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.fragment.findNavController
import by.kirich1409.viewbindingdelegate.viewBinding
import org.futo.circles.auth.R
import org.futo.circles.auth.base.AuthNavigator
import org.futo.circles.auth.databinding.FragmentSignUpBinding
import org.futo.circles.core.extensions.observeData
import org.futo.circles.core.extensions.observeResponse
......@@ -94,7 +93,7 @@ class SignUpFragment : Fragment(R.layout.fragment_sign_up),
}
private fun navigateToSetupProfile() {
AuthNavigator.navigateToSetupProfile(requireContext(), findNavController())
findNavController().navigate(SignUpFragmentDirections.toSetupProfileFragment())
}
}
\ No newline at end of file
......@@ -7,7 +7,6 @@ import androidx.fragment.app.Fragment
import androidx.navigation.fragment.findNavController
import by.kirich1409.viewbindingdelegate.viewBinding
import org.futo.circles.auth.R
import org.futo.circles.auth.base.AuthNavigator
import org.futo.circles.auth.databinding.FragmentSetupProfileBinding
import org.futo.circles.core.extensions.getText
import org.futo.circles.core.extensions.observeData
......@@ -63,7 +62,7 @@ class SetupProfileFragment : Fragment(R.layout.fragment_setup_profile), HasLoadi
}
private fun navigateToSetupCircles() {
AuthNavigator.navigateToSetupCircles(requireContext(), findNavController())
findNavController().navigate(SetupProfileFragmentDirections.toSetupCirclesFragment())
}
private fun setSaveButtonEnabled() {
......
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_graph_auth"
app:startDestination="@id/logInFragment">
<fragment
android:id="@+id/logInFragment"
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_loginStagesFragment"
app:destination="@id/loginStagesFragment" />
<action
android:id="@+id/to_bottomNavigationFragment"
app:destination="@id/bottomNavigationFragment"
app:popUpTo="@id/logInFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/loginStagesFragment"
android:name="org.futo.circles.auth.feature.log_in.stages.LogInStagesFragment"
tools:layout="@layout/fragment_login_stages">
<action
android:id="@+id/to_bottomNavigationFragment"
app:destination="@id/bottomNavigationFragment"
app:popUpTo="@id/logInFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/to_setupCirclesFragment"
app:destination="@id/setupCirclesFragment"
app:popUpTo="@id/logInFragment"
app:popUpToInclusive="true" />
</fragment>
<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_setupProfileFragment"
app:destination="@id/setupProfileFragment"
app:popUpTo="@id/logInFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/setupProfileFragment"
android:name="org.futo.circles.auth.feature.sign_up.setup_profile.SetupProfileFragment"
android:label="SetupProfileFragment"
tools:layout="@layout/fragment_setup_profile">
<action
android:id="@+id/to_setupCirclesFragment"
app:destination="@id/setupCirclesFragment"
app:popUpTo="@id/setupProfileFragment"
app:popUpToInclusive="true" />
</fragment>
</navigation>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="bottomNavigationFragment" type="id" />
<item name="setupCirclesFragment" type="id" />
</resources>
\ No newline at end of file
......@@ -95,12 +95,6 @@
<string name="remove">Remove</string>
<string name="not_supported_navigation_event">Not supported navigation event</string>
<string name="navigate_to_bottom_menu_uri" translatable="false">android-app://%1$s/bottomNavigationFragment</string>
<string name="navigate_to_setup_profile_uri" translatable="false">android-app://%1$s/setupProfileFragment</string>
<string name="navigate_to_setup_circles_uri" translatable="false">android-app://%1$s/setupCirclesFragment</string>
<string name="navigate_to_login_stages_uri" translatable="false">android-app://%1$s/loginStagesFragment</string>
<string name="navigate_to_signup_uri" translatable="false">android-app://%1$s/signUpFragment</string>
<plurals name="days">
<item quantity="one">%1$d day</item>
......
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