From c081edbbbf689597dcbd30e8e8988e9253bb2cdf Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Sat, 13 Nov 2021 09:52:01 +0300 Subject: [PATCH] Extract RecipeImageLoader interface --- .../mealie/data/recipes/RecipeImageLoader.kt | 17 ++-------------- .../data/recipes/RecipeImageLoaderImpl.kt | 20 +++++++++++++++++++ .../mealie/data/recipes/RecipeModule.kt | 3 +++ 3 files changed, 25 insertions(+), 15 deletions(-) create mode 100644 app/src/main/java/gq/kirmanak/mealie/data/recipes/RecipeImageLoaderImpl.kt diff --git a/app/src/main/java/gq/kirmanak/mealie/data/recipes/RecipeImageLoader.kt b/app/src/main/java/gq/kirmanak/mealie/data/recipes/RecipeImageLoader.kt index 56f1b4f..53647ec 100644 --- a/app/src/main/java/gq/kirmanak/mealie/data/recipes/RecipeImageLoader.kt +++ b/app/src/main/java/gq/kirmanak/mealie/data/recipes/RecipeImageLoader.kt @@ -1,20 +1,7 @@ package gq.kirmanak.mealie.data.recipes import android.widget.ImageView -import gq.kirmanak.mealie.R -import gq.kirmanak.mealie.data.auth.AuthRepo -import gq.kirmanak.mealie.ui.ImageLoader -import javax.inject.Inject -class RecipeImageLoader @Inject constructor( - private val imageLoader: ImageLoader, - private val authRepo: AuthRepo -) { - suspend fun loadRecipeImage(view: ImageView, slug: String?) { - val baseUrl = authRepo.getBaseUrl() - val recipeImageUrl = - if (baseUrl.isNullOrBlank()) null - else "$baseUrl/api/media/recipes/$slug/images/original.webp" - imageLoader.loadImage(recipeImageUrl, R.drawable.placeholder_recipe, view) - } +interface RecipeImageLoader { + suspend fun loadRecipeImage(view: ImageView, slug: String?) } \ No newline at end of file diff --git a/app/src/main/java/gq/kirmanak/mealie/data/recipes/RecipeImageLoaderImpl.kt b/app/src/main/java/gq/kirmanak/mealie/data/recipes/RecipeImageLoaderImpl.kt new file mode 100644 index 0000000..c478bf2 --- /dev/null +++ b/app/src/main/java/gq/kirmanak/mealie/data/recipes/RecipeImageLoaderImpl.kt @@ -0,0 +1,20 @@ +package gq.kirmanak.mealie.data.recipes + +import android.widget.ImageView +import gq.kirmanak.mealie.R +import gq.kirmanak.mealie.data.auth.AuthRepo +import gq.kirmanak.mealie.ui.ImageLoader +import javax.inject.Inject + +class RecipeImageLoaderImpl @Inject constructor( + private val imageLoader: ImageLoader, + private val authRepo: AuthRepo +): RecipeImageLoader { + override suspend fun loadRecipeImage(view: ImageView, slug: String?) { + val baseUrl = authRepo.getBaseUrl() + val recipeImageUrl = + if (baseUrl.isNullOrBlank()) null + else "$baseUrl/api/media/recipes/$slug/images/original.webp" + imageLoader.loadImage(recipeImageUrl, R.drawable.placeholder_recipe, view) + } +} \ No newline at end of file diff --git a/app/src/main/java/gq/kirmanak/mealie/data/recipes/RecipeModule.kt b/app/src/main/java/gq/kirmanak/mealie/data/recipes/RecipeModule.kt index 6c2d574..937e542 100644 --- a/app/src/main/java/gq/kirmanak/mealie/data/recipes/RecipeModule.kt +++ b/app/src/main/java/gq/kirmanak/mealie/data/recipes/RecipeModule.kt @@ -24,4 +24,7 @@ interface RecipeModule { @Binds fun provideRecipeRepo(recipeRepoImpl: RecipeRepoImpl): RecipeRepo + + @Binds + fun provideRecipeImageLoader(recipeImageLoaderImpl: RecipeImageLoaderImpl): RecipeImageLoader } \ No newline at end of file