Add more create functions

This commit is contained in:
Tyler Wong 2019-11-13 00:16:19 -08:00
parent 4fa1ac718f
commit fb4e2c089f
2 changed files with 14 additions and 10 deletions

View File

@ -20,7 +20,8 @@ val markwon = Markwon.builder(context)
// if you need more control // if you need more control
.usePlugin(CoilImagesPlugin.create(object : CoilImagesPlugin.CoilStore { .usePlugin(CoilImagesPlugin.create(object : CoilImagesPlugin.CoilStore {
override fun load(drawable: AsyncDrawable): LoadRequest { override fun load(drawable: AsyncDrawable): LoadRequest {
return LoadRequest(context, Coil.loader().defaults) { return LoadRequest(context, customImageLoader.defaults) {
data(drawable.destination)
crossfade(true) crossfade(true)
transformations(CircleCropTransformation()) transformations(CircleCropTransformation())
} }
@ -29,6 +30,6 @@ val markwon = Markwon.builder(context)
override cancel(disposable: RequestDisposable) { override cancel(disposable: RequestDisposable) {
disposable.dispose() disposable.dispose()
} }
})) }, customImageLoader))
.build() .build()
``` ```

View File

@ -56,7 +56,7 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin {
public void cancel(@NonNull RequestDisposable disposable) { public void cancel(@NonNull RequestDisposable disposable) {
disposable.dispose(); disposable.dispose();
} }
}); }, Coil.loader());
} }
@NonNull @NonNull
@ -75,19 +75,20 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin {
public void cancel(@NonNull RequestDisposable disposable) { public void cancel(@NonNull RequestDisposable disposable) {
disposable.dispose(); disposable.dispose();
} }
}); }, imageLoader);
} }
@NonNull @NonNull
public static CoilImagesPlugin create(@NonNull CoilStore coilStore) { public static CoilImagesPlugin create(@NonNull final CoilStore coilStore,
return new CoilImagesPlugin(coilStore); @NonNull final ImageLoader imageLoader) {
return new CoilImagesPlugin(coilStore, imageLoader);
} }
private final CoilAsyncDrawableLoader coilAsyncDrawableLoader; private final CoilAsyncDrawableLoader coilAsyncDrawableLoader;
@SuppressWarnings("WeakerAccess") @SuppressWarnings("WeakerAccess")
CoilImagesPlugin(@NonNull CoilStore coilStore) { CoilImagesPlugin(@NonNull CoilStore coilStore, @NonNull ImageLoader imageLoader) {
this.coilAsyncDrawableLoader = new CoilAsyncDrawableLoader(coilStore); this.coilAsyncDrawableLoader = new CoilAsyncDrawableLoader(coilStore, imageLoader);
} }
@Override @Override
@ -113,10 +114,12 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin {
private static class CoilAsyncDrawableLoader extends AsyncDrawableLoader { private static class CoilAsyncDrawableLoader extends AsyncDrawableLoader {
private final CoilStore coilStore; private final CoilStore coilStore;
private final ImageLoader imageLoader;
private final Map<AsyncDrawable, RequestDisposable> cache = new HashMap<>(2); private final Map<AsyncDrawable, RequestDisposable> cache = new HashMap<>(2);
CoilAsyncDrawableLoader(@NonNull CoilStore coilStore) { CoilAsyncDrawableLoader(@NonNull CoilStore coilStore, @NonNull ImageLoader imageLoader) {
this.coilStore = coilStore; this.coilStore = coilStore;
this.imageLoader = imageLoader;
} }
@Override @Override
@ -125,7 +128,7 @@ public class CoilImagesPlugin extends AbstractMarkwonPlugin {
LoadRequest request = coilStore.load(drawable).newBuilder() LoadRequest request = coilStore.load(drawable).newBuilder()
.target(target) .target(target)
.build(); .build();
RequestDisposable disposable = Coil.loader().load(request); RequestDisposable disposable = imageLoader.load(request);
cache.put(drawable, disposable); cache.put(drawable, disposable);
} }