From c22c544297c1b72ee548bfd2ce7598b26450a0af Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Sat, 13 Nov 2021 09:50:06 +0300 Subject: [PATCH] Extract ImageLoader interface --- .../java/gq/kirmanak/mealie/ui/ImageLoader.kt | 11 ++--------- .../gq/kirmanak/mealie/ui/ImageLoaderGlide.kt | 15 +++++++++++++++ .../main/java/gq/kirmanak/mealie/ui/UiModule.kt | 13 +++++++++++++ 3 files changed, 30 insertions(+), 9 deletions(-) create mode 100644 app/src/main/java/gq/kirmanak/mealie/ui/ImageLoaderGlide.kt create mode 100644 app/src/main/java/gq/kirmanak/mealie/ui/UiModule.kt diff --git a/app/src/main/java/gq/kirmanak/mealie/ui/ImageLoader.kt b/app/src/main/java/gq/kirmanak/mealie/ui/ImageLoader.kt index a2604e8..d258df7 100644 --- a/app/src/main/java/gq/kirmanak/mealie/ui/ImageLoader.kt +++ b/app/src/main/java/gq/kirmanak/mealie/ui/ImageLoader.kt @@ -2,14 +2,7 @@ package gq.kirmanak.mealie.ui import android.widget.ImageView import androidx.annotation.DrawableRes -import com.bumptech.glide.Glide -import javax.inject.Inject -class ImageLoader @Inject constructor() { - fun loadImage(url: String?, @DrawableRes placeholderId: Int, imageView: ImageView) { - with(Glide.with(imageView)) { - if (url.isNullOrBlank()) clear(imageView) - else load(url).placeholder(placeholderId).into(imageView) - } - } +interface ImageLoader { + fun loadImage(url: String?, @DrawableRes placeholderId: Int, imageView: ImageView) } \ No newline at end of file diff --git a/app/src/main/java/gq/kirmanak/mealie/ui/ImageLoaderGlide.kt b/app/src/main/java/gq/kirmanak/mealie/ui/ImageLoaderGlide.kt new file mode 100644 index 0000000..56e9d47 --- /dev/null +++ b/app/src/main/java/gq/kirmanak/mealie/ui/ImageLoaderGlide.kt @@ -0,0 +1,15 @@ +package gq.kirmanak.mealie.ui + +import android.widget.ImageView +import androidx.annotation.DrawableRes +import com.bumptech.glide.Glide +import javax.inject.Inject + +class ImageLoaderGlide @Inject constructor() : ImageLoader { + override fun loadImage(url: String?, @DrawableRes placeholderId: Int, imageView: ImageView) { + with(Glide.with(imageView)) { + if (url.isNullOrBlank()) clear(imageView) + else load(url).placeholder(placeholderId).into(imageView) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/gq/kirmanak/mealie/ui/UiModule.kt b/app/src/main/java/gq/kirmanak/mealie/ui/UiModule.kt new file mode 100644 index 0000000..afaf973 --- /dev/null +++ b/app/src/main/java/gq/kirmanak/mealie/ui/UiModule.kt @@ -0,0 +1,13 @@ +package gq.kirmanak.mealie.ui + +import dagger.Binds +import dagger.Module +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent + +@Module +@InstallIn(SingletonComponent::class) +interface UiModule { + @Binds + fun bindImageLoader(imageLoaderGlide: ImageLoaderGlide): ImageLoader +} \ No newline at end of file