Extract ImageLoader interface

This commit is contained in:
Kirill Kamakin
2021-11-13 09:50:06 +03:00
parent 43d66247cb
commit c22c544297
3 changed files with 30 additions and 9 deletions

View File

@@ -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)
}

View File

@@ -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)
}
}
}

View File

@@ -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
}