From 4fa1ac718fd3c924591b824420523f10e66f5916 Mon Sep 17 00:00:00 2001 From: Tyler Wong Date: Tue, 12 Nov 2019 23:46:01 -0800 Subject: [PATCH] Add ImageLoader API --- docs/docs/v4/image-coil/README.md | 9 +++++++++ .../markwon/image/coil/CoilImagesPlugin.java | 20 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/docs/docs/v4/image-coil/README.md b/docs/docs/v4/image-coil/README.md index e94b72cc..643632be 100644 --- a/docs/docs/v4/image-coil/README.md +++ b/docs/docs/v4/image-coil/README.md @@ -8,6 +8,15 @@ Image loading based on `Coil` library val markwon = Markwon.builder(context) // automatically create Coil instance .usePlugin(CoilImagesPlugin.create(context)) + // use supplied ImageLoader instance + .usePlugin(CoilImagesPlugin.create( + context, + ImageLoader(context) { + availableMemoryPercentage(0.5) + bitmapPoolPercentage(0.5) + crossfade(true) + } + )) // if you need more control .usePlugin(CoilImagesPlugin.create(object : CoilImagesPlugin.CoilStore { override fun load(drawable: AsyncDrawable): LoadRequest { diff --git a/markwon-image-coil/src/main/java/io/noties/markwon/image/coil/CoilImagesPlugin.java b/markwon-image-coil/src/main/java/io/noties/markwon/image/coil/CoilImagesPlugin.java index 68b93cd3..8e55d00d 100644 --- a/markwon-image-coil/src/main/java/io/noties/markwon/image/coil/CoilImagesPlugin.java +++ b/markwon-image-coil/src/main/java/io/noties/markwon/image/coil/CoilImagesPlugin.java @@ -14,6 +14,7 @@ import java.util.HashMap; import java.util.Map; import coil.Coil; +import coil.ImageLoader; import coil.api.ImageLoaders; import coil.request.LoadRequest; import coil.request.RequestDisposable; @@ -58,6 +59,25 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin { }); } + @NonNull + public static CoilImagesPlugin create(@NonNull final Context context, + @NonNull final ImageLoader imageLoader) { + return create(new CoilStore() { + @NonNull + @Override + public LoadRequest load(@NonNull AsyncDrawable drawable) { + return ImageLoaders.newLoadBuilder(imageLoader, context) + .data(drawable.getDestination()) + .build(); + } + + @Override + public void cancel(@NonNull RequestDisposable disposable) { + disposable.dispose(); + } + }); + } + @NonNull public static CoilImagesPlugin create(@NonNull CoilStore coilStore) { return new CoilImagesPlugin(coilStore);