From e835d5bbe5357fe8e73864a960ef3d62675c2151 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Sat, 12 Nov 2022 11:28:10 +0100 Subject: [PATCH] Replace deep links with global actions --- .../mealient/ui/activity/MainActivity.kt | 25 ++++++--------- app/src/main/res/navigation/nav_graph.xml | 32 +++++++++++-------- 2 files changed, 29 insertions(+), 28 deletions(-) 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