From e0e651715c5f1ce827ff61a553752d6495888f83 Mon Sep 17 00:00:00 2001 From: Taras <tarassmakula@gmail.com> Date: Sat, 26 Feb 2022 01:10:21 +0200 Subject: [PATCH] Create loader factory --- .../glide/CirclesGlideModelLoaderFactory.kt | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 app/src/main/java/com/futo/circles/glide/CirclesGlideModelLoaderFactory.kt diff --git a/app/src/main/java/com/futo/circles/glide/CirclesGlideModelLoaderFactory.kt b/app/src/main/java/com/futo/circles/glide/CirclesGlideModelLoaderFactory.kt new file mode 100644 index 000000000..6a1cade23 --- /dev/null +++ b/app/src/main/java/com/futo/circles/glide/CirclesGlideModelLoaderFactory.kt @@ -0,0 +1,37 @@ +package com.futo.circles.glide + +import android.content.Context +import com.bumptech.glide.load.Options +import com.bumptech.glide.load.model.ModelLoader +import com.bumptech.glide.load.model.ModelLoaderFactory +import com.bumptech.glide.load.model.MultiModelLoaderFactory +import com.bumptech.glide.signature.ObjectKey +import com.futo.circles.model.ImageContent +import java.io.InputStream + +class CirclesGlideModelLoaderFactory(private val context: Context) : + ModelLoaderFactory<ImageContent, InputStream> { + + override fun build(multiFactory: MultiModelLoaderFactory): ModelLoader<ImageContent, InputStream> { + return CirclesGlideModelLoader(context) + } + + override fun teardown() {} +} + +class CirclesGlideModelLoader(private val context: Context) : + ModelLoader<ImageContent, InputStream> { + + override fun handles(model: ImageContent): Boolean { + return true + } + + override fun buildLoadData( + model: ImageContent, + width: Int, + height: Int, + options: Options + ): ModelLoader.LoadData<InputStream> = + ModelLoader.LoadData(ObjectKey(model), CirclesGlideDataFetcher(context, model)) + +} \ No newline at end of file -- GitLab