Show Toast when recipe favorite status is updated
This commit is contained in:
@@ -18,7 +18,7 @@ interface RecipeRepo {
|
|||||||
|
|
||||||
suspend fun refreshRecipes()
|
suspend fun refreshRecipes()
|
||||||
|
|
||||||
suspend fun updateIsRecipeFavorite(recipeSlug: String, isFavorite: Boolean): Result<Unit>
|
suspend fun updateIsRecipeFavorite(recipeSlug: String, isFavorite: Boolean): Result<Boolean>
|
||||||
|
|
||||||
suspend fun deleteRecipe(entity: RecipeSummaryEntity): Result<Unit>
|
suspend fun deleteRecipe(entity: RecipeSummaryEntity): Result<Unit>
|
||||||
}
|
}
|
||||||
@@ -75,12 +75,13 @@ class RecipeRepoImpl @Inject constructor(
|
|||||||
override suspend fun updateIsRecipeFavorite(
|
override suspend fun updateIsRecipeFavorite(
|
||||||
recipeSlug: String,
|
recipeSlug: String,
|
||||||
isFavorite: Boolean,
|
isFavorite: Boolean,
|
||||||
): Result<Unit> = runCatchingExceptCancel {
|
): Result<Boolean> = runCatchingExceptCancel {
|
||||||
logger.v { "updateIsRecipeFavorite() called with: recipeSlug = $recipeSlug, isFavorite = $isFavorite" }
|
logger.v { "updateIsRecipeFavorite() called with: recipeSlug = $recipeSlug, isFavorite = $isFavorite" }
|
||||||
dataSource.updateIsRecipeFavorite(recipeSlug, isFavorite)
|
dataSource.updateIsRecipeFavorite(recipeSlug, isFavorite)
|
||||||
val favorites = dataSource.getFavoriteRecipes()
|
val favorites = dataSource.getFavoriteRecipes()
|
||||||
storage.updateFavoriteRecipes(favorites)
|
storage.updateFavoriteRecipes(favorites)
|
||||||
pagingSourceFactory.invalidate()
|
pagingSourceFactory.invalidate()
|
||||||
|
favorites.contains(recipeSlug)
|
||||||
}.onFailure {
|
}.onFailure {
|
||||||
logger.e(it) { "Can't update recipe's is favorite status" }
|
logger.e(it) { "Can't update recipe's is favorite status" }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -177,6 +177,15 @@ class RecipesListFragment : Fragment(R.layout.fragment_recipes_list) {
|
|||||||
logger.d { "onFavoriteClick: result is $it" }
|
logger.d { "onFavoriteClick: result is $it" }
|
||||||
if (it.isFailure) {
|
if (it.isFailure) {
|
||||||
showLongToast(R.string.fragment_recipes_favorite_update_failed)
|
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,4 +63,6 @@
|
|||||||
<string name="view_holder_recipe_delete_content_description">Удалить рецепт</string>
|
<string name="view_holder_recipe_delete_content_description">Удалить рецепт</string>
|
||||||
<string name="fragment_recipes_delete_recipe_confirm_dialog_positive_btn">Подтвердить</string>
|
<string name="fragment_recipes_delete_recipe_confirm_dialog_positive_btn">Подтвердить</string>
|
||||||
<string name="fragment_recipes_delete_recipe_confirm_dialog_negative_btn">Отмена</string>
|
<string name="fragment_recipes_delete_recipe_confirm_dialog_negative_btn">Отмена</string>
|
||||||
|
<string name="fragment_recipes_favorite_added">%1$s добавлено в избранное</string>
|
||||||
|
<string name="fragment_recipes_favorite_removed">%1$s удалено из избранного</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -66,4 +66,6 @@
|
|||||||
<string name="view_holder_recipe_favorite_content_description">Item is favorite</string>
|
<string name="view_holder_recipe_favorite_content_description">Item is favorite</string>
|
||||||
<string name="view_holder_recipe_non_favorite_content_description">Item is not favorite</string>
|
<string name="view_holder_recipe_non_favorite_content_description">Item is not favorite</string>
|
||||||
<string name="view_holder_recipe_delete_content_description">Delete recipe</string>
|
<string name="view_holder_recipe_delete_content_description">Delete recipe</string>
|
||||||
|
<string name="fragment_recipes_favorite_added">Added %1$s to favorites</string>
|
||||||
|
<string name="fragment_recipes_favorite_removed">Removed %1$s from favorites</string>
|
||||||
</resources>
|
</resources>
|
||||||
Reference in New Issue
Block a user