Extract ImageLoader interface
This commit is contained in:
@@ -2,14 +2,7 @@ package gq.kirmanak.mealie.ui
|
|||||||
|
|
||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
import androidx.annotation.DrawableRes
|
import androidx.annotation.DrawableRes
|
||||||
import com.bumptech.glide.Glide
|
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
class ImageLoader @Inject constructor() {
|
interface ImageLoader {
|
||||||
fun loadImage(url: String?, @DrawableRes placeholderId: Int, imageView: ImageView) {
|
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)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
15
app/src/main/java/gq/kirmanak/mealie/ui/ImageLoaderGlide.kt
Normal file
15
app/src/main/java/gq/kirmanak/mealie/ui/ImageLoaderGlide.kt
Normal 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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
13
app/src/main/java/gq/kirmanak/mealie/ui/UiModule.kt
Normal file
13
app/src/main/java/gq/kirmanak/mealie/ui/UiModule.kt
Normal 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
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user