diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt b/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt
index ad2e837..eb826bf 100644
--- a/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt
+++ b/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt
@@ -5,15 +5,16 @@ import android.view.Menu
import android.view.MenuItem
import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
-import androidx.core.net.toUri
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
import androidx.core.view.isVisible
import androidx.navigation.NavController
+import androidx.navigation.NavDirections
import androidx.navigation.fragment.NavHostFragment
import by.kirich1409.viewbindingdelegate.viewBinding
import com.google.android.material.shape.CornerFamily
import com.google.android.material.shape.MaterialShapeDrawable
import dagger.hilt.android.AndroidEntryPoint
+import gq.kirmanak.mealient.NavGraphDirections
import gq.kirmanak.mealient.R
import gq.kirmanak.mealient.databinding.MainActivityBinding
import gq.kirmanak.mealient.extensions.observeOnce
@@ -64,12 +65,12 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) {
private fun onNavigationItemSelected(menuItem: MenuItem): Boolean {
logger.v { "onNavigationItemSelected() called with: menuItem = $menuItem" }
menuItem.isChecked = true
- val deepLink = when (menuItem.itemId) {
- R.id.add_recipe -> ADD_RECIPE_DEEP_LINK
- R.id.recipes_list -> RECIPES_LIST_DEEP_LINK
+ val directions = when (menuItem.itemId) {
+ R.id.add_recipe -> NavGraphDirections.actionGlobalAddRecipeFragment()
+ R.id.recipes_list -> NavGraphDirections.actionGlobalRecipesFragment()
else -> throw IllegalArgumentException("Unknown menu item id: ${menuItem.itemId}")
}
- navigateDeepLink(deepLink)
+ navigateTo(directions)
binding.drawer.close()
return true
}
@@ -109,7 +110,7 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) {
logger.v { "onOptionsItemSelected() called with: item = $item" }
val result = when (item.itemId) {
R.id.login -> {
- navigateDeepLink(AUTH_DEEP_LINK)
+ navigateTo(NavGraphDirections.actionGlobalAuthenticationFragment())
true
}
R.id.logout -> {
@@ -121,14 +122,8 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) {
return result
}
- private fun navigateDeepLink(deepLink: String) {
- logger.v { "navigateDeepLink() called with: deepLink = $deepLink" }
- navController.navigate(deepLink.toUri())
- }
-
- companion object {
- private const val AUTH_DEEP_LINK = "mealient://authenticate"
- private const val ADD_RECIPE_DEEP_LINK = "mealient://recipe/add"
- private const val RECIPES_LIST_DEEP_LINK = "mealient://recipe/list"
+ private fun navigateTo(directions: NavDirections) {
+ logger.v { "navigateTo() called with: directions = $directions" }
+ navController.navigate(directions)
}
}
\ No newline at end of file
diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml
index 6d506bc..81784f9 100644
--- a/app/src/main/res/navigation/nav_graph.xml
+++ b/app/src/main/res/navigation/nav_graph.xml
@@ -9,11 +9,8 @@
android:id="@+id/authenticationFragment"
android:name="gq.kirmanak.mealient.ui.auth.AuthenticationFragment"
android:label="AuthenticationFragment"
- tools:layout="@layout/fragment_authentication">
-
-
+ tools:layout="@layout/fragment_authentication" />
+
-
+
+
+
+
-
-
+ tools:layout="@layout/fragment_add_recipe" />
+
+
+
+
+
+
\ No newline at end of file