diff --git a/app/src/main/java/gq/kirmanak/mealient/data/recipes/RecipeRepo.kt b/app/src/main/java/gq/kirmanak/mealient/data/recipes/RecipeRepo.kt index 4fd11dd..22996f2 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/recipes/RecipeRepo.kt +++ b/app/src/main/java/gq/kirmanak/mealient/data/recipes/RecipeRepo.kt @@ -18,7 +18,7 @@ interface RecipeRepo { suspend fun refreshRecipes() - suspend fun updateIsRecipeFavorite(recipeSlug: String, isFavorite: Boolean): Result + suspend fun updateIsRecipeFavorite(recipeSlug: String, isFavorite: Boolean): Result suspend fun deleteRecipe(entity: RecipeSummaryEntity): Result } \ No newline at end of file diff --git a/app/src/main/java/gq/kirmanak/mealient/data/recipes/impl/RecipeRepoImpl.kt b/app/src/main/java/gq/kirmanak/mealient/data/recipes/impl/RecipeRepoImpl.kt index dadbc78..5322775 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/recipes/impl/RecipeRepoImpl.kt +++ b/app/src/main/java/gq/kirmanak/mealient/data/recipes/impl/RecipeRepoImpl.kt @@ -75,12 +75,13 @@ class RecipeRepoImpl @Inject constructor( override suspend fun updateIsRecipeFavorite( recipeSlug: String, isFavorite: Boolean, - ): Result = runCatchingExceptCancel { + ): Result = runCatchingExceptCancel { logger.v { "updateIsRecipeFavorite() called with: recipeSlug = $recipeSlug, isFavorite = $isFavorite" } dataSource.updateIsRecipeFavorite(recipeSlug, isFavorite) val favorites = dataSource.getFavoriteRecipes() storage.updateFavoriteRecipes(favorites) pagingSourceFactory.invalidate() + favorites.contains(recipeSlug) }.onFailure { logger.e(it) { "Can't update recipe's is favorite status" } } diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipesListFragment.kt b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipesListFragment.kt index 6188633..1003b26 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipesListFragment.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipesListFragment.kt @@ -177,6 +177,15 @@ class RecipesListFragment : Fragment(R.layout.fragment_recipes_list) { logger.d { "onFavoriteClick: result is $it" } if (it.isFailure) { showLongToast(R.string.fragment_recipes_favorite_update_failed) + } else { + val name = event.recipeSummaryEntity.name + val isFavorite = it.getOrThrow() + val message = if (isFavorite) { + getString(R.string.fragment_recipes_favorite_added, name) + } else { + getString(R.string.fragment_recipes_favorite_removed, name) + } + showLongToast(message) } } } diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index a48b0df..2bba973 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -63,4 +63,6 @@ Удалить рецепт Подтвердить Отмена + %1$s добавлено в избранное + %1$s удалено из избранного \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c3502d5..783372f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -66,4 +66,6 @@ Item is favorite Item is not favorite Delete recipe + Added %1$s to favorites + Removed %1$s from favorites \ No newline at end of file