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