diff --git a/app/src/main/res/navigation/nav_graph_start_host.xml b/app/src/main/res/navigation/nav_graph_start_host.xml index eee0ed25985b922a61710775f5b01ab56a783375..282cd78b559913d4759ec93b51897e474a25135a 100644 --- a/app/src/main/res/navigation/nav_graph_start_host.xml +++ b/app/src/main/res/navigation/nav_graph_start_host.xml @@ -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 diff --git a/app/src/main/res/navigation/settings_nav_graph.xml b/app/src/main/res/navigation/settings_nav_graph.xml index f14bb8a3d73becff7a6e20e775c54080f76439f4..96794251c9c571a57e76fb30feb03f3aaa274bdd 100644 --- a/app/src/main/res/navigation/settings_nav_graph.xml +++ b/app/src/main/res/navigation/settings_nav_graph.xml @@ -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 diff --git a/auth/src/main/java/org/futo/circles/auth/base/AuthNavigator.kt b/auth/src/main/java/org/futo/circles/auth/base/AuthNavigator.kt deleted file mode 100644 index c459fe01a338c540341aa0b572959c92c037d0c3..0000000000000000000000000000000000000000 --- a/auth/src/main/java/org/futo/circles/auth/base/AuthNavigator.kt +++ /dev/null @@ -1,39 +0,0 @@ -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 diff --git a/auth/src/main/java/org/futo/circles/auth/feature/log_in/LogInFragment.kt b/auth/src/main/java/org/futo/circles/auth/feature/log_in/LogInFragment.kt index 6f1960e1a73bbffd46892eb438b4431c87e1aa79..7c60d2cae106b20d2491535d76f775ac4f610612 100644 --- a/auth/src/main/java/org/futo/circles/auth/feature/log_in/LogInFragment.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/log_in/LogInFragment.kt @@ -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() 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 0ba11d75a67d425a10d25075339af7ffa4d2bbf6..215409c72c7536b228b9a6c0e6d370980d097466 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 @@ -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() { 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 index 3ff9ea9b04f6c0ff4f2dbe05863a803021e9ab04..491fe15c733d99bb93b7f38e94c13ee7e442b031 100644 --- 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 @@ -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 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 22ae87233f6724bc312832cf9bb792d9a0d75b77..c738886b8037b9d9b1dd40cbc79d9068d9370722 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 @@ -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() { diff --git a/auth/src/main/res/navigation/nav_graph_auth.xml b/auth/src/main/res/navigation/nav_graph_auth.xml new file mode 100644 index 0000000000000000000000000000000000000000..faddf293f1e1cbe4c7975cf87f25f5234ce34b2d --- /dev/null +++ b/auth/src/main/res/navigation/nav_graph_auth.xml @@ -0,0 +1,63 @@ +<?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> diff --git a/auth/src/main/res/values/ids.xml b/auth/src/main/res/values/ids.xml new file mode 100644 index 0000000000000000000000000000000000000000..e37603209e778293e1420d0a2cac5ac768121417 --- /dev/null +++ b/auth/src/main/res/values/ids.xml @@ -0,0 +1,5 @@ +<?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 diff --git a/auth/src/main/res/values/strings.xml b/auth/src/main/res/values/strings.xml index 66569cf8a90dcc5c70cb5c006df3353c21e3781e..f01798cf8fc86fd552816dbac61831d39b6e0c78 100644 --- a/auth/src/main/res/values/strings.xml +++ b/auth/src/main/res/values/strings.xml @@ -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>