Rename RecipesFragment to RecipesListFragment
This commit is contained in:
@@ -16,7 +16,10 @@ import by.kirich1409.viewbindingdelegate.viewBinding
|
|||||||
import com.google.android.material.shape.CornerFamily
|
import com.google.android.material.shape.CornerFamily
|
||||||
import com.google.android.material.shape.MaterialShapeDrawable
|
import com.google.android.material.shape.MaterialShapeDrawable
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import gq.kirmanak.mealient.NavGraphDirections
|
import gq.kirmanak.mealient.NavGraphDirections.Companion.actionGlobalAddRecipeFragment
|
||||||
|
import gq.kirmanak.mealient.NavGraphDirections.Companion.actionGlobalAuthenticationFragment
|
||||||
|
import gq.kirmanak.mealient.NavGraphDirections.Companion.actionGlobalBaseURLFragment
|
||||||
|
import gq.kirmanak.mealient.NavGraphDirections.Companion.actionGlobalRecipesListFragment
|
||||||
import gq.kirmanak.mealient.R
|
import gq.kirmanak.mealient.R
|
||||||
import gq.kirmanak.mealient.databinding.MainActivityBinding
|
import gq.kirmanak.mealient.databinding.MainActivityBinding
|
||||||
import gq.kirmanak.mealient.extensions.observeOnce
|
import gq.kirmanak.mealient.extensions.observeOnce
|
||||||
@@ -69,9 +72,9 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) {
|
|||||||
logger.v { "onNavigationItemSelected() called with: menuItem = $menuItem" }
|
logger.v { "onNavigationItemSelected() called with: menuItem = $menuItem" }
|
||||||
menuItem.isChecked = true
|
menuItem.isChecked = true
|
||||||
val directions = when (menuItem.itemId) {
|
val directions = when (menuItem.itemId) {
|
||||||
R.id.add_recipe -> NavGraphDirections.actionGlobalAddRecipeFragment()
|
R.id.add_recipe -> actionGlobalAddRecipeFragment()
|
||||||
R.id.recipes_list -> NavGraphDirections.actionGlobalRecipesFragment()
|
R.id.recipes_list -> actionGlobalRecipesListFragment()
|
||||||
R.id.change_url -> NavGraphDirections.actionGlobalBaseURLFragment()
|
R.id.change_url -> actionGlobalBaseURLFragment()
|
||||||
else -> throw IllegalArgumentException("Unknown menu item id: ${menuItem.itemId}")
|
else -> throw IllegalArgumentException("Unknown menu item id: ${menuItem.itemId}")
|
||||||
}
|
}
|
||||||
navigateTo(directions)
|
navigateTo(directions)
|
||||||
@@ -142,7 +145,7 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) {
|
|||||||
logger.v { "onOptionsItemSelected() called with: item = $item" }
|
logger.v { "onOptionsItemSelected() called with: item = $item" }
|
||||||
val result = when (item.itemId) {
|
val result = when (item.itemId) {
|
||||||
R.id.login -> {
|
R.id.login -> {
|
||||||
navigateTo(NavGraphDirections.actionGlobalAuthenticationFragment())
|
navigateTo(actionGlobalAuthenticationFragment())
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
R.id.logout -> {
|
R.id.logout -> {
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ class MainActivityViewModel @Inject constructor(
|
|||||||
_startDestination.value = when {
|
_startDestination.value = when {
|
||||||
!disclaimerStorage.isDisclaimerAccepted() -> R.id.disclaimerFragment
|
!disclaimerStorage.isDisclaimerAccepted() -> R.id.disclaimerFragment
|
||||||
serverInfoRepo.getUrl() == null -> R.id.baseURLFragment
|
serverInfoRepo.getUrl() == null -> R.id.baseURLFragment
|
||||||
else -> R.id.recipesFragment
|
else -> R.id.recipesListFragment
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import gq.kirmanak.mealient.extensions.checkIfInputIsEmpty
|
|||||||
import gq.kirmanak.mealient.logging.Logger
|
import gq.kirmanak.mealient.logging.Logger
|
||||||
import gq.kirmanak.mealient.ui.OperationUiState
|
import gq.kirmanak.mealient.ui.OperationUiState
|
||||||
import gq.kirmanak.mealient.ui.activity.MainActivityViewModel
|
import gq.kirmanak.mealient.ui.activity.MainActivityViewModel
|
||||||
|
import gq.kirmanak.mealient.ui.baseurl.BaseURLFragmentDirections.Companion.actionBaseURLFragmentToRecipesListFragment
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
@@ -56,7 +57,7 @@ class BaseURLFragment : Fragment(R.layout.fragment_base_url) {
|
|||||||
private fun onUiStateChange(uiState: OperationUiState<Unit>) = with(binding) {
|
private fun onUiStateChange(uiState: OperationUiState<Unit>) = with(binding) {
|
||||||
logger.v { "onUiStateChange() called with: uiState = $uiState" }
|
logger.v { "onUiStateChange() called with: uiState = $uiState" }
|
||||||
if (uiState.isSuccess) {
|
if (uiState.isSuccess) {
|
||||||
findNavController().navigate(BaseURLFragmentDirections.actionBaseURLFragmentToRecipesFragment())
|
findNavController().navigate(actionBaseURLFragmentToRecipesListFragment())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
urlInputLayout.error = when (val exception = uiState.exceptionOrNull) {
|
urlInputLayout.error = when (val exception = uiState.exceptionOrNull) {
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import gq.kirmanak.mealient.R
|
|||||||
import gq.kirmanak.mealient.databinding.FragmentDisclaimerBinding
|
import gq.kirmanak.mealient.databinding.FragmentDisclaimerBinding
|
||||||
import gq.kirmanak.mealient.logging.Logger
|
import gq.kirmanak.mealient.logging.Logger
|
||||||
import gq.kirmanak.mealient.ui.activity.MainActivityViewModel
|
import gq.kirmanak.mealient.ui.activity.MainActivityViewModel
|
||||||
|
import gq.kirmanak.mealient.ui.disclaimer.DisclaimerFragmentDirections.Companion.actionDisclaimerFragmentToBaseURLFragment
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
@@ -37,7 +38,7 @@ class DisclaimerFragment : Fragment(R.layout.fragment_disclaimer) {
|
|||||||
|
|
||||||
private fun navigateNext() {
|
private fun navigateNext() {
|
||||||
logger.v { "navigateNext() called" }
|
logger.v { "navigateNext() called" }
|
||||||
findNavController().navigate(DisclaimerFragmentDirections.actionDisclaimerFragmentToBaseURLFragment())
|
findNavController().navigate(actionDisclaimerFragmentToBaseURLFragment())
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import by.kirich1409.viewbindingdelegate.viewBinding
|
|||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import gq.kirmanak.mealient.R
|
import gq.kirmanak.mealient.R
|
||||||
import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity
|
import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity
|
||||||
import gq.kirmanak.mealient.databinding.FragmentRecipesBinding
|
import gq.kirmanak.mealient.databinding.FragmentRecipesListBinding
|
||||||
import gq.kirmanak.mealient.datasource.NetworkError
|
import gq.kirmanak.mealient.datasource.NetworkError
|
||||||
import gq.kirmanak.mealient.extensions.collectWhenViewResumed
|
import gq.kirmanak.mealient.extensions.collectWhenViewResumed
|
||||||
import gq.kirmanak.mealient.extensions.refreshRequestFlow
|
import gq.kirmanak.mealient.extensions.refreshRequestFlow
|
||||||
@@ -23,6 +23,7 @@ import gq.kirmanak.mealient.extensions.showLongToast
|
|||||||
import gq.kirmanak.mealient.extensions.valueUpdatesOnly
|
import gq.kirmanak.mealient.extensions.valueUpdatesOnly
|
||||||
import gq.kirmanak.mealient.logging.Logger
|
import gq.kirmanak.mealient.logging.Logger
|
||||||
import gq.kirmanak.mealient.ui.activity.MainActivityViewModel
|
import gq.kirmanak.mealient.ui.activity.MainActivityViewModel
|
||||||
|
import gq.kirmanak.mealient.ui.recipes.RecipesListFragmentDirections.Companion.actionRecipesFragmentToRecipeInfoFragment
|
||||||
import gq.kirmanak.mealient.ui.recipes.images.RecipePreloaderFactory
|
import gq.kirmanak.mealient.ui.recipes.images.RecipePreloaderFactory
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.filter
|
import kotlinx.coroutines.flow.filter
|
||||||
@@ -31,10 +32,10 @@ import kotlinx.coroutines.flow.map
|
|||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class RecipesFragment : Fragment(R.layout.fragment_recipes) {
|
class RecipesListFragment : Fragment(R.layout.fragment_recipes_list) {
|
||||||
|
|
||||||
private val binding by viewBinding(FragmentRecipesBinding::bind)
|
private val binding by viewBinding(FragmentRecipesListBinding::bind)
|
||||||
private val viewModel by viewModels<RecipeViewModel>()
|
private val viewModel by viewModels<RecipesListViewModel>()
|
||||||
private val activityViewModel by activityViewModels<MainActivityViewModel>()
|
private val activityViewModel by activityViewModels<MainActivityViewModel>()
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@@ -62,7 +63,7 @@ class RecipesFragment : Fragment(R.layout.fragment_recipes) {
|
|||||||
|
|
||||||
private fun navigateToRecipeInfo(id: String) {
|
private fun navigateToRecipeInfo(id: String) {
|
||||||
logger.v { "navigateToRecipeInfo() called with: id = $id" }
|
logger.v { "navigateToRecipeInfo() called with: id = $id" }
|
||||||
val directions = RecipesFragmentDirections.actionRecipesFragmentToRecipeInfoFragment(id)
|
val directions = actionRecipesFragmentToRecipeInfoFragment(id)
|
||||||
findNavController().navigate(directions)
|
findNavController().navigate(directions)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -12,7 +12,7 @@ import kotlinx.coroutines.flow.onEach
|
|||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class RecipeViewModel @Inject constructor(
|
class RecipesListViewModel @Inject constructor(
|
||||||
private val recipeRepo: RecipeRepo,
|
private val recipeRepo: RecipeRepo,
|
||||||
authRepo: AuthRepo,
|
authRepo: AuthRepo,
|
||||||
private val logger: Logger,
|
private val logger: Logger,
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
tools:context=".ui.recipes.RecipesFragment">
|
tools:context=".ui.recipes.RecipesListFragment">
|
||||||
|
|
||||||
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||||
android:id="@+id/refresher"
|
android:id="@+id/refresher"
|
||||||
@@ -12,10 +12,10 @@
|
|||||||
tools:layout="@layout/fragment_authentication" />
|
tools:layout="@layout/fragment_authentication" />
|
||||||
|
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/recipesFragment"
|
android:id="@+id/recipesListFragment"
|
||||||
android:name="gq.kirmanak.mealient.ui.recipes.RecipesFragment"
|
android:name="gq.kirmanak.mealient.ui.recipes.RecipesListFragment"
|
||||||
android:label="fragment_recipes"
|
android:label="fragment_recipes"
|
||||||
tools:layout="@layout/fragment_recipes">
|
tools:layout="@layout/fragment_recipes_list">
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_recipesFragment_to_recipeInfoFragment"
|
android:id="@+id/action_recipesFragment_to_recipeInfoFragment"
|
||||||
app:destination="@id/recipeInfoFragment" />
|
app:destination="@id/recipeInfoFragment" />
|
||||||
@@ -49,8 +49,8 @@
|
|||||||
android:label="fragment_base_url"
|
android:label="fragment_base_url"
|
||||||
tools:layout="@layout/fragment_base_url">
|
tools:layout="@layout/fragment_base_url">
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_baseURLFragment_to_recipesFragment"
|
android:id="@+id/action_baseURLFragment_to_recipesListFragment"
|
||||||
app:destination="@id/recipesFragment"
|
app:destination="@id/recipesListFragment"
|
||||||
app:popUpTo="@id/nav_graph"
|
app:popUpTo="@id/nav_graph"
|
||||||
app:popUpToInclusive="true" />
|
app:popUpToInclusive="true" />
|
||||||
</fragment>
|
</fragment>
|
||||||
@@ -66,8 +66,8 @@
|
|||||||
app:destination="@id/authenticationFragment" />
|
app:destination="@id/authenticationFragment" />
|
||||||
|
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_global_recipesFragment"
|
android:id="@+id/action_global_recipesListFragment"
|
||||||
app:destination="@id/recipesFragment" />
|
app:destination="@id/recipesListFragment" />
|
||||||
|
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_global_addRecipeFragment"
|
android:id="@+id/action_global_addRecipeFragment"
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import kotlinx.coroutines.test.runTest
|
|||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
@OptIn(ExperimentalCoroutinesApi::class)
|
@OptIn(ExperimentalCoroutinesApi::class)
|
||||||
class RecipeViewModelTest : BaseUnitTest() {
|
class RecipesListViewModelTest : BaseUnitTest() {
|
||||||
|
|
||||||
@MockK
|
@MockK
|
||||||
lateinit var authRepo: AuthRepo
|
lateinit var authRepo: AuthRepo
|
||||||
@@ -78,5 +78,5 @@ class RecipeViewModelTest : BaseUnitTest() {
|
|||||||
assertThat(actual).isEqualTo(result)
|
assertThat(actual).isEqualTo(result)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createSubject() = RecipeViewModel(recipeRepo, authRepo, logger)
|
private fun createSubject() = RecipesListViewModel(recipeRepo, authRepo, logger)
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user